shaka-player 4.13.0 → 4.13.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CONTRIBUTORS +1 -0
- package/dist/deps.js +4 -4
- package/dist/locales.js +36 -36
- package/dist/shaka-player.compiled.d.ts +1 -1
- package/dist/shaka-player.compiled.debug.d.ts +1 -1
- package/dist/shaka-player.compiled.debug.externs.js +2 -9
- package/dist/shaka-player.compiled.debug.js +491 -478
- package/dist/shaka-player.compiled.debug.map +4 -4
- package/dist/shaka-player.compiled.externs.js +2 -9
- package/dist/shaka-player.compiled.js +1455 -1443
- package/dist/shaka-player.compiled.map +4 -4
- package/dist/shaka-player.ui.d.ts +1 -1
- package/dist/shaka-player.ui.debug.d.ts +1 -1
- package/dist/shaka-player.ui.debug.externs.js +2 -9
- package/dist/shaka-player.ui.debug.js +544 -530
- package/dist/shaka-player.ui.debug.map +4 -4
- package/dist/shaka-player.ui.externs.js +2 -9
- package/dist/shaka-player.ui.js +1627 -1613
- package/dist/shaka-player.ui.map +4 -4
- package/eslint.config.mjs +14 -1
- package/lib/cast/cast_proxy.js +50 -12
- package/lib/cast/cast_receiver.js +6 -9
- package/lib/cast/cast_sender.js +14 -11
- package/lib/cast/cast_utils.js +43 -46
- package/lib/cea/mp4_cea_parser.js +23 -23
- package/lib/dash/content_protection.js +1 -1
- package/lib/dash/dash_parser.js +39 -29
- package/lib/dash/mpd_utils.js +8 -9
- package/lib/dash/segment_list.js +2 -2
- package/lib/dash/segment_template.js +9 -9
- package/lib/debug/log.js +16 -17
- package/lib/hls/hls_parser.js +122 -99
- package/lib/media/closed_caption_parser.js +5 -5
- package/lib/media/content_workarounds.js +78 -0
- package/lib/media/example_based_criteria.js +4 -3
- package/lib/media/manifest_parser.js +8 -12
- package/lib/media/media_source_engine.js +136 -119
- package/lib/media/preload_manager.js +10 -5
- package/lib/media/region_observer.js +9 -8
- package/lib/media/region_timeline.js +10 -8
- package/lib/media/streaming_engine.js +25 -9
- package/lib/mss/mss_parser.js +6 -7
- package/lib/net/http_plugin_utils.js +1 -1
- package/lib/net/networking_engine.js +7 -7
- package/lib/net/networking_utils.js +38 -39
- package/lib/offline/stream_bandwidth_estimator.js +8 -8
- package/lib/player.js +98 -47
- package/lib/polyfill/media_capabilities.js +8 -9
- package/lib/text/cue.js +6 -2
- package/lib/text/text_engine.js +7 -7
- package/lib/text/ttml_text_parser.js +14 -16
- package/lib/text/ui_text_displayer.js +25 -4
- package/lib/transmuxer/ac3_transmuxer.js +6 -1
- package/lib/transmuxer/transmuxer_engine.js +6 -6
- package/lib/util/manifest_parser_utils.js +7 -8
- package/lib/util/mp4_generator.js +23 -8
- package/lib/util/mp4_parser.js +10 -10
- package/lib/util/multi_map.js +22 -20
- package/lib/util/platform.js +40 -9
- package/lib/util/player_configuration.js +1 -1
- package/lib/util/stream_utils.js +35 -17
- package/package.json +2 -2
- package/project-words.txt +1 -0
- package/third_party/closure-uri/uri.js +13 -13
- package/ui/ad_statistics_button.js +17 -16
- package/ui/audio_language_selection.js +6 -1
- package/ui/statistics_button.js +36 -35
|
@@ -59,11 +59,10 @@ if(n&&$jscomp.owns(k[0],m))for(k=0;k<n.length;k++){var p=n[k];if(l!==l&&p.key!==
|
|
|
59
59
|
$jscomp.polyfill("Set",function(a){function b(){if($jscomp.ASSUME_NO_NATIVE_SET||!a||"function"!=typeof a||!a.prototype.entries||"function"!=typeof Object.seal)return!1;try{var d=Object.seal({x:4}),e=new a($jscomp.makeIterator([d]));if(!e.has(d)||1!=e.size||e.add(d)!=e||1!=e.size||e.add({x:4})!=e||2!=e.size)return!1;var f=e.entries(),g=f.next();if(g.done||g.value[0]!=d||g.value[1]!=d)return!1;g=f.next();return g.done||g.value[0]==d||4!=g.value[0].x||g.value[1]!=g.value[0]?!1:f.next().done}catch(h){return!1}}
|
|
60
60
|
if($jscomp.USE_PROXY_FOR_ES6_CONFORMANCE_CHECKS){if(a&&$jscomp.ES6_CONFORMANCE)return a}else if(b())return a;var c=function(d){this.map_=new Map;if(d){d=$jscomp.makeIterator(d);for(var e;!(e=d.next()).done;)this.add(e.value)}this.size=this.map_.size};c.prototype.add=function(d){d=0===d?0:d;this.map_.set(d,d);this.size=this.map_.size;return this};c.prototype.delete=function(d){d=this.map_.delete(d);this.size=this.map_.size;return d};c.prototype.clear=function(){this.map_.clear();this.size=0};c.prototype.has=
|
|
61
61
|
function(d){return this.map_.has(d)};c.prototype.entries=function(){return this.map_.entries()};c.prototype.values=function(){return this.map_.values()};c.prototype.keys=c.prototype.values;c.prototype[Symbol.iterator]=c.prototype.values;c.prototype.forEach=function(d,e){var f=this;this.map_.forEach(function(g){return d.call(e,g,g,f)})};return c},"es6","es3");
|
|
62
|
-
$jscomp.iteratorFromArray=function(a,b){a instanceof String&&(a+="");var c=0,d=!1,e={next:function(){if(!d&&c<a.length){var f=c++;return{value:b(f,a[f]),done:!1}}d=!0;return{done:!0,value:void 0}}};e[Symbol.iterator]=function(){return e};return e};$jscomp.polyfill("Array.prototype.
|
|
63
|
-
$jscomp.findInternal=function(a,b,c){a instanceof String&&(a=String(a));for(var d=a.length,e=0;e<d;e++){var f=a[e];if(b.call(c,f,e,a))return{i:e,v:f}}return{i:-1,v:void 0}};$jscomp.polyfill("Array.prototype.findIndex",function(a){return a?a:function(b,c){return $jscomp.findInternal(this,b,c).i}},"es6","es3");
|
|
62
|
+
$jscomp.iteratorFromArray=function(a,b){a instanceof String&&(a+="");var c=0,d=!1,e={next:function(){if(!d&&c<a.length){var f=c++;return{value:b(f,a[f]),done:!1}}d=!0;return{done:!0,value:void 0}}};e[Symbol.iterator]=function(){return e};return e};$jscomp.polyfill("Array.prototype.values",function(a){return a?a:function(){return $jscomp.iteratorFromArray(this,function(b,c){return c})}},"es8","es3");
|
|
64
63
|
$jscomp.polyfill("Array.from",function(a){return a?a:function(b,c,d){c=null!=c?c:function(h){return h};var e=[],f="undefined"!=typeof Symbol&&Symbol.iterator&&b[Symbol.iterator];if("function"==typeof f){b=f.call(b);for(var g=0;!(f=b.next()).done;)e.push(c.call(d,f.value,g++))}else for(f=b.length,g=0;g<f;g++)e.push(c.call(d,b[g],g));return e}},"es6","es3");
|
|
65
|
-
$jscomp.polyfill("Array.prototype.
|
|
66
|
-
$jscomp.polyfill("Array.prototype.includes",function(a){return a?a:function(b,c){var d=this;d instanceof String&&(d=String(d));var e=d.length;c=c||0;for(0>c&&(c=Math.max(c+e,0));c<e;c++){var f=d[c];if(f===b||Object.is(f,b))return!0}return!1}},"es7","es3");
|
|
64
|
+
$jscomp.polyfill("Array.prototype.keys",function(a){return a?a:function(){return $jscomp.iteratorFromArray(this,function(b){return b})}},"es6","es3");$jscomp.findInternal=function(a,b,c){a instanceof String&&(a=String(a));for(var d=a.length,e=0;e<d;e++){var f=a[e];if(b.call(c,f,e,a))return{i:e,v:f}}return{i:-1,v:void 0}};$jscomp.polyfill("Array.prototype.findIndex",function(a){return a?a:function(b,c){return $jscomp.findInternal(this,b,c).i}},"es6","es3");
|
|
65
|
+
$jscomp.polyfill("Object.is",function(a){return a?a:function(b,c){return b===c?0!==b||1/b===1/c:b!==b&&c!==c}},"es6","es3");$jscomp.polyfill("Array.prototype.includes",function(a){return a?a:function(b,c){var d=this;d instanceof String&&(d=String(d));var e=d.length;c=c||0;for(0>c&&(c=Math.max(c+e,0));c<e;c++){var f=d[c];if(f===b||Object.is(f,b))return!0}return!1}},"es7","es3");
|
|
67
66
|
$jscomp.checkStringArgs=function(a,b,c){if(null==a)throw new TypeError("The 'this' value for String.prototype."+c+" must not be null or undefined");if(b instanceof RegExp)throw new TypeError("First argument to String.prototype."+c+" must not be a regular expression");return a+""};$jscomp.polyfill("String.prototype.includes",function(a){return a?a:function(b,c){return-1!==$jscomp.checkStringArgs(this,b,"includes").indexOf(b,c||0)}},"es6","es3");
|
|
68
67
|
$jscomp.polyfill("String.fromCodePoint",function(a){return a?a:function(b){for(var c="",d=0;d<arguments.length;d++){var e=Number(arguments[d]);if(0>e||1114111<e||e!==Math.floor(e))throw new RangeError("invalid_code_point "+e);65535>=e?c+=String.fromCharCode(e):(e-=65536,c+=String.fromCharCode(e>>>10&1023|55296),c+=String.fromCharCode(e&1023|56320))}return c}},"es6","es3");
|
|
69
68
|
$jscomp.polyfill("WeakSet",function(a){function b(){if(!a||!Object.seal)return!1;try{var d=Object.seal({}),e=Object.seal({}),f=new a([d]);if(!f.has(d)||f.has(e))return!1;f.delete(d);f.add(e);return!f.has(d)&&f.has(e)}catch(g){return!1}}if($jscomp.USE_PROXY_FOR_ES6_CONFORMANCE_CHECKS){if(a&&$jscomp.ES6_CONFORMANCE)return a}else if(b())return a;var c=function(d){this.map_=new WeakMap;if(d){d=$jscomp.makeIterator(d);for(var e;!(e=d.next()).done;)this.add(e.value)}};c.prototype.add=function(d){this.map_.set(d,
|
|
@@ -140,12 +139,12 @@ goog.asserts=function(){};goog.asserts.assert=function(a,b){};goog.asserts.ENABL
|
|
|
140
139
|
shaka.abr.Ewma.prototype.getEstimate=function(){return this.estimate_/(1-Math.pow(this.alpha_,this.totalWeight_))};shaka.abr.EwmaBandwidthEstimator=function(){this.fast_=new shaka.abr.Ewma(2);this.slow_=new shaka.abr.Ewma(5);this.bytesSampled_=0;this.minTotalBytes_=128E3;this.minBytes_=16E3};shaka.abr.EwmaBandwidthEstimator.prototype.configure=function(a){this.minTotalBytes_=a.minTotalBytes;this.minBytes_=a.minBytes;this.fast_.updateAlpha(a.fastHalfLife);this.slow_.updateAlpha(a.slowHalfLife)};
|
|
141
140
|
shaka.abr.EwmaBandwidthEstimator.prototype.sample=function(a,b){if(!(b<this.minBytes_)){var c=8E3*b/a;a/=1E3;this.bytesSampled_+=b;this.fast_.sample(a,c);this.slow_.sample(a,c)}};shaka.abr.EwmaBandwidthEstimator.prototype.getBandwidthEstimate=function(a){return this.bytesSampled_<this.minTotalBytes_?a:Math.min(this.fast_.getEstimate(),this.slow_.getEstimate())};shaka.abr.EwmaBandwidthEstimator.prototype.hasGoodEstimate=function(){return this.bytesSampled_>=this.minTotalBytes_};shaka.log=function(){};shaka.log.alwaysError=function(){};shaka.log.alwaysWarn=function(){};shaka.log.warnOnce=function(a){var b=$jscomp.getRestArguments.apply(1,arguments);shaka.log.oneTimeWarningIssued_.has(a)||(shaka.log.oneTimeWarningIssued_.add(a),shaka.log.alwaysWarn.apply(shaka.log,$jscomp.arrayFromIterable(b)))};shaka.log.error=function(){};shaka.log.warning=function(){};shaka.log.info=function(){};shaka.log.debug=function(){};shaka.log.v1=function(){};shaka.log.v2=function(){};
|
|
142
141
|
shaka.log.Level={NONE:0,ERROR:1,WARNING:2,INFO:3,DEBUG:4,V1:5,V2:6};shaka.log.MAX_LOG_LEVEL=4;shaka.log.oneTimeWarningIssued_=new Set;
|
|
143
|
-
|
|
144
|
-
return console.
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
(shaka.log.
|
|
148
|
-
shaka.util.MultiMap.prototype.remove=function(a,b){
|
|
142
|
+
window.console&&(shaka.log.logMap_=(new Map).set(shaka.log.Level.ERROR,function(){var a=$jscomp.getRestArguments.apply(0,arguments);return console.error.apply(console,$jscomp.arrayFromIterable(a))}).set(shaka.log.Level.WARNING,function(){var a=$jscomp.getRestArguments.apply(0,arguments);return console.warn.apply(console,$jscomp.arrayFromIterable(a))}).set(shaka.log.Level.INFO,function(){var a=$jscomp.getRestArguments.apply(0,arguments);return console.info.apply(console,$jscomp.arrayFromIterable(a))}).set(shaka.log.Level.DEBUG,
|
|
143
|
+
function(){var a=$jscomp.getRestArguments.apply(0,arguments);return console.log.apply(console,$jscomp.arrayFromIterable(a))}).set(shaka.log.Level.V1,function(){var a=$jscomp.getRestArguments.apply(0,arguments);return console.debug.apply(console,$jscomp.arrayFromIterable(a))}).set(shaka.log.Level.V2,function(){var a=$jscomp.getRestArguments.apply(0,arguments);return console.debug.apply(console,$jscomp.arrayFromIterable(a))}),shaka.log.alwaysWarn=function(){var a=$jscomp.getRestArguments.apply(0,arguments);
|
|
144
|
+
return console.warn.apply(console,$jscomp.arrayFromIterable(a))},shaka.log.alwaysError=function(){var a=$jscomp.getRestArguments.apply(0,arguments);return console.error.apply(console,$jscomp.arrayFromIterable(a))},goog.DEBUG?(goog.exportSymbol("shaka.log",shaka.log),shaka.log.setLevel=function(a){var b=function(c){return c<=a?(goog.asserts.assert(shaka.log.logMap_.has(c),"Unexpected log level"),shaka.log.logMap_.get(c)):function(){}};shaka.log.currentLevel=a;shaka.log.error=b(shaka.log.Level.ERROR);
|
|
145
|
+
shaka.log.warning=b(shaka.log.Level.WARNING);shaka.log.info=b(shaka.log.Level.INFO);shaka.log.debug=b(shaka.log.Level.DEBUG);shaka.log.v1=b(shaka.log.Level.V1);shaka.log.v2=b(shaka.log.Level.V2)},shaka.log.setLevel(shaka.log.MAX_LOG_LEVEL)):(shaka.log.MAX_LOG_LEVEL>=shaka.log.Level.ERROR&&(shaka.log.error=shaka.log.logMap_.get(shaka.log.Level.ERROR)),shaka.log.MAX_LOG_LEVEL>=shaka.log.Level.WARNING&&(shaka.log.warning=shaka.log.logMap_.get(shaka.log.Level.WARNING)),shaka.log.MAX_LOG_LEVEL>=shaka.log.Level.INFO&&
|
|
146
|
+
(shaka.log.info=shaka.log.logMap_.get(shaka.log.Level.INFO)),shaka.log.MAX_LOG_LEVEL>=shaka.log.Level.DEBUG&&(shaka.log.debug=shaka.log.logMap_.get(shaka.log.Level.DEBUG)),shaka.log.MAX_LOG_LEVEL>=shaka.log.Level.V1&&(shaka.log.v1=shaka.log.logMap_.get(shaka.log.Level.V1)),shaka.log.MAX_LOG_LEVEL>=shaka.log.Level.V2&&(shaka.log.v2=shaka.log.logMap_.get(shaka.log.Level.V2))));shaka.util={};shaka.util.IReleasable=function(){};shaka.util.IReleasable.prototype.release=function(){};shaka.util.MultiMap=function(){this.map_=new Map};shaka.util.MultiMap.prototype.push=function(a,b){this.map_.has(a)?this.map_.get(a).push(b):this.map_.set(a,[b])};shaka.util.MultiMap.prototype.get=function(a){return this.map_.has(a)?this.map_.get(a).slice():null};shaka.util.MultiMap.prototype.getAll=function(){for(var a=[],b=$jscomp.makeIterator(this.map_.values()),c=b.next();!c.done;c=b.next())a.push.apply(a,$jscomp.arrayFromIterable(c.value));return a};
|
|
147
|
+
shaka.util.MultiMap.prototype.remove=function(a,b){if(this.map_.has(a)){var c=this.map_.get(a).filter(function(d){return d!=b});this.map_.set(a,c);c.length||this.map_.delete(a)}};shaka.util.MultiMap.prototype.clear=function(){this.map_.clear()};shaka.util.MultiMap.prototype.forEach=function(a){this.map_.forEach(function(b,c){a(c,b)})};shaka.util.MultiMap.prototype.size=function(){return this.map_.size};shaka.util.MultiMap.prototype.keys=function(){return Array.from(this.map_.keys())};shaka.util.EventManager=function(){this.bindingMap_=new shaka.util.MultiMap};shaka.util.EventManager.prototype.release=function(){this.removeAll();this.bindingMap_=null};shaka.util.EventManager.prototype.listen=function(a,b,c,d){this.bindingMap_&&(a=new shaka.util.EventManager.Binding_(a,b,c,d),this.bindingMap_.push(b,a))};shaka.util.EventManager.prototype.listenOnce=function(a,b,c,d){var e=this,f=function(g){e.unlisten(a,b,f);c(g)};this.listen(a,b,f,d)};
|
|
149
148
|
shaka.util.EventManager.prototype.unlisten=function(a,b,c){if(this.bindingMap_){var d=this.bindingMap_.get(b)||[];d=$jscomp.makeIterator(d);for(var e=d.next();!e.done;e=d.next())e=e.value,e.target!=a||c!=e.listener&&c||(e.unlisten(),this.bindingMap_.remove(b,e))}};shaka.util.EventManager.prototype.removeAll=function(){if(this.bindingMap_){var a=this.bindingMap_.getAll();a=$jscomp.makeIterator(a);for(var b=a.next();!b.done;b=a.next())b.value.unlisten();this.bindingMap_.clear()}};
|
|
150
149
|
goog.exportSymbol("shaka.util.EventManager",shaka.util.EventManager);goog.exportProperty(shaka.util.EventManager.prototype,"removeAll",shaka.util.EventManager.prototype.removeAll);goog.exportProperty(shaka.util.EventManager.prototype,"unlisten",shaka.util.EventManager.prototype.unlisten);goog.exportProperty(shaka.util.EventManager.prototype,"listenOnce",shaka.util.EventManager.prototype.listenOnce);goog.exportProperty(shaka.util.EventManager.prototype,"listen",shaka.util.EventManager.prototype.listen);
|
|
151
150
|
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)};
|
|
@@ -162,10 +161,10 @@ shaka.util.BufferUtils.view_=function(a,b,c,d){var e=shaka.util.BufferUtils.unsa
|
|
|
162
161
|
goog.exportProperty(shaka.util.BufferUtils,"toUint16",shaka.util.BufferUtils.toUint16);goog.exportProperty(shaka.util.BufferUtils,"toUint8",shaka.util.BufferUtils.toUint8);goog.exportProperty(shaka.util.BufferUtils,"toArrayBuffer",shaka.util.BufferUtils.toArrayBuffer);goog.exportProperty(shaka.util.BufferUtils,"equal",shaka.util.BufferUtils.equal);shaka.media.IClosedCaptionParser=function(){};shaka.media.IClosedCaptionParser.prototype.init=function(a,b){};shaka.media.IClosedCaptionParser.prototype.parseFrom=function(a){};shaka.media.IClosedCaptionParser.prototype.reset=function(){};shaka.media.IClosedCaptionParser.prototype.getStreams=function(){};goog.exportSymbol("shaka.media.IClosedCaptionParser",shaka.media.IClosedCaptionParser);
|
|
163
162
|
shaka.media.ClosedCaptionParser=function(a){this.ceaParser_=new shaka.cea.DummyCeaParser;if(a=shaka.media.ClosedCaptionParser.findParser(a.toLowerCase()))this.ceaParser_=a();this.ceaDecoder_=new shaka.cea.DummyCaptionDecoder;if(a=shaka.media.ClosedCaptionParser.findDecoder())this.ceaDecoder_=a()};shaka.media.ClosedCaptionParser.prototype.init=function(a,b){b=void 0===b?!1:b;shaka.log.debug("Passing new init segment to CEA parser");b||this.reset();this.ceaParser_.init(a)};
|
|
164
163
|
shaka.media.ClosedCaptionParser.prototype.parseFrom=function(a){a=this.ceaParser_.parse(a);a=$jscomp.makeIterator(a);for(var b=a.next();!b.done;b=a.next()){b=b.value;var c=shaka.util.BufferUtils.toUint8(b.packet);0<c.length&&this.ceaDecoder_.extract(c,b.pts)}return this.ceaDecoder_.decode()};shaka.media.ClosedCaptionParser.prototype.reset=function(){this.ceaDecoder_.clear()};shaka.media.ClosedCaptionParser.prototype.getStreams=function(){return this.ceaDecoder_.getStreams()};
|
|
165
|
-
shaka.media.ClosedCaptionParser.registerParser=function(a,b){shaka.media.ClosedCaptionParser.parserMap_
|
|
164
|
+
shaka.media.ClosedCaptionParser.registerParser=function(a,b){shaka.media.ClosedCaptionParser.parserMap_.set(a,b)};shaka.media.ClosedCaptionParser.unregisterParser=function(a){shaka.media.ClosedCaptionParser.parserMap_.delete(a)};shaka.media.ClosedCaptionParser.findParser=function(a){return shaka.media.ClosedCaptionParser.parserMap_.get(a)};shaka.media.ClosedCaptionParser.registerDecoder=function(a){shaka.media.ClosedCaptionParser.decoderFactory_=a};
|
|
166
165
|
shaka.media.ClosedCaptionParser.unregisterDecoder=function(){shaka.media.ClosedCaptionParser.decoderFactory_=null};shaka.media.ClosedCaptionParser.findDecoder=function(){return shaka.media.ClosedCaptionParser.decoderFactory_};goog.exportSymbol("shaka.media.ClosedCaptionParser",shaka.media.ClosedCaptionParser);goog.exportProperty(shaka.media.ClosedCaptionParser,"findDecoder",shaka.media.ClosedCaptionParser.findDecoder);goog.exportProperty(shaka.media.ClosedCaptionParser,"unregisterDecoder",shaka.media.ClosedCaptionParser.unregisterDecoder);
|
|
167
166
|
goog.exportProperty(shaka.media.ClosedCaptionParser,"registerDecoder",shaka.media.ClosedCaptionParser.registerDecoder);goog.exportProperty(shaka.media.ClosedCaptionParser,"findParser",shaka.media.ClosedCaptionParser.findParser);goog.exportProperty(shaka.media.ClosedCaptionParser,"unregisterParser",shaka.media.ClosedCaptionParser.unregisterParser);goog.exportProperty(shaka.media.ClosedCaptionParser,"registerParser",shaka.media.ClosedCaptionParser.registerParser);
|
|
168
|
-
shaka.media.ClosedCaptionParser.parserMap_=
|
|
167
|
+
shaka.media.ClosedCaptionParser.parserMap_=new Map;shaka.media.ClosedCaptionParser.decoderFactory_=null;shaka.text={};shaka.text.CueRegion=function(){var a=shaka.text.CueRegion;this.id="";this.regionAnchorY=this.regionAnchorX=this.viewportAnchorY=this.viewportAnchorX=0;this.height=this.width=100;this.viewportAnchorUnits=this.widthUnits=this.heightUnits=a.units.PERCENTAGE;this.scroll=a.scrollMode.NONE};goog.exportSymbol("shaka.text.CueRegion",shaka.text.CueRegion);shaka.text.CueRegion.units={PX:0,PERCENTAGE:1,LINES:2};goog.exportProperty(shaka.text.CueRegion,"units",shaka.text.CueRegion.units);
|
|
169
168
|
shaka.text.CueRegion.scrollMode={NONE:"",UP:"up"};goog.exportProperty(shaka.text.CueRegion,"scrollMode",shaka.text.CueRegion.scrollMode);shaka.util.ArrayUtils=function(){};shaka.util.ArrayUtils.defaultEquals=function(a,b){return"number"===typeof a&&"number"===typeof b&&isNaN(a)&&isNaN(b)?!0:a===b};shaka.util.ArrayUtils.remove=function(a,b){b=a.indexOf(b);-1<b&&a.splice(b,1)};shaka.util.ArrayUtils.count=function(a,b){var c=0;a=$jscomp.makeIterator(a);for(var d=a.next();!d.done;d=a.next())c+=b(d.value)?1:0;return c};
|
|
170
169
|
shaka.util.ArrayUtils.hasSameElements=function(a,b,c){c||(c=shaka.util.ArrayUtils.defaultEquals);if(a.length!=b.length)return!1;b=b.slice();a=$jscomp.makeIterator(a);for(var d=a.next(),e={};!d.done;e={item$jscomp$28:void 0},d=a.next()){e.item$jscomp$28=d.value;d=b.findIndex(function(f){return function(g){return c(f.item$jscomp$28,g)}}(e));if(-1==d)return!1;b[d]=b[b.length-1];b.pop()}return 0==b.length};
|
|
171
170
|
shaka.util.ArrayUtils.equal=function(a,b,c){c||(c=shaka.util.ArrayUtils.defaultEquals);if(a.length!=b.length)return!1;for(var d=0;d<a.length;d++)if(!c(a[d],b[d]))return!1;return!0};shaka.util.Error=function(a,b,c){var d=$jscomp.getRestArguments.apply(3,arguments);this.severity=a;this.category=b;this.code=c;this.data=d;this.handled=!1;d="Shaka Error "+this.code;if(goog.DEBUG){var e=d="UNKNOWN",f;for(f in shaka.util.Error.Category)shaka.util.Error.Category[f]==this.category&&(d=f);for(var g in shaka.util.Error.Code)shaka.util.Error.Code[g]==this.code&&(e=g);d="Shaka Error "+d+"."+e+" ("+this.data.toString()+")"}this.message=d;if(shaka.util.Error.createStack)try{throw Error(this.message||
|
|
@@ -193,16 +192,17 @@ shaka.util.Platform.isTizen4=function(){return shaka.util.Platform.userAgentCont
|
|
|
193
192
|
shaka.util.Platform.isWebOS4=function(){return shaka.util.Platform.isWebOS()&&53===shaka.util.Platform.chromeVersion()};shaka.util.Platform.isWebOS5=function(){return shaka.util.Platform.isWebOS()&&68===shaka.util.Platform.chromeVersion()};shaka.util.Platform.isWebOS6=function(){return shaka.util.Platform.isWebOS()&&79===shaka.util.Platform.chromeVersion()};shaka.util.Platform.isChromecast=function(){return shaka.util.Platform.userAgentContains_("CrKey")};
|
|
194
193
|
shaka.util.Platform.isAndroidCastDevice=function(){var a=shaka.util.Platform;return a.isChromecast()&&a.isAndroid()};shaka.util.Platform.isFuchsiaCastDevice=function(){var a=shaka.util.Platform;return a.isChromecast()&&a.isFuchsia()};shaka.util.Platform.chromeVersion=function(){if(!shaka.util.Platform.isChrome())return null;var a=navigator.userAgent.match(/Chrome\/(\d+)/);return a?parseInt(a[1],10):null};
|
|
195
194
|
shaka.util.Platform.isChrome=function(){return shaka.util.Platform.userAgentContains_("Chrome")&&!shaka.util.Platform.isLegacyEdge()};shaka.util.Platform.isFirefox=function(){return shaka.util.Platform.userAgentContains_("Firefox")};
|
|
196
|
-
shaka.util.Platform.isApple=function(){return!!navigator.vendor&&navigator.vendor.includes("Apple")&&!shaka.util.Platform.isTizen()&&!shaka.util.Platform.isEOS()&&!shaka.util.Platform.isAPL()&&!shaka.util.Platform.
|
|
197
|
-
shaka.util.Platform.
|
|
198
|
-
shaka.util.Platform.isAmazonFireTV=function(){return shaka.util.Platform.userAgentContains_("AFT")};shaka.util.Platform.isComcastX1=function(){return shaka.util.Platform.userAgentContains_("WPE")};shaka.util.Platform.isZenterio=function(){return shaka.util.Platform.userAgentContains_("DT_STB_BCM")};
|
|
199
|
-
shaka.util.Platform.safariVersion=function(){if(!shaka.util.Platform.isApple())return null;var a=navigator.userAgent.match(/Version\/(\d+)/);return a?parseInt(a[1],10):(a=navigator.userAgent.match(/OS (\d+)(?:_\d+)?/))?parseInt(a[1],10):null};shaka.util.Platform.isSafari=function(){return!!shaka.util.Platform.safariVersion()};
|
|
200
|
-
shaka.util.Platform.
|
|
195
|
+
shaka.util.Platform.isApple=function(){return!!navigator.vendor&&navigator.vendor.includes("Apple")&&!shaka.util.Platform.isTizen()&&!shaka.util.Platform.isEOS()&&!shaka.util.Platform.isAPL()&&!shaka.util.Platform.isAPP()&&!shaka.util.Platform.isVirginMedia()&&!shaka.util.Platform.isOrange()&&!shaka.util.Platform.isPS4()&&!shaka.util.Platform.isAmazonFireTV()&&!shaka.util.Platform.isComcastX1()&&!shaka.util.Platform.isZenterio()&&!shaka.util.Platform.isSkyQ()&&!shaka.util.Platform.isMultiChoice()};
|
|
196
|
+
shaka.util.Platform.isPS5=function(){return shaka.util.Platform.userAgentContains_("PlayStation 5")};shaka.util.Platform.isPS4=function(){return shaka.util.Platform.userAgentContains_("PlayStation 4")};shaka.util.Platform.isHisense=function(){return shaka.util.Platform.userAgentContains_("Hisense")||shaka.util.Platform.userAgentContains_("VIDAA")};shaka.util.Platform.isVirginMedia=function(){return shaka.util.Platform.userAgentContains_("VirginMedia")};shaka.util.Platform.isOrange=function(){return shaka.util.Platform.userAgentContains_("SOPOpenBrowser")};
|
|
197
|
+
shaka.util.Platform.isSkyQ=function(){return shaka.util.Platform.userAgentContains_("Sky_STB")};shaka.util.Platform.isAmazonFireTV=function(){return shaka.util.Platform.userAgentContains_("AFT")};shaka.util.Platform.isComcastX1=function(){return shaka.util.Platform.userAgentContains_("WPE")};shaka.util.Platform.isZenterio=function(){return shaka.util.Platform.userAgentContains_("DT_STB_BCM")};
|
|
198
|
+
shaka.util.Platform.isMultiChoice=function(){return shaka.util.Platform.userAgentContains_("MDMP1001S")||shaka.util.Platform.userAgentContains_("PS5525IMC")};shaka.util.Platform.safariVersion=function(){if(!shaka.util.Platform.isApple())return null;var a=navigator.userAgent.match(/Version\/(\d+)/);return a?parseInt(a[1],10):(a=navigator.userAgent.match(/OS (\d+)(?:_\d+)?/))?parseInt(a[1],10):null};shaka.util.Platform.isSafari=function(){return!!shaka.util.Platform.safariVersion()};
|
|
199
|
+
shaka.util.Platform.isEOS=function(){return shaka.util.Platform.userAgentContains_("PC=EOS")};shaka.util.Platform.isAPL=function(){return shaka.util.Platform.userAgentContains_("PC=APL")};shaka.util.Platform.isAPP=function(){return shaka.util.Platform.userAgentContains_("PC=APPSTB")};shaka.util.Platform.isMobile=function(){return/(?:iPhone|iPad|iPod|Android)/.test(navigator.userAgent)?!0:shaka.util.Platform.isApple()&&1<navigator.maxTouchPoints};
|
|
200
|
+
shaka.util.Platform.isMac=function(){return navigator.userAgentData&&navigator.userAgentData.platform?"macos"==navigator.userAgentData.platform.toLowerCase():navigator.platform?navigator.platform.toLowerCase().includes("mac"):!1};shaka.util.Platform.isVisionOS=function(){return shaka.util.Platform.isMac()&&"xr"in navigator?!0:!1};
|
|
201
201
|
shaka.util.Platform.isWindows=function(){return navigator.userAgentData&&navigator.userAgentData.platform?"windows"==navigator.userAgentData.platform.toLowerCase():navigator.platform?navigator.platform.toLowerCase().includes("win32"):!1};shaka.util.Platform.isAndroid=function(){return shaka.util.Platform.userAgentContains_("Android")};shaka.util.Platform.isFuchsia=function(){return shaka.util.Platform.userAgentContains_("Fuchsia")};
|
|
202
|
-
shaka.util.Platform.isSmartTV=function(){var a=shaka.util.Platform;return a.isTizen()||a.isWebOS()||a.isXboxOne()||a.isPS4()||a.isPS5()||a.isAmazonFireTV()||a.isEOS()||a.isAPL()||a.isVirginMedia()||a.isOrange()||a.isComcastX1()||a.isChromecast()||a.isHisense()||a.isZenterio()?!0:!1};shaka.util.Platform.userAgentContains_=function(a){return(navigator.userAgent||"").includes(a)};
|
|
202
|
+
shaka.util.Platform.isSmartTV=function(){var a=shaka.util.Platform;return a.isTizen()||a.isWebOS()||a.isXboxOne()||a.isPS4()||a.isPS5()||a.isAmazonFireTV()||a.isEOS()||a.isAPL()||a.isVirginMedia()||a.isOrange()||a.isComcastX1()||a.isChromecast()||a.isHisense()||a.isZenterio()||a.isAPP()||a.isMultiChoice()?!0:!1};shaka.util.Platform.userAgentContains_=function(a){return(navigator.userAgent||"").includes(a)};
|
|
203
203
|
shaka.util.Platform.anyMediaElement=function(){var a=shaka.util.Platform;if(a.cachedMediaElement_)return a.cachedMediaElement_;a.cacheExpirationTimer_||(a.cacheExpirationTimer_=new shaka.util.Timer(function(){a.cachedMediaElement_=null}));a.cachedMediaElement_=document.getElementsByTagName("video")[0]||document.getElementsByTagName("audio")[0];a.cachedMediaElement_||(a.cachedMediaElement_=document.createElement("video"));a.cacheExpirationTimer_.tickAfter(1);return a.cachedMediaElement_};
|
|
204
|
-
shaka.util.Platform.requiresEncryptionInfoInAllInitSegments=function(a){var b=shaka.util.Platform;a=shaka.drm.DrmUtils.isPlayReadyKeySystem(a);return b.isTizen()||b.isXboxOne()||b.isOrange()||b.isEdge()&&b.isWindows()&&a};shaka.util.Platform.supportsSequenceMode=function(){var a=shaka.util.Platform;return a.isTizen3()||a.isTizen2()||a.isWebOS3()||a.isPS4()?!1:!0};
|
|
205
|
-
shaka.util.Platform.supportsSmoothCodecSwitching=function(){var a=shaka.util.Platform;return a.isTizen()||a.isPS4()||a.isPS5()||a.isWebOS6()||a.isChromecast()&&!a.isAndroidCastDevice()&&!a.isFuchsiaCastDevice()||a.isWindows()&&a.isEdge()?!1:!0};shaka.util.Platform.isSeekingSlow=function(){var a=shaka.util.Platform;return a.isChromecast()&&!a.isAndroidCastDevice()?!0:!1};shaka.util.Platform.isMediaKeysPolyfilled=function(a){return a
|
|
204
|
+
shaka.util.Platform.requiresEncryptionInfoInAllInitSegments=function(a){var b=shaka.util.Platform;a=shaka.drm.DrmUtils.isPlayReadyKeySystem(a);return b.isTizen()||b.isXboxOne()||b.isOrange()||b.isEdge()&&b.isWindows()&&a};shaka.util.Platform.requiresEC3InitSegments=function(){return shaka.util.Platform.isTizen3()};shaka.util.Platform.supportsSequenceMode=function(){var a=shaka.util.Platform;return a.isTizen3()||a.isTizen2()||a.isWebOS3()||a.isPS4()||a.isPS5()?!1:!0};
|
|
205
|
+
shaka.util.Platform.supportsSmoothCodecSwitching=function(){var a=shaka.util.Platform;return a.isTizen()||a.isPS4()||a.isPS5()||a.isWebOS6()||a.isChromecast()&&!a.isAndroidCastDevice()&&!a.isFuchsiaCastDevice()||a.isWindows()&&a.isEdge()?!1:!0};shaka.util.Platform.isSeekingSlow=function(){var a=shaka.util.Platform;return a.isChromecast()&&!a.isAndroidCastDevice()?!0:!1};shaka.util.Platform.isMediaKeysPolyfilled=function(a){return a===window.shakaMediaKeysPolyfill};
|
|
206
206
|
shaka.util.Platform.detectMaxHardwareResolution=function(){var a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t;return $jscomp.asyncExecutePromiseGeneratorProgram(function(u){switch(u.nextAddress){case 1:a=shaka.util.Platform;b={width:Infinity,height:Infinity};if(a.isChromecast()){p=window.cast&&cast.__platform__&&cast.__platform__.canDisplayType;b.width=1280;b.height=720;u.setCatchFinallyBlocks(14);if(!(q=p)){u.jumpTo(16);break}return u.yield(cast.__platform__.canDisplayType('video/mp4; codecs="avc1.640028"; width=3840; height=2160'),
|
|
207
207
|
17)}if(a.isTizen()){b.width=1920;b.height=1080;try{webapis.systeminfo&&webapis.systeminfo.getMaxVideoResolution?(c=webapis.systeminfo.getMaxVideoResolution(),b.width=c.width,b.height=c.height):webapis.productinfo.is8KPanelSupported&&webapis.productinfo.is8KPanelSupported()?(b.width=7680,b.height=4320):webapis.productinfo.isUdPanelSupported&&webapis.productinfo.isUdPanelSupported()&&(b.width=3840,b.height=2160)}catch(v){shaka.log.alwaysWarn("Tizen: Error detecting screen size, default screen size 1920x1080.")}u.jumpTo(3);
|
|
208
208
|
break}if(a.isWebOS()){try{d=JSON.parse(window.PalmSystem.deviceInfo),b.width=Math.max(1920,d.screenWidth),b.height=Math.max(1080,d.screenHeight)}catch(v){shaka.log.alwaysWarn("WebOS: Error detecting screen size, default screen size 1920x1080."),b.width=1920,b.height=1080}u.jumpTo(3);break}if(a.isHisense()){window.Hisense_Get4KSupportState&&window.Hisense_Get4KSupportState()?(b.width=3840,b.height=2160):(b.width=1920,b.height=1080);u.jumpTo(3);break}if(!a.isPS4()&&!a.isPS5()){e=void 0;try{e="undefined"!==
|
|
@@ -256,7 +256,8 @@ shaka.util.TXml.txmlNodeToDomElement=function(a){var b=shaka.util.TXml,c="",d=a.
|
|
|
256
256
|
shaka.util.TXml.cloneNode=function(a){if(!a)return null;var b={tagName:a.tagName,attributes:shaka.util.ObjectUtils.shallowCloneObject(a.attributes),children:[],parent:null};a=$jscomp.makeIterator(a.children);for(var c=a.next();!c.done;c=a.next())c=c.value,"string"===typeof c?b.children.push(c):(c=shaka.util.TXml.cloneNode(c),c.parent=b,b.children.push(c));return b};shaka.util.TXml.uriToNameSpace_=new Map;shaka.util.TXml.nameSpaceToUri_=new Map;shaka.text.Cue=function(a,b,c){var d=shaka.text.Cue;this.startTime=a;this.endTime=b;this.payload=c;this.region=new shaka.text.CueRegion;this.position=null;this.positionAlign=d.positionAlign.AUTO;this.size=0;this.textAlign=d.textAlign.CENTER;this.direction=d.direction.HORIZONTAL_LEFT_TO_RIGHT;this.writingMode=d.writingMode.HORIZONTAL_TOP_TO_BOTTOM;this.lineInterpretation=d.lineInterpretation.LINE_NUMBER;this.line=null;this.lineHeight="";this.lineAlign=d.lineAlign.START;this.displayAlign=d.displayAlign.AFTER;
|
|
257
257
|
this.fontSize=this.border=this.backgroundImage=this.backgroundColor=this.color="";this.fontWeight=d.fontWeight.NORMAL;this.fontStyle=d.fontStyle.NORMAL;this.linePadding=this.letterSpacing=this.fontFamily="";this.opacity=1;this.textCombineUpright="";this.textDecoration=[];this.textStrokeWidth=this.textStrokeColor=this.textShadow="";this.wrapLine=!0;this.id="";this.nestedCues=[];this.lineBreak=this.isContainer=!1;this.rubyTag=null;this.cellResolution={columns:32,rows:15}};
|
|
258
258
|
shaka.text.Cue.lineBreak=function(a,b){a=new shaka.text.Cue(a,b,"");a.lineBreak=!0;return a};shaka.text.Cue.prototype.clone=function(){var a=new shaka.text.Cue(0,0,""),b;for(b in this)a[b]=this[b],a[b]&&a[b].constructor==Array&&(a[b]=a[b].slice());return a};
|
|
259
|
-
shaka.text.Cue.equal=function(a,b){if(a.
|
|
259
|
+
shaka.text.Cue.equal=function(a,b){if(a.payload!=b.payload||!(.001>Math.abs(a.startTime-b.startTime)&&.001>Math.abs(a.endTime-b.endTime)))return!1;for(var c in a)if("startTime"!=c&&"endTime"!=c&&"payload"!=c)if("nestedCues"==c){if(!shaka.util.ArrayUtils.equal(a.nestedCues,b.nestedCues,shaka.text.Cue.equal))return!1}else if("region"==c||"cellResolution"==c)for(var d in a[c]){if(a[c][d]!=b[c][d])return!1}else if(Array.isArray(a[c])){if(!shaka.util.ArrayUtils.equal(a[c],b[c]))return!1}else if(a[c]!=
|
|
260
|
+
b[c])return!1;return!0};
|
|
260
261
|
shaka.text.Cue.parseCuePayload=function(a,b){b=void 0===b?new Map:b;var c=shaka.util.StringUtils,d=shaka.util.TXml,e=a.payload;if(e.includes("<")){0===b.size&&shaka.text.Cue.addDefaultTextColor(b);e=shaka.text.Cue.replaceKaraokeStylePayload_(e);e=shaka.text.Cue.replaceVoiceStylePayload_(e);e=shaka.text.Cue.escapeInvalidChevrons_(e);a.payload="";try{var f=d.parseXmlString("<span>"+e+"</span>","span")}catch(g){shaka.log.warning("cue parse fail: ",g)}if(f)if(f=f.children,1!=f.length||d.isNode(f[0]))for(c=
|
|
261
262
|
$jscomp.makeIterator(f),d=c.next();!d.done;d=c.next())shaka.text.Cue.generateCueFromElement_(d.value,a,b);else a.payload=c.htmlUnescape(e);else shaka.log.warning("The cue's markup could not be parsed: ",e),a.payload=c.htmlUnescape(e)}else a.payload=c.htmlUnescape(e)};
|
|
262
263
|
shaka.text.Cue.addDefaultTextColor=function(a){for(var b=$jscomp.makeIterator(Object.entries(shaka.text.Cue.defaultTextColor)),c=b.next();!c.done;c=b.next()){var d=$jscomp.makeIterator(c.value);c=d.next().value;d=d.next().value;var e=new shaka.text.Cue(0,0,"");e.color=d;a.set("."+c,e)}b=$jscomp.makeIterator(Object.entries(shaka.text.Cue.defaultTextBackgroundColor));for(c=b.next();!c.done;c=b.next())d=$jscomp.makeIterator(c.value),c=d.next().value,d=d.next().value,e=new shaka.text.Cue(0,0,""),e.backgroundColor=
|
|
@@ -272,10 +273,10 @@ goog.exportProperty(shaka.text.Cue,"positionAlign",shaka.text.Cue.positionAlign)
|
|
|
272
273
|
goog.exportProperty(shaka.text.Cue,"direction",shaka.text.Cue.direction);shaka.text.Cue.writingMode={HORIZONTAL_TOP_TO_BOTTOM:"horizontal-tb",VERTICAL_LEFT_TO_RIGHT:"vertical-lr",VERTICAL_RIGHT_TO_LEFT:"vertical-rl"};goog.exportProperty(shaka.text.Cue,"writingMode",shaka.text.Cue.writingMode);shaka.text.Cue.lineInterpretation={LINE_NUMBER:0,PERCENTAGE:1};goog.exportProperty(shaka.text.Cue,"lineInterpretation",shaka.text.Cue.lineInterpretation);
|
|
273
274
|
shaka.text.Cue.lineAlign={CENTER:"center",START:"start",END:"end"};goog.exportProperty(shaka.text.Cue,"lineAlign",shaka.text.Cue.lineAlign);shaka.text.Cue.defaultTextColor={white:"white",lime:"lime",cyan:"cyan",red:"red",yellow:"yellow",magenta:"magenta",blue:"blue",black:"black"};goog.exportProperty(shaka.text.Cue,"defaultTextColor",shaka.text.Cue.defaultTextColor);
|
|
274
275
|
shaka.text.Cue.defaultTextBackgroundColor={bg_white:"white",bg_lime:"lime",bg_cyan:"cyan",bg_red:"red",bg_yellow:"yellow",bg_magenta:"magenta",bg_blue:"blue",bg_black:"black"};goog.exportProperty(shaka.text.Cue,"defaultTextBackgroundColor",shaka.text.Cue.defaultTextBackgroundColor);shaka.text.Cue.fontWeight={NORMAL:400,BOLD:700};goog.exportProperty(shaka.text.Cue,"fontWeight",shaka.text.Cue.fontWeight);shaka.text.Cue.fontStyle={NORMAL:"normal",ITALIC:"italic",OBLIQUE:"oblique"};
|
|
275
|
-
goog.exportProperty(shaka.text.Cue,"fontStyle",shaka.text.Cue.fontStyle);shaka.text.Cue.textDecoration={UNDERLINE:"underline",LINE_THROUGH:"lineThrough",OVERLINE:"overline"};goog.exportProperty(shaka.text.Cue,"textDecoration",shaka.text.Cue.textDecoration);shaka.text.Cue.timeFormat_=/(?:(\d{1,}):)?(\d{2}):(\d{2})\.(\d{2,3})/g;shaka.util.IDestroyable=function(){};shaka.util.IDestroyable.prototype.destroy=function(){};shaka.transmuxer={};shaka.transmuxer.TransmuxerEngine=function(){};shaka.transmuxer.TransmuxerEngine.prototype.destroy=function(){};shaka.transmuxer.TransmuxerEngine.registerTransmuxer=function(a,b,c){var d=shaka.transmuxer.TransmuxerEngine;a=d.normalizeMimeType_(a);d.transmuxerMap_
|
|
276
|
-
shaka.transmuxer.TransmuxerEngine.findTransmuxer=function(a,b){for(var c=shaka.transmuxer.TransmuxerEngine,d=c.normalizeMimeType_(a),e=$jscomp.makeIterator([c.PluginPriority.APPLICATION,c.PluginPriority.PREFERRED,c.PluginPriority.PREFERRED_SECONDARY,c.PluginPriority.FALLBACK]),f=e.next();!f.done;f=e.next())if(f=c.transmuxerMap_
|
|
276
|
+
goog.exportProperty(shaka.text.Cue,"fontStyle",shaka.text.Cue.fontStyle);shaka.text.Cue.textDecoration={UNDERLINE:"underline",LINE_THROUGH:"lineThrough",OVERLINE:"overline"};goog.exportProperty(shaka.text.Cue,"textDecoration",shaka.text.Cue.textDecoration);shaka.text.Cue.timeFormat_=/(?:(\d{1,}):)?(\d{2}):(\d{2})\.(\d{2,3})/g;shaka.util.IDestroyable=function(){};shaka.util.IDestroyable.prototype.destroy=function(){};shaka.transmuxer={};shaka.transmuxer.TransmuxerEngine=function(){};shaka.transmuxer.TransmuxerEngine.prototype.destroy=function(){};shaka.transmuxer.TransmuxerEngine.registerTransmuxer=function(a,b,c){var d=shaka.transmuxer.TransmuxerEngine;a=d.normalizeMimeType_(a);d.transmuxerMap_.set(a+"-"+c,{priority:c,plugin:b})};shaka.transmuxer.TransmuxerEngine.unregisterTransmuxer=function(a,b){var c=shaka.transmuxer.TransmuxerEngine;a=c.normalizeMimeType_(a);c.transmuxerMap_.delete(a+"-"+b)};
|
|
277
|
+
shaka.transmuxer.TransmuxerEngine.findTransmuxer=function(a,b){for(var c=shaka.transmuxer.TransmuxerEngine,d=c.normalizeMimeType_(a),e=$jscomp.makeIterator([c.PluginPriority.APPLICATION,c.PluginPriority.PREFERRED,c.PluginPriority.PREFERRED_SECONDARY,c.PluginPriority.FALLBACK]),f=e.next();!f.done;f=e.next())if(f=c.transmuxerMap_.get(d+"-"+f.value)){var g=f.plugin(),h=g.isSupported(a,b);g.destroy();if(h)return f.plugin}return null};shaka.transmuxer.TransmuxerEngine.normalizeMimeType_=function(a){return a.toLowerCase().split(";")[0]};
|
|
277
278
|
shaka.transmuxer.TransmuxerEngine.isSupported=function(a,b){return shaka.transmuxer.TransmuxerEngine.findTransmuxer(a)?!0:!1};shaka.transmuxer.TransmuxerEngine.convertCodecs=function(a,b){var c=shaka.transmuxer.TransmuxerEngine.findTransmuxer(b);if(!c)return b;c=c();a=c.convertCodecs(a,b);c.destroy();return a};goog.exportSymbol("shaka.transmuxer.TransmuxerEngine",shaka.transmuxer.TransmuxerEngine);goog.exportProperty(shaka.transmuxer.TransmuxerEngine,"findTransmuxer",shaka.transmuxer.TransmuxerEngine.findTransmuxer);
|
|
278
|
-
goog.exportProperty(shaka.transmuxer.TransmuxerEngine,"unregisterTransmuxer",shaka.transmuxer.TransmuxerEngine.unregisterTransmuxer);goog.exportProperty(shaka.transmuxer.TransmuxerEngine,"registerTransmuxer",shaka.transmuxer.TransmuxerEngine.registerTransmuxer);goog.exportProperty(shaka.transmuxer.TransmuxerEngine.prototype,"destroy",shaka.transmuxer.TransmuxerEngine.prototype.destroy);shaka.transmuxer.TransmuxerEngine.transmuxerMap_=
|
|
279
|
+
goog.exportProperty(shaka.transmuxer.TransmuxerEngine,"unregisterTransmuxer",shaka.transmuxer.TransmuxerEngine.unregisterTransmuxer);goog.exportProperty(shaka.transmuxer.TransmuxerEngine,"registerTransmuxer",shaka.transmuxer.TransmuxerEngine.registerTransmuxer);goog.exportProperty(shaka.transmuxer.TransmuxerEngine.prototype,"destroy",shaka.transmuxer.TransmuxerEngine.prototype.destroy);shaka.transmuxer.TransmuxerEngine.transmuxerMap_=new Map;
|
|
279
280
|
shaka.transmuxer.TransmuxerEngine.PluginPriority={FALLBACK:1,PREFERRED_SECONDARY:2,PREFERRED:3,APPLICATION:4};goog.exportProperty(shaka.transmuxer.TransmuxerEngine,"PluginPriority",shaka.transmuxer.TransmuxerEngine.PluginPriority);/*
|
|
280
281
|
@license
|
|
281
282
|
Copyright 2008 The Closure Library Authors
|
|
@@ -299,11 +300,11 @@ goog.Uri.prototype.setFragment=function(a,b){this.fragment_=b?goog.Uri.decodeOrE
|
|
|
299
300
|
goog.Uri.removeDotSegments=function(a){if(".."==a||"."==a)return"";if(-1==a.indexOf("./")&&-1==a.indexOf("/."))return a;var b=0==a.lastIndexOf("/",0);a=a.split("/");for(var c=[],d=0;d<a.length;){var e=a[d++];"."==e?b&&d==a.length&&c.push(""):".."==e?((1<c.length||1==c.length&&""!=c[0])&&c.pop(),b&&d==a.length&&c.push("")):(c.push(e),b=!0)}return c.join("/")};goog.Uri.decodeOrEmpty_=function(a,b){return a?b?decodeURI(a):decodeURIComponent(a):""};
|
|
300
301
|
goog.Uri.encodeSpecialChars_=function(a,b,c){return null!=a?(a=encodeURI(a).replace(b,goog.Uri.encodeChar_),c&&(a=goog.Uri.removeDoubleEncoding_(a)),a):null};goog.Uri.encodeChar_=function(a){a=a.charCodeAt(0);return"%"+(a>>4&15).toString(16)+(a&15).toString(16)};goog.Uri.removeDoubleEncoding_=function(a){return a.replace(/%25([0-9a-fA-F]{2})/g,"%$1")};goog.Uri.reDisallowedInSchemeOrUserInfo_=/[#\/\?@]/g;goog.Uri.reDisallowedInRelativePath_=/[#\?:]/g;goog.Uri.reDisallowedInAbsolutePath_=/[#\?]/g;
|
|
301
302
|
goog.Uri.reDisallowedInQuery_=/[#\?@]/g;goog.Uri.reDisallowedInFragment_=/#/g;goog.Uri.QueryData=function(a,b){this.encodedQuery_=a||null};
|
|
302
|
-
goog.Uri.QueryData.prototype.ensureKeyMapInitialized_=function(){if(!this.keyMap_&&(this.keyMap_=
|
|
303
|
-
goog.Uri.QueryData.prototype.getCount=function(){this.ensureKeyMapInitialized_();return this.count_};goog.Uri.QueryData.prototype.add=function(a,b){this.ensureKeyMapInitialized_();this.encodedQuery_=null;var c=this.keyMap_.
|
|
304
|
-
goog.Uri.QueryData.prototype.set=function(a,b){this.ensureKeyMapInitialized_();this.encodedQuery_=null;this.keyMap_.
|
|
305
|
-
goog.Uri.QueryData.prototype.toString=function(){if(this.encodedQuery_)return this.encodedQuery_;if(!this.keyMap_)return"";var a=[],b
|
|
306
|
-
goog.Uri.QueryData.prototype.clone=function(){var a=new goog.Uri.QueryData;a.encodedQuery_=this.encodedQuery_;if(this.keyMap_){var b=
|
|
303
|
+
goog.Uri.QueryData.prototype.ensureKeyMapInitialized_=function(){if(!this.keyMap_&&(this.keyMap_=new Map,this.count_=0,this.encodedQuery_))for(var a=this.encodedQuery_.split("&"),b=0;b<a.length;b++){var c=a[b].indexOf("="),d=null;if(0<=c){var e=a[b].substring(0,c);d=a[b].substring(c+1)}else e=a[b];e=decodeURIComponent(e.replace(/\+/g," "));d=d||"";this.add(e,decodeURIComponent(d.replace(/\+/g," ")))}};goog.Uri.QueryData.prototype.keyMap_=null;goog.Uri.QueryData.prototype.count_=null;
|
|
304
|
+
goog.Uri.QueryData.prototype.getCount=function(){this.ensureKeyMapInitialized_();return this.count_};goog.Uri.QueryData.prototype.add=function(a,b){this.ensureKeyMapInitialized_();this.encodedQuery_=null;var c=this.keyMap_.has(a)?this.keyMap_.get(a):null;c||this.keyMap_.set(a,c=[]);c.push(b);goog.asserts.assert(null!=this.count_,"Should not be null.");this.count_++;return this};
|
|
305
|
+
goog.Uri.QueryData.prototype.set=function(a,b){this.ensureKeyMapInitialized_();this.encodedQuery_=null;this.keyMap_.has(a)?this.keyMap_.set(a,[b]):this.add(a,b);return this};goog.Uri.QueryData.prototype.get=function(a){this.ensureKeyMapInitialized_();return this.keyMap_.get(a)||[]};
|
|
306
|
+
goog.Uri.QueryData.prototype.toString=function(){if(this.encodedQuery_)return this.encodedQuery_;if(!this.keyMap_||!this.keyMap_.size)return"";for(var a=[],b=$jscomp.makeIterator(this.keyMap_.keys()),c=b.next();!c.done;c=b.next()){var d=c.value;c=encodeURIComponent(d);d=this.keyMap_.get(d);for(var e=0;e<d.length;e++){var f=c;""!==d[e]&&(f+="="+encodeURIComponent(d[e]));a.push(f)}}return this.encodedQuery_=a.join("&")};goog.Uri.QueryData.prototype.toDecodedString=function(){return goog.Uri.decodeOrEmpty_(this.toString())};
|
|
307
|
+
goog.Uri.QueryData.prototype.clone=function(){var a=new goog.Uri.QueryData;a.encodedQuery_=this.encodedQuery_;if(this.keyMap_){for(var b=new Map,c=$jscomp.makeIterator(this.keyMap_),d=c.next();!d.done;d=c.next()){var e=$jscomp.makeIterator(d.value);d=e.next().value;e=e.next().value;b.set(d,e.concat())}a.keyMap_=b;a.count_=this.count_}return a};shaka.util.Uint8ArrayUtils=function(){};shaka.util.Uint8ArrayUtils.toStandardBase64=function(a){a=shaka.util.StringUtils.fromCharCode(shaka.util.BufferUtils.toUint8(a));return btoa(a)};shaka.util.Uint8ArrayUtils.toBase64=function(a,b){b=void 0==b?!0:b;a=shaka.util.Uint8ArrayUtils.toStandardBase64(a).replace(/\+/g,"-").replace(/\//g,"_");return b?a:a.replace(/[=]*$/,"")};
|
|
307
308
|
shaka.util.Uint8ArrayUtils.fromBase64=function(a){a=window.atob(a.replace(/-/g,"+").replace(/_/g,"/"));for(var b=new Uint8Array(a.length),c=0;c<a.length;++c)b[c]=a.charCodeAt(c);return b};shaka.util.Uint8ArrayUtils.fromHex=function(a){for(var b=a.length/2,c=new Uint8Array(b),d=0;d<b;d++)c[d]=window.parseInt(a.substr(2*d,2),16);return c};
|
|
308
309
|
shaka.util.Uint8ArrayUtils.toHex=function(a){var b=shaka.util.BufferUtils.toUint8(a);a="";b=$jscomp.makeIterator(b);for(var c=b.next();!c.done;c=b.next())c=c.value,c=c.toString(16),1==c.length&&(c="0"+c),a+=c;return a};
|
|
309
310
|
shaka.util.Uint8ArrayUtils.concat=function(){for(var a=$jscomp.getRestArguments.apply(0,arguments),b=shaka.util.BufferUtils,c=0,d=0;d<a.length;++d)c+=a[d].byteLength;c=new Uint8Array(c);for(var e=d=0;e<a.length;++e){var f=a[e];ArrayBuffer.isView(f)&&1===f.BYTES_PER_ELEMENT?c.set(f,d):c.set(b.toUint8(f),d);d+=f.byteLength}return c};goog.exportSymbol("shaka.util.Uint8ArrayUtils",shaka.util.Uint8ArrayUtils);goog.exportProperty(shaka.util.Uint8ArrayUtils,"concat",shaka.util.Uint8ArrayUtils.concat);
|
|
@@ -313,10 +314,10 @@ shaka.util.ManifestParserUtils.createDrmInfo=function(a,b,c,d){a={keySystem:a,en
|
|
|
313
314
|
shaka.util.ManifestParserUtils.createDrmInfoFromClearKeys=function(a,b){b=void 0===b?"cenc":b;var c=shaka.util.StringUtils,d=shaka.util.Uint8ArrayUtils,e=[],f=[],g=[];a.forEach(function(k,l){var m=l;22!=m.length&&(m=d.toBase64(d.fromHex(l),!1));var n=k;22!=n.length&&(n=d.toBase64(d.fromHex(k),!1));k={kty:"oct",kid:m,k:n};e.push(k);f.push(k.kid);g.push(l)});a=JSON.stringify({keys:e});var h=JSON.stringify({kids:f});c=[{initData:shaka.util.BufferUtils.toUint8(c.toUTF8(h)),initDataType:"keyids"}];return{keySystem:"org.w3.clearkey",
|
|
314
315
|
encryptionScheme:b,licenseServerUri:"data:application/json;base64,"+window.btoa(a),distinctiveIdentifierRequired:!1,persistentStateRequired:!1,audioRobustness:"",videoRobustness:"",serverCertificate:null,serverCertificateUri:"",sessionType:"",initData:c,keyIds:new Set(g)}};
|
|
315
316
|
shaka.util.ManifestParserUtils.guessCodecs=function(a,b){if(1==b.length)return b[0];a=shaka.util.ManifestParserUtils.guessCodecsSafe(a,b);if(null!=a)return a;throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_COULD_NOT_GUESS_CODECS,b);};
|
|
316
|
-
shaka.util.ManifestParserUtils.guessCodecsSafe=function(a,b){
|
|
317
|
-
shaka.util.ManifestParserUtils.guessAllCodecsSafe=function(a,b){var c=[];a
|
|
317
|
+
shaka.util.ManifestParserUtils.guessCodecsSafe=function(a,b){var c=shaka.util.ManifestParserUtils.CODEC_REGEXPS_BY_CONTENT_TYPE_.get(a);c=$jscomp.makeIterator(c);for(var d=c.next();!d.done;d=c.next()){d=d.value;for(var e=$jscomp.makeIterator(b),f=e.next();!f.done;f=e.next())if(f=f.value,d.test(f.trim()))return f.trim()}return a==shaka.util.ManifestParserUtils.ContentType.TEXT?"":null};
|
|
318
|
+
shaka.util.ManifestParserUtils.guessAllCodecsSafe=function(a,b){var c=[];a=shaka.util.ManifestParserUtils.CODEC_REGEXPS_BY_CONTENT_TYPE_.get(a);a=$jscomp.makeIterator(a);for(var d=a.next();!d.done;d=a.next()){d=d.value;for(var e=$jscomp.makeIterator(b),f=e.next();!f.done;f=e.next())f=f.value,d.test(f.trim())&&c.push(f.trim())}return c};shaka.util.ManifestParserUtils.ContentType={VIDEO:"video",AUDIO:"audio",TEXT:"text",IMAGE:"image",APPLICATION:"application"};
|
|
318
319
|
shaka.util.ManifestParserUtils.TextStreamKind={SUBTITLE:"subtitle",CLOSED_CAPTION:"caption"};shaka.util.ManifestParserUtils.GAP_OVERLAP_TOLERANCE_SECONDS=1/15;shaka.util.ManifestParserUtils.VIDEO_CODEC_REGEXPS_=[/^avc/,/^hev/,/^hvc/,/^vvc/,/^vvi/,/^vp0?[89]/,/^av01/,/^dvh/,/^dva/,/^dav/];shaka.util.ManifestParserUtils.AUDIO_CODEC_REGEXPS_=[/^vorbis$/,/^Opus$/,/^opus$/,/^fLaC$/,/^flac$/,/^mp4a/,/^[ae]c-3$/,/^ac-4/,/^dts[cex]$/,/^iamf/,/^mhm[12]/];
|
|
319
|
-
shaka.util.ManifestParserUtils.TEXT_CODEC_REGEXPS_=[/^vtt$/,/^wvtt/,/^stpp/];shaka.util.ManifestParserUtils.CODEC_REGEXPS_BY_CONTENT_TYPE_=
|
|
320
|
+
shaka.util.ManifestParserUtils.TEXT_CODEC_REGEXPS_=[/^vtt$/,/^wvtt/,/^stpp/];shaka.util.ManifestParserUtils.CODEC_REGEXPS_BY_CONTENT_TYPE_=(new Map).set("audio",shaka.util.ManifestParserUtils.AUDIO_CODEC_REGEXPS_).set("video",shaka.util.ManifestParserUtils.VIDEO_CODEC_REGEXPS_).set("text",shaka.util.ManifestParserUtils.TEXT_CODEC_REGEXPS_);shaka.util.MimeUtils=function(){};shaka.util.MimeUtils.getFullType=function(a,b){var c=a;b&&!shaka.util.MimeUtils.RAW_FORMATS.includes(a)&&(c+='; codecs="'+b+'"');return c};shaka.util.MimeUtils.getFullTypeWithAllCodecs=function(a,b){b&&(a+='; codecs="'+b+'"');return a};
|
|
320
321
|
shaka.util.MimeUtils.getFullOrConvertedType=function(a,b,c){var d=shaka.util.MimeUtils,e=d.getFullType(a,b);b=d.getFullTypeWithAllCodecs(a,b);d=shaka.util.ManifestParserUtils.ContentType;var f=shaka.transmuxer.TransmuxerEngine;return f.isSupported(b,c)?f.convertCodecs(c,b):"video/mp2t"!=a&&c==d.AUDIO?e.replace("video","audio"):e};
|
|
321
322
|
shaka.util.MimeUtils.getExtendedType=function(a,b,c){var d=[b];shaka.util.MimeUtils.EXTENDED_MIME_PARAMETERS_.forEach(function(e,f){var g=a[f];"codecs"==f?shaka.util.MimeUtils.RAW_FORMATS.includes(a.mimeType)||d.push('codecs="'+c+'"'):g&&d.push(e+'="'+g+'"')});"PQ"==a.hdr&&d.push('eotf="smpte2084"');return d.join(";")};shaka.util.MimeUtils.getContainerType=function(a){return a.split(";")[0].split("/")[1]};shaka.util.MimeUtils.splitCodecs=function(a){return a.split(",")};
|
|
322
323
|
shaka.util.MimeUtils.getNormalizedCodec=function(a){var b=shaka.util.MimeUtils.getCodecParts_(a);a=b[0];b=b[1].toLowerCase();switch(!0){case "mp4a"===a&&"69"===b:case "mp4a"===a&&"6b"===b:case "mp4a"===a&&"40.34"===b:return"mp3";case "mp4a"===a&&"66"===b:case "mp4a"===a&&"67"===b:case "mp4a"===a&&"68"===b:case "mp4a"===a&&"40.2"===b:case "mp4a"===a&&"40.02"===b:case "mp4a"===a&&"40.5"===b:case "mp4a"===a&&"40.05"===b:case "mp4a"===a&&"40.29"===b:case "mp4a"===a&&"40.42"===b:return"aac";case "mp4a"===
|
|
@@ -324,10 +325,10 @@ a&&"a5"===b:return"ac-3";case "mp4a"===a&&"a6"===b:return"ec-3";case "mp4a"===a&
|
|
|
324
325
|
shaka.util.MimeUtils.getCodecBase=function(a){var b=[];a=$jscomp.makeIterator(a.split(","));for(var c=a.next();!c.done;c=a.next())c=shaka.util.MimeUtils.getCodecParts_(c.value),b.push(c[0]);return b.sort().join(",")};shaka.util.MimeUtils.getBasicType=function(a){return a.split(";")[0]};shaka.util.MimeUtils.getCodecs=function(a){a=a.split(/ *; */);a.shift();return(a=a.find(function(b){return b.startsWith("codecs=")}))?a.split("=")[1].replace(/^"|"$/g,""):""};
|
|
325
326
|
shaka.util.MimeUtils.isHlsType=function(a){return"application/x-mpegurl"===a||"application/vnd.apple.mpegurl"===a};shaka.util.MimeUtils.isDashType=function(a){return"application/dash+xml"===a||"video/vnd.mpeg.dash.mpd"===a};shaka.util.MimeUtils.getCodecParts_=function(a){var b=a.split(".");a=b[0];b.shift();b=b.join(".");return[a,b]};goog.exportSymbol("shaka.util.MimeUtils",shaka.util.MimeUtils);goog.exportProperty(shaka.util.MimeUtils,"getFullTypeWithAllCodecs",shaka.util.MimeUtils.getFullTypeWithAllCodecs);
|
|
326
327
|
goog.exportProperty(shaka.util.MimeUtils,"getFullType",shaka.util.MimeUtils.getFullType);shaka.util.MimeUtils.EXTENDED_MIME_PARAMETERS_=(new Map).set("codecs","codecs").set("frameRate","framerate").set("bandwidth","bitrate").set("width","width").set("height","height").set("channelsCount","channels");shaka.util.MimeUtils.CEA608_CLOSED_CAPTION_MIMETYPE="application/cea-608";shaka.util.MimeUtils.CEA708_CLOSED_CAPTION_MIMETYPE="application/cea-708";
|
|
327
|
-
shaka.util.MimeUtils.RAW_FORMATS=["audio/aac","audio/ac3","audio/ec3","audio/mpeg"];shaka.text.TextEngine=function(a){this.parser_=null;this.displayer_=a;this.segmentRelativeVttTiming_=!1;this.appendWindowStart_=this.timestampOffset_=0;this.appendWindowEnd_=Infinity;this.bufferEnd_=this.bufferStart_=null;this.selectedClosedCaptionId_="";this.modifyCueCallback_=function(b,c){};this.closedCaptionsMap_=new Map};shaka.text.TextEngine.registerParser=function(a,b){shaka.text.TextEngine.parserMap_
|
|
328
|
-
shaka.text.TextEngine.findParser=function(a){return shaka.text.TextEngine.parserMap_
|
|
328
|
+
shaka.util.MimeUtils.RAW_FORMATS=["audio/aac","audio/ac3","audio/ec3","audio/mpeg"];shaka.text.TextEngine=function(a){this.parser_=null;this.displayer_=a;this.segmentRelativeVttTiming_=!1;this.appendWindowStart_=this.timestampOffset_=0;this.appendWindowEnd_=Infinity;this.bufferEnd_=this.bufferStart_=null;this.selectedClosedCaptionId_="";this.modifyCueCallback_=function(b,c){};this.closedCaptionsMap_=new Map};shaka.text.TextEngine.registerParser=function(a,b){shaka.text.TextEngine.parserMap_.set(a,b)};shaka.text.TextEngine.unregisterParser=function(a){shaka.text.TextEngine.parserMap_.delete(a)};
|
|
329
|
+
shaka.text.TextEngine.findParser=function(a){return shaka.text.TextEngine.parserMap_.get(a)};shaka.text.TextEngine.isTypeSupported=function(a){return shaka.text.TextEngine.parserMap_.has(a)?!0:a==shaka.util.MimeUtils.CEA608_CLOSED_CAPTION_MIMETYPE||a==shaka.util.MimeUtils.CEA708_CLOSED_CAPTION_MIMETYPE?!!shaka.media.ClosedCaptionParser.findDecoder():!1};shaka.text.TextEngine.prototype.destroy=function(){this.displayer_=this.parser_=null;this.closedCaptionsMap_.clear();return Promise.resolve()};
|
|
329
330
|
shaka.text.TextEngine.prototype.setDisplayer=function(a){this.displayer_=a};
|
|
330
|
-
shaka.text.TextEngine.prototype.initParser=function(a,b,c,d){a==shaka.util.MimeUtils.CEA608_CLOSED_CAPTION_MIMETYPE||a==shaka.util.MimeUtils.CEA708_CLOSED_CAPTION_MIMETYPE?this.parser_=null:(a=shaka.text.TextEngine.parserMap_
|
|
331
|
+
shaka.text.TextEngine.prototype.initParser=function(a,b,c,d){a==shaka.util.MimeUtils.CEA608_CLOSED_CAPTION_MIMETYPE||a==shaka.util.MimeUtils.CEA708_CLOSED_CAPTION_MIMETYPE?this.parser_=null:(a=shaka.text.TextEngine.parserMap_.get(a),goog.asserts.assert(a,"Text type negotiation should have happened already"),this.parser_=a(),this.parser_.setSequenceMode?this.parser_.setSequenceMode(b):shaka.Deprecate.deprecateFeature(5,"Text parsers w/ setSequenceMode",'Text parsers should have a "setSequenceMode" method!'),
|
|
331
332
|
this.parser_.setManifestType?this.parser_.setManifestType(d):shaka.Deprecate.deprecateFeature(5,"Text parsers w/ setManifestType",'Text parsers should have a "setManifestType" method!'),this.segmentRelativeVttTiming_=c)};shaka.text.TextEngine.prototype.setModifyCueCallback=function(a){this.modifyCueCallback_=a};
|
|
332
333
|
shaka.text.TextEngine.prototype.appendBuffer=function(a,b,c,d){var e=this,f,g,h,k,l,m,n;return $jscomp.asyncExecutePromiseGeneratorProgram(function(p){if(1==p.nextAddress)return goog.asserts.assert(e.parser_,"The parser should already be initialized"),p.yield(Promise.resolve(),2);if(!e.parser_||!e.displayer_)return p.return();if(null==b||null==c)return e.parser_.parseInit(shaka.util.BufferUtils.toUint8(a)),p.return();f=e.segmentRelativeVttTiming_?b:e.timestampOffset_;g={periodStart:e.timestampOffset_,
|
|
333
334
|
segmentStart:b,segmentEnd:c,vttOffset:f};h=e.parser_.parseMedia(shaka.util.BufferUtils.toUint8(a),g,d,[]);k=$jscomp.makeIterator(h);for(l=k.next();!l.done;l=k.next())m=l.value,e.modifyCueCallback_(m,d||null,g);n=h.filter(function(q){return q.startTime>=e.appendWindowStart_&&q.startTime<e.appendWindowEnd_});e.displayer_.append(n);null==e.bufferStart_?e.bufferStart_=Math.max(b,e.appendWindowStart_):(goog.asserts.assert(null!=e.bufferEnd_,"There should already be a buffered range end."),goog.asserts.assert(1>=
|
|
@@ -340,7 +341,7 @@ shaka.text.TextEngine.prototype.applyVideoTimestampOffsetRecursive_=function(a,b
|
|
|
340
341
|
shaka.text.TextEngine.prototype.storeAndAppendClosedCaptions=function(a,b,c,d){var e=b+" "+c,f=new Map;a=$jscomp.makeIterator(a);for(var g=a.next();!g.done;g=a.next()){var h=g.value;g=h.stream;h=h.cue;f.has(g)||f.set(g,new Map);f.get(g).has(e)||f.get(g).set(e,[]);this.applyVideoTimestampOffsetRecursive_(h,d);h.startTime>=this.appendWindowStart_&&h.startTime<this.appendWindowEnd_&&(f.get(g).get(e).push(h),g==this.selectedClosedCaptionId_&&this.displayer_.append([h]))}d=$jscomp.makeIterator(f.keys());
|
|
341
342
|
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_))};
|
|
342
343
|
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);
|
|
343
|
-
goog.exportProperty(shaka.text.TextEngine,"unregisterParser",shaka.text.TextEngine.unregisterParser);goog.exportProperty(shaka.text.TextEngine,"registerParser",shaka.text.TextEngine.registerParser);shaka.text.TextEngine.parserMap_=
|
|
344
|
+
goog.exportProperty(shaka.text.TextEngine,"unregisterParser",shaka.text.TextEngine.unregisterParser);goog.exportProperty(shaka.text.TextEngine,"registerParser",shaka.text.TextEngine.registerParser);shaka.text.TextEngine.parserMap_=new Map;shaka.util.Functional=function(){};shaka.util.Functional.createFallbackPromiseChain=function(a,b){return a.reduce(function(c,d){return c.catch(function(){return b(d)})},Promise.reject())};shaka.util.Functional.collapseArrays=function(a,b){return a.concat(b)};shaka.util.Functional.ignored=function(){};shaka.util.Functional.noop=function(){};shaka.util.Functional.isNotNull=function(a){return null!=a};
|
|
344
345
|
shaka.util.Functional.promiseWithTimeout=function(a,b){return Promise.race([b,new Promise(function(c,d){(new shaka.util.Timer(d)).tickAfter(a)})])};shaka.util.LanguageUtils=function(){};shaka.util.LanguageUtils.areLocaleCompatible=function(a,b){var c=shaka.util.LanguageUtils;a=c.normalize(a);b=c.normalize(b);return a==b};shaka.util.LanguageUtils.areLanguageCompatible=function(a,b){var c=shaka.util.LanguageUtils;a=c.normalize(a);b=c.normalize(b);a=c.disassembleLocale_(a);b=c.disassembleLocale_(b);return a[0]==b[0]};
|
|
345
346
|
shaka.util.LanguageUtils.isParentOf=function(a,b){var c=shaka.util.LanguageUtils;a=c.normalize(a);b=c.normalize(b);a=c.disassembleLocale_(a);b=c.disassembleLocale_(b);return a[0]==b[0]&&1==a.length&&2==b.length};shaka.util.LanguageUtils.isSiblingOf=function(a,b){var c=shaka.util.LanguageUtils;a=c.normalize(a);b=c.normalize(b);a=c.disassembleLocale_(a);b=c.disassembleLocale_(b);return 2==a.length&&2==b.length&&a[0]==b[0]};
|
|
346
347
|
shaka.util.LanguageUtils.normalize=function(a){var b=shaka.util.LanguageUtils;a=$jscomp.makeIterator(a.split("-x-"));var c=a.next().value;c=void 0===c?"":c;a=a.next().value;a=void 0===a?"":a;var d=$jscomp.makeIterator(c.split("-"));c=d.next().value;c=void 0===c?"":c;d=d.next().value;d=void 0===d?"":d;a=a?"x-"+a:"";c=c.toLowerCase();c=b.isoMap_.get(c)||c;b=d.toUpperCase();return""+(b?c+"-"+b:c)+(a?"-"+a:"")};
|
|
@@ -357,7 +358,7 @@ shaka.util.LanguageUtils.isoMap_=new Map([["aar","aa"],["abk","ab"],["afr","af"]
|
|
|
357
358
|
"ru"],["sag","sg"],["san","sa"],["sin","si"],["slk","sk"],["slo","sk"],["slv","sl"],["sme","se"],["smo","sm"],["sna","sn"],["snd","sd"],["som","so"],["sot","st"],["spa","es"],["sqi","sq"],["srd","sc"],["srp","sr"],["ssw","ss"],["sun","su"],["swa","sw"],["swe","sv"],["tah","ty"],["tam","ta"],["tat","tt"],["tel","te"],["tgk","tg"],["tgl","tl"],["tha","th"],["tib","bo"],["tir","ti"],["ton","to"],["tsn","tn"],["tso","ts"],["tuk","tk"],["tur","tr"],["twi","tw"],["uig","ug"],["ukr","uk"],["urd","ur"],["uzb",
|
|
358
359
|
"uz"],["ven","ve"],["vie","vi"],["vol","vo"],["wel","cy"],["wln","wa"],["wol","wo"],["xho","xh"],["yid","yi"],["yor","yo"],["zha","za"],["zho","zh"],["zul","zu"]]);shaka.util.StreamUtils=function(){};
|
|
359
360
|
shaka.util.StreamUtils.chooseCodecsAndFilterManifest=function(a,b,c,d,e){var f=shaka.util.StreamUtils,g=shaka.util.MimeUtils;if(e.length){var h=a.textStreams;e=$jscomp.makeIterator(e);for(var k=e.next(),l={};!k.done;l={textFormat:void 0},k=e.next())if(l.textFormat=k.value,k=h.filter(function(u){return function(v){return v.codecs.startsWith(u.textFormat)||v.mimeType.startsWith(u.textFormat)?!0:!1}}(l)),k.length){h=k;break}a.textStreams=h}h=a.variants;if(b.length||c.length)h=f.choosePreferredCodecs(h,
|
|
360
|
-
b,c);if(d.length){b=new shaka.util.MultiMap;c=$jscomp.makeIterator(h);for(f=c.next();!f.done;f=c.next())f=f.value,b.push(String(f.video.width||0),f);var m=[];b.forEach(function(u,v){u=0;var w=[];v=$jscomp.makeIterator(v);for(var x=v.next(),
|
|
361
|
+
b,c);if(d.length){b=new shaka.util.MultiMap;c=$jscomp.makeIterator(h);for(f=c.next();!f.done;f=c.next())f=f.value,b.push(String(f.video.width||0),f);var m=[];b.forEach(function(u,v){u=0;var w=[];v=$jscomp.makeIterator(v);for(var x=v.next(),z={};!x.done;z={variant$jscomp$3:void 0},x=v.next())z.variant$jscomp$3=x.value,x=d.filter(function(B){return function(A){return B.variant$jscomp$3.decodingInfos[0][A]}}(z)).length,x>u?(u=x,w=[z.variant$jscomp$3]):x==u&&w.push(z.variant$jscomp$3);m.push.apply(m,
|
|
361
362
|
$jscomp.arrayFromIterable(w))});h=m}c=new Set;b=new Set;f=$jscomp.makeIterator(h);for(h=f.next();!h.done;h=f.next())h=h.value,h.audio&&c.add(h.audio),h.video&&b.add(h.video);f=Array.from(c).sort(function(u,v){return u.bandwidth-v.bandwidth});var n=[];c=new Map;f=$jscomp.makeIterator(f);for(h=f.next();!h.done;h=f.next()){h=h.value;e=h.language+(h.channelsCount||0)+(h.audioSamplingRate||0)+h.roles.join(",")+h.label+h.groupId+h.fastSwitching;k=c.get(e)||[];if(k.length){l=k[k.length-1];var p=g.getNormalizedCodec(l.codecs),
|
|
362
363
|
q=g.getNormalizedCodec(h.codecs);p!=q||h.bandwidth&&l.bandwidth&&!(h.bandwidth>l.bandwidth)||(k.push(h),n.push(h.id))}else k.push(h),n.push(h.id);c.set(e,k)}var r={vp8:1,avc:1,"dovi-avc":.95,vp9:.9,vp09:.9,hevc:.85,"dovi-hevc":.8,"dovi-p5":.75,av01:.7,"dovi-av1":.65,vvc:.6};f=Array.from(b).sort(function(u,v){if(!u.bandwidth||!v.bandwidth||u.bandwidth==v.bandwidth){if(u.codecs&&v.codecs&&u.codecs!=v.codecs&&u.width==v.width){var w=g.getNormalizedCodec(u.codecs),x=g.getNormalizedCodec(v.codecs);if(w!=
|
|
363
364
|
x)return(r[w]||1)-(r[x]||1)}return u.width-v.width}return u.bandwidth-v.bandwidth});b=shaka.media.Capabilities.isChangeTypeSupported();var t=[];c=new Map;f=$jscomp.makeIterator(f);for(h=f.next();!h.done;h=f.next()){h=h.value;e=Math.round(h.frameRate||0)+(h.hdr||"")+h.fastSwitching;k=c.get(e)||[];if(k.length){l=k[k.length-1];if(!b&&(p=g.getNormalizedCodec(l.codecs),q=g.getNormalizedCodec(h.codecs),p!==q))continue;h.width>l.width||h.height>l.height?(k.push(h),t.push(h.id)):h.width==l.width&&h.height==
|
|
@@ -369,19 +370,20 @@ shaka.util.StreamUtils.meetsRestrictions=function(a,b,c){var d=function(h,k,l){r
|
|
|
369
370
|
shaka.util.StreamUtils.filterManifest=function(a,b,c,d){c=void 0===c?[]:c;d=void 0===d?{}:d;return $jscomp.asyncExecutePromiseGeneratorProgram(function(e){if(1==e.nextAddress)return e.yield(shaka.util.StreamUtils.filterManifestByMediaCapabilities(a,b,0<b.offlineSessionIds.length,c,d),2);shaka.util.StreamUtils.filterTextStreams_(b);return e.yield(shaka.util.StreamUtils.filterImageStreams_(b),0)})};
|
|
370
371
|
shaka.util.StreamUtils.filterManifestByMediaCapabilities=function(a,b,c,d,e){var f,g,h;return $jscomp.asyncExecutePromiseGeneratorProgram(function(k){if(1==k.nextAddress)return goog.asserts.assert(navigator.mediaCapabilities,"MediaCapabilities should be valid."),shaka.util.Platform.isXboxOne()&&shaka.util.StreamUtils.overrideDolbyVisionCodecs(b.variants),k.yield(shaka.util.StreamUtils.getDecodingInfosForVariants(b.variants,c,!1,d),2);f=null;a&&(g=a.getDrmInfo())&&(f=g.keySystem);h=shaka.util.StreamUtils;
|
|
371
372
|
b.variants=b.variants.filter(function(l){var m=h.checkVariantSupported_(l,f,e);m||shaka.log.debug("Dropping variant - not compatible with platform",h.getVariantSummaryString_(l));return m});k.jumpToEnd()})};
|
|
372
|
-
shaka.util.StreamUtils.overrideDolbyVisionCodecs=function(a){var b=
|
|
373
|
+
shaka.util.StreamUtils.overrideDolbyVisionCodecs=function(a){var b=(new Map).set("dvav","avc3").set("dva1","avc1").set("dvhe","hev1").set("dvh1","hvc1").set("dvc1","vvc1").set("dvi1","vvi1"),c=new Set;a=$jscomp.makeIterator(a);for(var d=a.next();!d.done;d=a.next())d=d.value,d.video&&c.add(d.video);c=$jscomp.makeIterator(c);for(a=c.next();!a.done;a=c.next()){a=a.value;d=$jscomp.makeIterator(b);for(var e=d.next();!e.done;e=d.next()){var f=$jscomp.makeIterator(e.value);e=f.next().value;f=f.next().value;
|
|
374
|
+
if(a.codecs.includes(e)){a.codecs=a.codecs.replace(e,f);break}}}};
|
|
373
375
|
shaka.util.StreamUtils.checkVariantSupported_=function(a,b,c){if(!a.decodingInfos.some(function(k){return!k.supported||b&&(k=k.keySystemAccess)&&(c[k.keySystem]||k.keySystem)!=b?!1:!0}))return!1;var d=shaka.util.Platform.isXboxOne(),e=shaka.util.Platform.isFirefox()&&shaka.util.Platform.isAndroid(),f=a.video,g=f&&f.width||0,h=f&&f.height||0;if(d&&f&&(1920<g||1080<h)&&(f.codecs.includes("avc1.")||f.codecs.includes("avc3.")))return!1;a=a.audio;return e&&a&&a.encrypted&&a.codecs.toLowerCase().includes("opus")?
|
|
374
376
|
!1:!0};
|
|
375
377
|
shaka.util.StreamUtils.getDecodingInfosForVariant_=function(a,b){var c,d,e,f,g,h,k,l;return $jscomp.asyncExecutePromiseGeneratorProgram(function(m){if(1==m.nextAddress){c=function(n,p){if(n){var q=shaka.util.ObjectUtils.shallowCloneObject(n);q.supported=n.supported&&p.supported;q.powerEfficient=n.powerEfficient&&p.powerEfficient;q.smooth=n.smooth&&p.smooth;p.keySystemAccess&&!q.keySystemAccess&&(q.keySystemAccess=p.keySystemAccess);return q}return p};d=shaka.util.StreamUtils;e=null;f=[];g=$jscomp.makeIterator(b);
|
|
376
|
-
h=g.next();for(k={};!h.done;k={cache:void 0,cacheKey:void 0},h=g.next())l=h.value,k.cacheKey=shaka.util.ObjectUtils.alphabeticalKeyOrderStringify(l),k.cache=d.decodingConfigCache_,k.cache
|
|
377
|
-
(n.cache
|
|
378
|
+
h=g.next();for(k={};!h.done;k={cache:void 0,cacheKey:void 0},h=g.next())l=h.value,k.cacheKey=shaka.util.ObjectUtils.alphabeticalKeyOrderStringify(l),k.cache=d.decodingConfigCache_,k.cache.has(k.cacheKey)?(shaka.log.v2("Using cached results of mediaCapabilities.decodingInfo","for key",k.cacheKey),e=c(e,k.cache.get(k.cacheKey))):f.push(d.checkEachDecodingConfigCombination_(l).then(function(n){return function(p){var q=null;p=$jscomp.makeIterator(p||[]);for(var r=p.next();!r.done;r=p.next())q=c(q,r.value);
|
|
379
|
+
q&&(n.cache.set(n.cacheKey,q),e=c(e,q))}}(k)));return m.yield(Promise.all(f),2)}e&&a.decodingInfos.push(e);m.jumpToEnd()})};
|
|
378
380
|
shaka.util.StreamUtils.checkEachDecodingConfigCombination_=function(a){var b=[""];a.video&&(b=shaka.util.MimeUtils.getCodecs(a.video.contentType).split(","));var c=[""];a.audio&&(c=shaka.util.MimeUtils.getCodecs(a.audio.contentType).split(","));var d=[];b=$jscomp.makeIterator(b);for(var e=b.next();!e.done;e=b.next()){e=e.value;for(var f=$jscomp.makeIterator(c),g=f.next(),h={};!g.done;h={copy$jscomp$1:void 0},g=f.next()){g=g.value;h.copy$jscomp$1=shaka.util.ObjectUtils.cloneObject(a);if(a.video){var k=
|
|
379
381
|
shaka.util.MimeUtils.getBasicType(h.copy$jscomp$1.video.contentType);h.copy$jscomp$1.video.contentType=shaka.util.MimeUtils.getFullType(k,e)}a.audio&&(k=shaka.util.MimeUtils.getBasicType(h.copy$jscomp$1.audio.contentType),h.copy$jscomp$1.audio.contentType=shaka.util.MimeUtils.getFullType(k,g));d.push(new Promise(function(l){return function(m,n){shaka.util.Functional.promiseWithTimeout(1,navigator.mediaCapabilities.decodingInfo(l.copy$jscomp$1)).then(function(p){m(p)}).catch(n)}}(h)))}}return Promise.all(d).catch(function(l){shaka.log.info("MediaCapabilities.decodingInfo() failed.",
|
|
380
382
|
JSON.stringify(a),l);return null})};
|
|
381
|
-
shaka.util.StreamUtils.getDecodingInfosForVariants=function(a,b,c,d){var e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,
|
|
382
|
-
break}n=m.value;p=shaka.util.StreamUtils.getDecodingConfigs_(n,b,c).filter(function(
|
|
383
|
-
h={preferredKeySystem:void 0};g=f.next();
|
|
384
|
-
|
|
383
|
+
shaka.util.StreamUtils.getDecodingInfosForVariants=function(a,b,c,d){var e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,z,B,A;return $jscomp.asyncExecutePromiseGeneratorProgram(function(y){switch(y.nextAddress){case 1:if(e=a.some(function(C){return C.decodingInfos.length}))return shaka.log.debug("Already got the variants' decodingInfo."),y.return();f=$jscomp.makeIterator(d);g=f.next();h={};case 2:if(g.done){y.jumpTo(4);break}h.preferredKeySystem=g.value;k=!1;l=$jscomp.makeIterator(a);m=l.next();case 5:if(m.done){y.jumpTo(7);
|
|
384
|
+
break}n=m.value;p=shaka.util.StreamUtils.getDecodingConfigs_(n,b,c).filter(function(C){return function(D){D=D[0];return(D.keySystemConfiguration&&D.keySystemConfiguration.keySystem)===C.preferredKeySystem}}(h));q=$jscomp.makeIterator(p);r=q.next();case 8:if(r.done){y.jumpTo(10);break}t=r.value;return y.yield(shaka.util.StreamUtils.getDecodingInfosForVariant_(n,t),9);case 9:r=q.next();y.jumpTo(8);break;case 10:n.decodingInfos.length&&(k=!0);m=l.next();y.jumpTo(5);break;case 7:if(k)return y.return();
|
|
385
|
+
h={preferredKeySystem:void 0};g=f.next();y.jumpTo(2);break;case 4:u=$jscomp.makeIterator(a),v=u.next();case 12:if(v.done){y.jumpTo(0);break}w=v.value;x=shaka.util.StreamUtils.getDecodingConfigs_(w,b,c).filter(function(C){C=C[0];C=C.keySystemConfiguration&&C.keySystemConfiguration.keySystem;return!C||!d.includes(C)});z=$jscomp.makeIterator(x);B=z.next();case 15:if(B.done){v=u.next();y.jumpTo(12);break}A=B.value;return y.yield(shaka.util.StreamUtils.getDecodingInfosForVariant_(w,A),16);case 16:B=z.next(),
|
|
386
|
+
y.jumpTo(15)}})};
|
|
385
387
|
shaka.util.StreamUtils.getDecodingConfigs_=function(a,b,c){var d=a.audio,e=a.video,f=shaka.util.ManifestParserUtils.ContentType,g=shaka.util.ManifestParserUtils,h=shaka.util.MimeUtils,k=shaka.util.StreamUtils,l=[],m=[];if(e)for(var n=$jscomp.makeIterator(e.fullMimeTypes),p=n.next();!p.done;p=n.next()){p=p.value;var q=h.getCodecs(p);if(q.includes(",")&&!d){var r=q.split(","),t=h.getBasicType(p);q=g.guessCodecs(f.VIDEO,r);r=g.guessCodecs(f.AUDIO,r);r=k.getCorrectAudioCodecs(r,t);t=h.getFullOrConvertedType(t,
|
|
386
388
|
r,f.AUDIO);m.push({contentType:t,channels:2,bitrate:a.bandwidth||1,samplerate:1,spatialRendering:!1})}q=k.getCorrectVideoCodecs(q);p={contentType:h.getFullOrConvertedType(h.getBasicType(p),q,f.VIDEO),width:e.width||64,height:e.height||64,bitrate:e.bandwidth||a.bandwidth||1,framerate:e.frameRate||1};if(e.hdr)switch(e.hdr){case "SDR":p.transferFunction="srgb";break;case "PQ":p.transferFunction="pq";break;case "HLG":p.transferFunction="hlg"}e.colorGamut&&(p.colorGamut=e.colorGamut);l.push(p)}if(d)for(g=
|
|
387
389
|
$jscomp.makeIterator(d.fullMimeTypes),n=g.next();!n.done;n=g.next())p=n.value,n=h.getBasicType(p),p=k.getCorrectAudioCodecs(h.getCodecs(p),n),n=h.getFullOrConvertedType(n,p,f.AUDIO),m.push({contentType:n,channels:d.channelsCount||2,bitrate:d.bandwidth||a.bandwidth||1,samplerate:d.audioSamplingRate||1,spatialRendering:d.spatialAudio});f=[];0==l.length&&l.push(null);0==m.length&&m.push(null);l=$jscomp.makeIterator(l);for(h=l.next();!h.done;h=l.next())for(h=h.value,k=$jscomp.makeIterator(m),g=k.next();!g.done;g=
|
|
@@ -389,17 +391,19 @@ k.next())g=g.value,n={type:c?"file":"media-source"},h&&(n.video=h),g&&(n.audio=g
|
|
|
389
391
|
g=$jscomp.makeIterator(g);for(n=g.next();!n.done;n=g.next())n=n.value,p=n.videoRobustness+","+n.audioRobustness,k.get(p)||k.set(p,[]),k.get(p).push(n);k=$jscomp.makeIterator(k.values());for(g=k.next();!g.done;g=k.next()){g=g.value;n=[];p=$jscomp.makeIterator(f);for(q=p.next();!q.done;q=p.next()){q=Object.assign({},q.value);t={keySystem:h,initDataType:"cenc",persistentState:m,distinctiveIdentifier:"optional",sessionTypes:b};r=$jscomp.makeIterator(g);for(var u=r.next();!u.done;u=r.next()){u=u.value;
|
|
390
392
|
if(u.initData&&u.initData.length){for(var v=new Set,w=$jscomp.makeIterator(u.initData),x=w.next();!x.done;x=w.next())v.add(x.value.initDataType);1<v.size&&shaka.log.v2("DrmInfo contains more than one initDataType,","and we use the initDataType of the first initData.",u);t.initDataType=u.initData[0].initDataType}u.distinctiveIdentifierRequired&&(t.distinctiveIdentifier="required");u.persistentStateRequired&&(t.persistentState="required");u.sessionType&&(t.sessionTypes=[u.sessionType]);d&&(t.audio?
|
|
391
393
|
(u.encryptionScheme&&(t.audio.encryptionScheme=t.audio.encryptionScheme||u.encryptionScheme),t.audio.robustness=t.audio.robustness||u.audioRobustness):(t.audio={robustness:u.audioRobustness},u.encryptionScheme&&(t.audio.encryptionScheme=u.encryptionScheme)),""==t.audio.robustness&&delete t.audio.robustness);e&&(t.video?(u.encryptionScheme&&(t.video.encryptionScheme=t.video.encryptionScheme||u.encryptionScheme),t.video.robustness=t.video.robustness||u.videoRobustness):(t.video={robustness:u.videoRobustness},
|
|
392
|
-
u.encryptionScheme&&(t.video.encryptionScheme=u.encryptionScheme)),""==t.video.robustness&&delete t.video.robustness)}q.keySystemConfiguration=t;n.push(q)}a.push(n)}}return a};
|
|
394
|
+
u.encryptionScheme&&(t.video.encryptionScheme=u.encryptionScheme)),""==t.video.robustness&&delete t.video.robustness)}q.keySystemConfiguration=t;n.push(q)}a.push(n)}}return a};
|
|
395
|
+
shaka.util.StreamUtils.getCorrectAudioCodecs=function(a,b){return"flac"==a.toLowerCase()?shaka.util.Platform.isSafari()?"fLaC":"flac":"opus"===a.toLowerCase()?shaka.util.Platform.isSafari()?"mp4"==shaka.util.MimeUtils.getContainerType(b)?"Opus":"opus":"opus":"ac-3"==a.toLowerCase()&&shaka.util.Platform.requiresEC3InitSegments()?"ec-3":a};
|
|
393
396
|
shaka.util.StreamUtils.getCorrectVideoCodecs=function(a){if(a.includes("avc1")){var b=a.split(".");if(3==b.length)return a=b.shift()+".",a+=parseInt(b.shift(),10).toString(16),a+=("000"+parseInt(b.shift(),10).toString(16)).slice(-4)}else if("vp9"==a)return"vp09.00.41.08";return a};
|
|
394
397
|
shaka.util.StreamUtils.filterManifestByCurrentVariant=function(a,b){var c=shaka.util.StreamUtils;b.variants=b.variants.filter(function(d){var e=d.audio;d=d.video;return e&&a&&a.audio&&!c.areStreamsCompatible_(e,a.audio)?(shaka.log.debug("Dropping variant - not compatible with active audio","active audio",c.getStreamSummaryString_(a.audio),"variant.audio",c.getStreamSummaryString_(e)),!1):d&&a&&a.video&&!c.areStreamsCompatible_(d,a.video)?(shaka.log.debug("Dropping variant - not compatible with active video",
|
|
395
398
|
"active video",c.getStreamSummaryString_(a.video),"variant.video",c.getStreamSummaryString_(d)),!1):!0})};shaka.util.StreamUtils.filterTextStreams_=function(a){a.textStreams=a.textStreams.filter(function(b){var c=shaka.util.MimeUtils.getFullType(b.mimeType,b.codecs);(c=shaka.text.TextEngine.isTypeSupported(c))||shaka.log.debug("Dropping text stream. Is not supported by the platform.",b);return c})};
|
|
396
399
|
shaka.util.StreamUtils.filterImageStreams_=function(a){var b,c,d,e,f,g,h,k;return $jscomp.asyncExecutePromiseGeneratorProgram(function(l){switch(l.nextAddress){case 1:b=[],c=$jscomp.makeIterator(a.imageStreams),d=c.next();case 2:if(d.done){l.jumpTo(4);break}e=d.value;f=e.mimeType;"application/mp4"==f&&"mjpg"==e.codecs&&(f="image/jpg");if(shaka.util.StreamUtils.supportedImageMimeTypes_.has(f)){l.jumpTo(5);break}g=shaka.util.StreamUtils.minImage_.get(f);if(!g){shaka.util.StreamUtils.supportedImageMimeTypes_.set(f,
|
|
397
400
|
!1);l.jumpTo(5);break}return l.yield(shaka.util.StreamUtils.isImageSupported_(g),7);case 7:h=l.yieldResult,shaka.util.StreamUtils.supportedImageMimeTypes_.set(f,h);case 5:(k=shaka.util.StreamUtils.supportedImageMimeTypes_.get(f))?b.push(e):shaka.log.debug("Dropping image stream. Is not supported by the platform.",e);d=c.next();l.jumpTo(2);break;case 4:a.imageStreams=b,l.jumpToEnd()}})};
|
|
398
401
|
shaka.util.StreamUtils.isImageSupported_=function(a){return new Promise(function(b){var c=new Image;c.src=a;"decode"in c?c.decode().then(function(){b(!0)}).catch(function(){b(!1)}):c.onload=c.onerror=function(){b(2===c.height)}})};shaka.util.StreamUtils.areStreamsCompatible_=function(a,b){return a.mimeType!=b.mimeType||a.codecs.split(".")[0]!=b.codecs.split(".")[0]?!1:!0};
|
|
399
|
-
shaka.util.StreamUtils.variantToTrack=function(a){var b=a.audio,
|
|
400
|
-
active:!1,type:"variant",bandwidth:a.bandwidth,language:a.language,label:null,kind:
|
|
401
|
-
originalAudioId:null,originalTextId:null,originalImageId:null,accessibilityPurpose:null,originalLanguage:null};
|
|
402
|
-
|
|
402
|
+
shaka.util.StreamUtils.variantToTrack=function(a){var b=shaka.util.ManifestParserUtils,c=shaka.util.ManifestParserUtils.ContentType,d=a.audio,e=a.video,f=d?d.mimeType:null,g=e?e.mimeType:null,h=d?d.codecs:null,k=e?e.codecs:null,l=[];k&&l.push(k);h&&l.push(h);var m=[];e&&m.push(e.mimeType);d&&m.push(d.mimeType);m=m[0]||null;var n=[];d&&n.push(d.kind);e&&n.push(e.kind);n=n[0]||null;var p=new Set;if(d)for(var q=$jscomp.makeIterator(d.roles),r=q.next();!r.done;r=q.next())p.add(r.value);if(e)for(q=$jscomp.makeIterator(e.roles),
|
|
403
|
+
r=q.next();!r.done;r=q.next())p.add(r.value);a={id:a.id,active:!1,type:"variant",bandwidth:a.bandwidth,language:a.language,label:null,kind:n,width:null,height:null,frameRate:null,pixelAspectRatio:null,hdr:null,colorGamut:null,videoLayout:null,mimeType:m,audioMimeType:f,videoMimeType:g,codecs:l.join(", "),audioCodec:h,videoCodec:k,primary:a.primary,roles:Array.from(p),audioRoles:null,forced:!1,videoId:null,audioId:null,channelsCount:null,audioSamplingRate:null,spatialAudio:!1,tilesLayout:null,audioBandwidth:null,
|
|
404
|
+
videoBandwidth:null,originalVideoId:null,originalAudioId:null,originalTextId:null,originalImageId:null,accessibilityPurpose:null,originalLanguage:null};if(e&&(a.videoId=e.id,a.originalVideoId=e.originalId,a.width=e.width||null,a.height=e.height||null,a.frameRate=e.frameRate||null,a.pixelAspectRatio=e.pixelAspectRatio||null,a.videoBandwidth=e.bandwidth||null,a.hdr=e.hdr||null,a.colorGamut=e.colorGamut||null,a.videoLayout=e.videoLayout||null,k.includes(","))){a.channelsCount=e.channelsCount;a.audioSamplingRate=
|
|
405
|
+
e.audioSamplingRate;a.spatialAudio=e.spatialAudio;a.originalLanguage=e.originalLanguage;a.audioMimeType=g;e=k.split(",");try{a.videoCodec=b.guessCodecs(c.VIDEO,e),a.audioCodec=b.guessCodecs(c.AUDIO,e)}catch(t){}}d&&(a.audioId=d.id,a.originalAudioId=d.originalId,a.channelsCount=d.channelsCount,a.audioSamplingRate=d.audioSamplingRate,a.audioBandwidth=d.bandwidth||null,a.spatialAudio=d.spatialAudio,a.label=d.label,a.audioRoles=d.roles,a.accessibilityPurpose=d.accessibilityPurpose,a.originalLanguage=
|
|
406
|
+
d.originalLanguage);return a};
|
|
403
407
|
shaka.util.StreamUtils.textStreamToTrack=function(a){return{id:a.id,active:!1,type:shaka.util.ManifestParserUtils.ContentType.TEXT,bandwidth:0,language:a.language,label:a.label,kind:a.kind||null,width:null,height:null,frameRate:null,pixelAspectRatio:null,hdr:null,colorGamut:null,videoLayout:null,mimeType:a.mimeType,audioMimeType:null,videoMimeType:null,codecs:a.codecs||null,audioCodec:null,videoCodec:null,primary:a.primary,roles:a.roles,audioRoles:null,forced:a.forced,videoId:null,audioId:null,channelsCount:null,
|
|
404
408
|
audioSamplingRate:null,spatialAudio:!1,tilesLayout:null,audioBandwidth:null,videoBandwidth:null,originalVideoId:null,originalAudioId:null,originalTextId:a.originalId,originalImageId:null,accessibilityPurpose:a.accessibilityPurpose,originalLanguage:a.originalLanguage}};
|
|
405
409
|
shaka.util.StreamUtils.imageStreamToTrack=function(a){var b=shaka.util.ManifestParserUtils.ContentType,c=a.width||null,d=a.height||null,e=null;a.segmentIndex&&(e=a.segmentIndex.earliestReference());var f=a.tilesLayout;e&&(f=e.getTilesLayout()||f);f&&null!=c&&(c/=Number(f.split("x")[0]));f&&null!=d&&(d/=Number(f.split("x")[1]));return{id:a.id,active:!1,type:b.IMAGE,bandwidth:a.bandwidth||0,language:"",label:null,kind:null,width:c,height:d,frameRate:null,pixelAspectRatio:null,hdr:null,colorGamut:null,
|
|
@@ -413,9 +417,9 @@ shaka.log.warning("No exact match for the text role could be found.")}else if(a=
|
|
|
413
417
|
shaka.util.StreamUtils.isVideo=function(a){return a.type==shaka.util.ManifestParserUtils.ContentType.VIDEO};shaka.util.StreamUtils.getVariantStreams=function(a){var b=[];a.audio&&b.push(a.audio);a.video&&b.push(a.video);return b};shaka.util.StreamUtils.isFastSwitching=function(a){return a.audio&&a.audio.fastSwitching||a.video&&a.video.fastSwitching?!0:!1};
|
|
414
418
|
shaka.util.StreamUtils.setBetterIFrameStream=function(a,b){b.length&&(b=b.filter(function(c){return shaka.util.MimeUtils.getNormalizedCodec(a.codecs)==shaka.util.MimeUtils.getNormalizedCodec(c.codecs)}).sort(function(c,d){return c.bandwidth&&d.bandwidth&&c.bandwidth!=d.bandwidth?c.bandwidth-d.bandwidth:(c.width||0)-(d.width||0)}),a.trickModeVideo=b[0],1<b.length&&(b=b.find(function(c){return a.width==c.width&&a.height==c.height})))&&(a.trickModeVideo=b)};
|
|
415
419
|
shaka.util.StreamUtils.getVariantSummaryString_=function(a){var b=[];a.audio&&b.push(shaka.util.StreamUtils.getStreamSummaryString_(a.audio));a.video&&b.push(shaka.util.StreamUtils.getStreamSummaryString_(a.video));return b.join(", ")};
|
|
416
|
-
shaka.util.StreamUtils.getStreamSummaryString_=function(a){return shaka.util.StreamUtils.isAudio(a)?"type=audio codecs="+a.codecs+" bandwidth="+a.bandwidth+" channelsCount="+a.channelsCount+" audioSamplingRate="+a.audioSamplingRate:shaka.util.StreamUtils.isVideo(a)?"type=video codecs="+a.codecs+" bandwidth="+a.bandwidth+" frameRate="+a.frameRate+" width="+a.width+" height="+a.height:"unexpected stream type"};
|
|
417
|
-
|
|
418
|
-
shaka.util.StreamUtils.
|
|
420
|
+
shaka.util.StreamUtils.getStreamSummaryString_=function(a){return shaka.util.StreamUtils.isAudio(a)?"type=audio codecs="+a.codecs+" bandwidth="+a.bandwidth+" channelsCount="+a.channelsCount+" audioSamplingRate="+a.audioSamplingRate:shaka.util.StreamUtils.isVideo(a)?"type=video codecs="+a.codecs+" bandwidth="+a.bandwidth+" frameRate="+a.frameRate+" width="+a.width+" height="+a.height:"unexpected stream type"};shaka.util.StreamUtils.clearDecodingConfigCache=function(){shaka.util.StreamUtils.decodingConfigCache_.clear()};
|
|
421
|
+
goog.exportSymbol("shaka.util.StreamUtils",shaka.util.StreamUtils);goog.exportProperty(shaka.util.StreamUtils,"meetsRestrictions",shaka.util.StreamUtils.meetsRestrictions);shaka.util.StreamUtils.decodingConfigCache_=new Map;shaka.util.StreamUtils.nextTrackId_=0;shaka.util.StreamUtils.DecodingAttributes={SMOOTH:"smooth",POWER:"powerEfficient"};shaka.util.StreamUtils.supportedImageMimeTypes_=(new Map).set("image/svg+xml",!0).set("image/png",!0).set("image/jpeg",!0).set("image/jpg",!0);
|
|
422
|
+
shaka.util.StreamUtils.minWebPImage_="data:image/webp;base64,UklGRjoAAABXRUJQVlA4IC4AAACyAgCdASoCAAIALmk0mk0iIiIiIgBoSygABc6WWgAA/veff/0PP8bA//LwYAAA";shaka.util.StreamUtils.minAvifImage_="data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAAB0AAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAIAAAACAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQ0MAAAAABNjb2xybmNseAACAAIAAYAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAACVtZGF0EgAKCBgANogQEAwgMg8f8D///8WfhwB8+ErK42A=";
|
|
419
423
|
shaka.util.StreamUtils.minImage_=(new Map).set("image/webp",shaka.util.StreamUtils.minWebPImage_).set("image/avif",shaka.util.StreamUtils.minAvifImage_);shaka.abr.SimpleAbrManager=function(){var a=this;this.switch_=null;this.enabled_=!1;this.bandwidthEstimator_=new shaka.abr.EwmaBandwidthEstimator;this.eventManager_=new shaka.util.EventManager;navigator.connection&&navigator.connection.addEventListener&&this.eventManager_.listen(navigator.connection,"change",function(){if(a.enabled_&&a.config_.useNetworkInformation){a.bandwidthEstimator_=new shaka.abr.EwmaBandwidthEstimator;a.config_&&a.bandwidthEstimator_.configure(a.config_.advanced);var b=a.chooseVariant();
|
|
420
424
|
b&&navigator.onLine&&a.switch_(b,a.config_.clearBufferSwitch,a.config_.safeMarginSwitch)}});this.variants_=[];this.playbackRate_=1;this.startupComplete_=!1;this.resizeObserver_=this.mediaElement_=this.config_=this.lastTimeChosenMs_=null;this.resizeObserverTimer_=new shaka.util.Timer(function(){if(a.enabled_&&(a.config_.restrictToElementSize||a.config_.restrictToScreenSize)){var b=a.chooseVariant();b&&a.switch_(b,a.config_.clearBufferSwitch,a.config_.safeMarginSwitch)}});this.windowToCheck_=window;
|
|
421
425
|
"documentPictureInPicture"in window&&this.eventManager_.listen(window.documentPictureInPicture,"enter",function(){a.windowToCheck_=window.documentPictureInPicture.window;a.resizeObserverTimer_&&a.resizeObserverTimer_.tickNow();a.eventManager_.listenOnce(a.windowToCheck_,"pagehide",function(){a.windowToCheck_=window;a.resizeObserverTimer_&&a.resizeObserverTimer_.tickNow()})});this.cmsdManager_=this.pictureInPictureWindow_=null};
|
|
@@ -460,7 +464,7 @@ TextChanged:"textchanged",TextTrackVisibility:"texttrackvisibility",ThirdQuartil
|
|
|
460
464
|
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",
|
|
461
465
|
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.OperationManager=function(){this.operations_=[]};shaka.util.OperationManager.prototype.manage=function(a){var b=this;this.operations_.push(a.finally(function(){shaka.util.ArrayUtils.remove(b.operations_,a)}))};shaka.util.OperationManager.prototype.destroy=function(){for(var a=[],b=$jscomp.makeIterator(this.operations_),c=b.next();!c.done;c=b.next())c=c.value,c.promise.catch(function(){}),a.push(c.abort());this.operations_=[];return Promise.all(a)};shaka.net.NetworkingEngine=function(a,b,c,d,e,f,g){shaka.util.FakeEventTarget.call(this);this.destroyed_=!1;this.operationManager_=new shaka.util.OperationManager;this.requestFilters_=new Set;this.responseFilters_=new Set;this.onProgressUpdated_=a||null;this.onHeadersReceived_=b||null;this.onDownloadCompleted_=c||null;this.onDownloadFailed_=d||null;this.onRequest_=e||null;this.onRetry_=f||null;this.onResponse_=g||null;this.forceHTTPS_=this.forceHTTP_=!1;this.minBytesForProgressEvents_=16E3;this.hostCommonAccessTokenMap_=
|
|
462
466
|
new Map};$jscomp.inherits(shaka.net.NetworkingEngine,shaka.util.FakeEventTarget);shaka.net.NetworkingEngine.prototype.setForceHTTP=function(a){this.forceHTTP_=a};shaka.net.NetworkingEngine.prototype.setForceHTTPS=function(a){this.forceHTTPS_=a};shaka.net.NetworkingEngine.prototype.setMinBytesForProgressEvents=function(a){this.minBytesForProgressEvents_=a};
|
|
463
|
-
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_
|
|
467
|
+
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_.get(a);(!e||c>=e.priority)&&shaka.net.NetworkingEngine.schemes_.set(a,{priority:c,plugin:b,progressSupport:d})};shaka.net.NetworkingEngine.unregisterScheme=function(a){shaka.net.NetworkingEngine.schemes_.delete(a)};
|
|
464
468
|
shaka.net.NetworkingEngine.prototype.copyFiltersInto=function(a){for(var b=$jscomp.makeIterator(this.requestFilters_),c=b.next();!c.done;c=b.next())a.requestFilters_.add(c.value);b=$jscomp.makeIterator(this.responseFilters_);for(c=b.next();!c.done;c=b.next())a.responseFilters_.add(c.value)};shaka.net.NetworkingEngine.prototype.registerRequestFilter=function(a){this.requestFilters_.add(a)};shaka.net.NetworkingEngine.prototype.unregisterRequestFilter=function(a){this.requestFilters_.delete(a)};
|
|
465
469
|
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)};shaka.net.NetworkingEngine.prototype.clearAllResponseFilters=function(){this.responseFilters_.clear()};shaka.net.NetworkingEngine.prototype.clearCommonAccessTokenMap=function(){this.hostCommonAccessTokenMap_.clear()};
|
|
466
470
|
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,drmInfo:null,initData:null,initDataType:null,streamDataCallback:void 0===c?null:c}};
|
|
@@ -472,10 +476,10 @@ f);this.operationManager_.manage(e);return e};
|
|
|
472
476
|
shaka.net.NetworkingEngine.prototype.filterRequest_=function(a,b,c){var d=shaka.util.AbortableOperation.completed(void 0),e=function(h){d=d.chain(function(){b.body&&(b.body=shaka.util.BufferUtils.toArrayBuffer(b.body));return h(a,b,c)})};this.onRequest_&&e(this.onRequest_);for(var f=$jscomp.makeIterator(this.requestFilters_),g=f.next();!g.done;g=f.next())e(g.value);return d.chain(void 0,function(h){if(h instanceof shaka.util.Error&&h.code==shaka.util.Error.Code.OPERATION_ABORTED)throw h;throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
|
|
473
477
|
shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.REQUEST_FILTER_ERROR,h);})};shaka.net.NetworkingEngine.prototype.makeRequestWithRetry_=function(a,b,c,d){var e=new shaka.net.Backoff(b.retryParameters,!1);return this.send_(a,b,c,e,0,null,d)};
|
|
474
478
|
shaka.net.NetworkingEngine.prototype.send_=function(a,b,c,d,e,f,g){var h=this;this.forceHTTP_&&(b.uris[e]=b.uris[e].replace("https://","http://"));this.forceHTTPS_&&(b.uris[e]=b.uris[e].replace("http://","https://"));if(0<e&&this.onRetry_)this.onRetry_(a,c,b.uris[e],b.uris[e-1]);var k=new goog.Uri(b.uris[e]),l=k.getScheme(),m=!1;l||(l=shaka.net.NetworkingEngine.getLocationProtocol_(),goog.asserts.assert(":"==l[l.length-1],"location.protocol expected to end with a colon!"),l=l.slice(0,-1),k.setScheme(l),
|
|
475
|
-
b.uris[e]=k.toString());l=l.toLowerCase();var n=(l=shaka.net.NetworkingEngine.schemes_
|
|
476
|
-
v=Date.now();var w=shaka.net.NetworkingEngine.RequestType.SEGMENT,x=0;b.requestStartTime=Date.now();var
|
|
477
|
-
|
|
478
|
-
b,a);if(h.onDownloadCompleted_)h.onDownloadCompleted_(b,w);return x},function(w){q&&q.stop();r&&r.stop();if(h.onDownloadFailed_){var x=null,
|
|
479
|
+
b.uris[e]=k.toString());l=l.toLowerCase();var n=(l=shaka.net.NetworkingEngine.schemes_.get(l))?l.plugin:null;if(!n)return shaka.util.AbortableOperation.failed(new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.UNSUPPORTED_SCHEME,k));var p=l.progressSupport;(k=this.hostCommonAccessTokenMap_.get(k.getDomain()))&&(b.headers[shaka.net.NetworkingEngine.CommonAccessTokenHeaderName_]=k);var q=null,r=null,t=!1,u=!1,v;return shaka.util.AbortableOperation.notAbortable(d.attempt()).chain(function(){if(h.destroyed_)return shaka.util.AbortableOperation.aborted();
|
|
480
|
+
v=Date.now();var w=shaka.net.NetworkingEngine.RequestType.SEGMENT,x=0;b.requestStartTime=Date.now();var z=n(b.uris[e],b,a,function(y,C,D){q&&q.stop();r&&r.tickAfter(A/1E3);if(h.onProgressUpdated_&&a==w){x++;b.packetNumber=x;var E=h.allowSwitch_(c);h.onProgressUpdated_(y,C,E,b);m=!0;g.setBytes(D)}},function(y){u=!0;b.timeToFirstByte=Date.now()-b.requestStartTime;if(h.onHeadersReceived_)h.onHeadersReceived_(y,b,a)},{minBytesForProgressEvents:h.minBytesForProgressEvents_});if(!p)return z;var B=b.retryParameters.connectionTimeout;
|
|
481
|
+
B&&(q=new shaka.util.Timer(function(){t=!0;z.abort()}),q.tickAfter(B/1E3));var A=b.retryParameters.stallTimeout;A&&(r=new shaka.util.Timer(function(){t=!0;z.abort()}));return z}).chain(function(w){q&&q.stop();r&&r.stop();void 0==w.timeMs&&(w.timeMs=Date.now()-v);var x=w.headers[shaka.net.NetworkingEngine.CommonAccessTokenHeaderName_];if(x){var z=new goog.Uri(w.uri);h.hostCommonAccessTokenMap_.set(z.getDomain(),x)}x={response:w,gotProgress:m};if(!u&&h.onHeadersReceived_)h.onHeadersReceived_(w.headers,
|
|
482
|
+
b,a);if(h.onDownloadCompleted_)h.onDownloadCompleted_(b,w);return x},function(w){q&&q.stop();r&&r.stop();if(h.onDownloadFailed_){var x=null,z=0;w instanceof shaka.util.Error&&(x=w,w.code==shaka.util.Error.Code.BAD_HTTP_STATUS&&(z=w.data[1]));h.onDownloadFailed_(b,x,z,t)}if(h.destroyed_)return shaka.util.AbortableOperation.aborted();t&&(w=new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.TIMEOUT,b.uris[e],a));if(w instanceof shaka.util.Error){if(w.code==
|
|
479
483
|
shaka.util.Error.Code.OPERATION_ABORTED)throw w;if(w.code==shaka.util.Error.Code.ATTEMPTS_EXHAUSTED)throw goog.asserts.assert(f,"Should have last error"),f;if(w.severity==shaka.util.Error.Severity.RECOVERABLE)return x=(new Map).set("error",w),x=new shaka.util.FakeEvent("retry",x),h.dispatchEvent(x),e=(e+1)%b.uris.length,h.send_(a,b,c,d,e,w,g)}throw w;})};
|
|
480
484
|
shaka.net.NetworkingEngine.prototype.filterResponse_=function(a,b,c){for(var d=shaka.util.AbortableOperation.completed(void 0),e=$jscomp.makeIterator(this.responseFilters_),f=e.next(),g={};!f.done;g={responseFilter:void 0},f=e.next())g.responseFilter=f.value,d=d.chain(function(h){return function(){var k=b.response;k.data&&(k.data=shaka.util.BufferUtils.toArrayBuffer(k.data));return(0,h.responseFilter)(a,k,c)}}(g));return d.chain(function(){return b},function(h){var k=shaka.util.Error.Severity.CRITICAL;
|
|
481
485
|
if(h instanceof shaka.util.Error){if(h.code==shaka.util.Error.Code.OPERATION_ABORTED)throw h;k=h.severity}throw new shaka.util.Error(k,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.RESPONSE_FILTER_ERROR,h);})};shaka.net.NetworkingEngine.prototype.allowSwitch_=function(a){if(a){var b=a.segment;a=a.stream;if(b&&a&&a.fastSwitching&&b.isPartial())return!1}return!0};shaka.net.NetworkingEngine.getLocationProtocol_=function(){return location.protocol};
|
|
@@ -487,7 +491,7 @@ goog.exportProperty(shaka.net.NetworkingEngine.prototype,"setForceHTTP",shaka.ne
|
|
|
487
491
|
shaka.net.NetworkingEngine.PendingRequest=function(a,b,c){shaka.util.AbortableOperation.call(this,a,b);this.bytesRemaining_=c};$jscomp.inherits(shaka.net.NetworkingEngine.PendingRequest,shaka.util.AbortableOperation);shaka.net.NetworkingEngine.PendingRequest.prototype.getBytesRemaining=function(){return this.bytesRemaining_.getBytes()};goog.exportProperty(shaka.net.NetworkingEngine,"PendingRequest",shaka.net.NetworkingEngine.PendingRequest);
|
|
488
492
|
shaka.net.NetworkingEngine.CommonAccessTokenHeaderName_="common-access-token";shaka.net.NetworkingEngine.RequestType={MANIFEST:0,SEGMENT:1,LICENSE:2,APP:3,TIMING:4,SERVER_CERTIFICATE:5,KEY:6,ADS:7,CONTENT_STEERING:8};goog.exportProperty(shaka.net.NetworkingEngine,"RequestType",shaka.net.NetworkingEngine.RequestType);
|
|
489
493
|
shaka.net.NetworkingEngine.AdvancedRequestType={INIT_SEGMENT:0,MEDIA_SEGMENT:1,MEDIA_PLAYLIST:2,MASTER_PLAYLIST:3,MPD:4,MSS:5,MPD_PATCH:6,MEDIATAILOR_SESSION_INFO:7,MEDIATAILOR_TRACKING_INFO:8,MEDIATAILOR_STATIC_RESOURCE:9,MEDIATAILOR_TRACKING_EVENT:10,INTERSTITIAL_ASSET_LIST:11,INTERSTITIAL_AD_URL:12};goog.exportProperty(shaka.net.NetworkingEngine,"AdvancedRequestType",shaka.net.NetworkingEngine.AdvancedRequestType);shaka.net.NetworkingEngine.PluginPriority={FALLBACK:1,PREFERRED:2,APPLICATION:3};
|
|
490
|
-
goog.exportProperty(shaka.net.NetworkingEngine,"PluginPriority",shaka.net.NetworkingEngine.PluginPriority);shaka.net.NetworkingEngine.schemes_=
|
|
494
|
+
goog.exportProperty(shaka.net.NetworkingEngine,"PluginPriority",shaka.net.NetworkingEngine.PluginPriority);shaka.net.NetworkingEngine.schemes_=new Map;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()})};
|
|
491
495
|
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.Iterables=function(){};shaka.util.Iterables.map=function(a,b){var c=[];a=$jscomp.makeIterator(a);for(var d=a.next();!d.done;d=a.next())c.push(b(d.value));return c};shaka.util.Iterables.every=function(a,b){a=$jscomp.makeIterator(a);for(var c=a.next();!c.done;c=a.next())if(!b(c.value))return!1;return!0};shaka.util.Iterables.some=function(a,b){a=$jscomp.makeIterator(a);for(var c=a.next();!c.done;c=a.next())if(b(c.value))return!0;return!1};
|
|
492
496
|
shaka.util.Iterables.filter=function(a,b){var c=[];a=$jscomp.makeIterator(a);for(var d=a.next();!d.done;d=a.next())d=d.value,b(d)&&c.push(d);return c};shaka.util.MapUtils=function(){};shaka.util.MapUtils.asMap=function(a){for(var b=new Map,c=$jscomp.makeIterator(Object.keys(a)),d=c.next();!d.done;d=c.next())d=d.value,b.set(d,a[d]);return b};shaka.util.MapUtils.asObject=function(a){var b={};a.forEach(function(c,d){b[d]=c});return b};
|
|
493
497
|
shaka.util.MapUtils.hasSameElements=function(a,b){if(a||b){if(a&&!b||b&&!a)return!1}else return!0;if(a.size!=b.size)return!1;a=$jscomp.makeIterator(a);for(var c=a.next();!c.done;c=a.next()){var d=$jscomp.makeIterator(c.value);c=d.next().value;d=d.next().value;if(!b.has(c))return!1;c=b.get(c);if(c!=d||void 0==c)return!1}return!0};shaka.util.DataViewReader=function(a,b){this.dataView_=shaka.util.BufferUtils.toDataView(a);this.littleEndian_=b==shaka.util.DataViewReader.Endianness.LITTLE_ENDIAN;this.position_=0};shaka.util.DataViewReader.prototype.getDataView=function(){return this.dataView_};shaka.util.DataViewReader.prototype.hasMoreData=function(){return this.position_<this.dataView_.byteLength};shaka.util.DataViewReader.prototype.getPosition=function(){return this.position_};
|
|
@@ -500,9 +504,9 @@ shaka.util.DataViewReader.prototype.seek=function(a){goog.asserts.assert(0<=a,"B
|
|
|
500
504
|
shaka.util.DataViewReader.prototype.outOfBounds_=function(){return new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MEDIA,shaka.util.Error.Code.BUFFER_READ_OUT_OF_BOUNDS)};goog.exportSymbol("shaka.util.DataViewReader",shaka.util.DataViewReader);goog.exportProperty(shaka.util.DataViewReader.prototype,"readTerminatedString",shaka.util.DataViewReader.prototype.readTerminatedString);goog.exportProperty(shaka.util.DataViewReader.prototype,"seek",shaka.util.DataViewReader.prototype.seek);
|
|
501
505
|
goog.exportProperty(shaka.util.DataViewReader.prototype,"rewind",shaka.util.DataViewReader.prototype.rewind);goog.exportProperty(shaka.util.DataViewReader.prototype,"skip",shaka.util.DataViewReader.prototype.skip);goog.exportProperty(shaka.util.DataViewReader.prototype,"readBytes",shaka.util.DataViewReader.prototype.readBytes);goog.exportProperty(shaka.util.DataViewReader.prototype,"readUint64",shaka.util.DataViewReader.prototype.readUint64);
|
|
502
506
|
goog.exportProperty(shaka.util.DataViewReader.prototype,"readInt32",shaka.util.DataViewReader.prototype.readInt32);goog.exportProperty(shaka.util.DataViewReader.prototype,"readUint32",shaka.util.DataViewReader.prototype.readUint32);goog.exportProperty(shaka.util.DataViewReader.prototype,"readUint16",shaka.util.DataViewReader.prototype.readUint16);goog.exportProperty(shaka.util.DataViewReader.prototype,"readUint8",shaka.util.DataViewReader.prototype.readUint8);
|
|
503
|
-
goog.exportProperty(shaka.util.DataViewReader.prototype,"getLength",shaka.util.DataViewReader.prototype.getLength);goog.exportProperty(shaka.util.DataViewReader.prototype,"getPosition",shaka.util.DataViewReader.prototype.getPosition);goog.exportProperty(shaka.util.DataViewReader.prototype,"hasMoreData",shaka.util.DataViewReader.prototype.hasMoreData);shaka.util.DataViewReader.Endianness={BIG_ENDIAN:0,LITTLE_ENDIAN:1};goog.exportProperty(shaka.util.DataViewReader,"Endianness",shaka.util.DataViewReader.Endianness);shaka.util.Mp4Parser=function(){this.headers_=
|
|
507
|
+
goog.exportProperty(shaka.util.DataViewReader.prototype,"getLength",shaka.util.DataViewReader.prototype.getLength);goog.exportProperty(shaka.util.DataViewReader.prototype,"getPosition",shaka.util.DataViewReader.prototype.getPosition);goog.exportProperty(shaka.util.DataViewReader.prototype,"hasMoreData",shaka.util.DataViewReader.prototype.hasMoreData);shaka.util.DataViewReader.Endianness={BIG_ENDIAN:0,LITTLE_ENDIAN:1};goog.exportProperty(shaka.util.DataViewReader,"Endianness",shaka.util.DataViewReader.Endianness);shaka.util.Mp4Parser=function(){this.headers_=new Map;this.boxDefinitions_=new Map;this.done_=!1};shaka.util.Mp4Parser.prototype.box=function(a,b){a=shaka.util.Mp4Parser.typeFromString_(a);this.headers_.set(a,shaka.util.Mp4Parser.BoxType_.BASIC_BOX);this.boxDefinitions_.set(a,b);return this};shaka.util.Mp4Parser.prototype.fullBox=function(a,b){a=shaka.util.Mp4Parser.typeFromString_(a);this.headers_.set(a,shaka.util.Mp4Parser.BoxType_.FULL_BOX);this.boxDefinitions_.set(a,b);return this};
|
|
504
508
|
shaka.util.Mp4Parser.prototype.stop=function(){this.done_=!0};shaka.util.Mp4Parser.prototype.parse=function(a,b,c){a=new shaka.util.DataViewReader(a,shaka.util.DataViewReader.Endianness.BIG_ENDIAN);for(this.done_=!1;a.hasMoreData()&&!this.done_;)this.parseNext(0,a,b,c)};
|
|
505
|
-
shaka.util.Mp4Parser.prototype.parseNext=function(a,b,c,d){var e=b.getPosition();if(d&&e+8>b.getLength())this.done_=!0;else{var f=b.readUint32(),g=b.readUint32(),h=shaka.util.Mp4Parser.typeToString(g),k=!1;shaka.log.v2("Parsing MP4 box",h);switch(f){case 0:f=b.getLength()-e;break;case 1:if(d&&b.getPosition()+8>b.getLength()){this.done_=!0;return}f=b.readUint64();k=!0}var l=this.boxDefinitions_
|
|
509
|
+
shaka.util.Mp4Parser.prototype.parseNext=function(a,b,c,d){var e=b.getPosition();if(d&&e+8>b.getLength())this.done_=!0;else{var f=b.readUint32(),g=b.readUint32(),h=shaka.util.Mp4Parser.typeToString(g),k=!1;shaka.log.v2("Parsing MP4 box",h);switch(f){case 0:f=b.getLength()-e;break;case 1:if(d&&b.getPosition()+8>b.getLength()){this.done_=!0;return}f=b.readUint64();k=!0}var l=this.boxDefinitions_.get(g);if(l){var m=null,n=null;if(this.headers_.get(g)==shaka.util.Mp4Parser.BoxType_.FULL_BOX){if(d&&b.getPosition()+
|
|
506
510
|
4>b.getLength()){this.done_=!0;return}n=b.readUint32();m=n>>>24;n&=16777215}g=e+f;c&&g>b.getLength()&&(g=b.getLength());d&&g>b.getLength()?this.done_=!0:(d=g-b.getPosition(),b=0<d?b.readBytes(d):new Uint8Array(0),b=new shaka.util.DataViewReader(b,shaka.util.DataViewReader.Endianness.BIG_ENDIAN),l({name:h,parser:this,partialOkay:c||!1,version:m,flags:n,reader:b,size:f,start:e+a,has64BitSize:k}))}else a=Math.min(e+f-b.getPosition(),b.getLength()-b.getPosition()),b.skip(a)}};
|
|
507
511
|
shaka.util.Mp4Parser.children=function(a){for(var b=shaka.util.Mp4Parser.headerSize(a);a.reader.hasMoreData()&&!a.parser.done_;)a.parser.parseNext(a.start+b,a.reader,a.partialOkay)};shaka.util.Mp4Parser.sampleDescription=function(a){for(var b=shaka.util.Mp4Parser.headerSize(a),c=a.reader.readUint32(),d=0;d<c&&(a.parser.parseNext(a.start+b,a.reader,a.partialOkay),!a.parser.done_);d++);};
|
|
508
512
|
shaka.util.Mp4Parser.visualSampleEntry=function(a){var b=shaka.util.Mp4Parser.headerSize(a);for(a.reader.skip(78);a.reader.hasMoreData()&&!a.parser.done_;)a.parser.parseNext(a.start+b,a.reader,a.partialOkay)};
|
|
@@ -524,11 +528,11 @@ shaka.drm.DrmEngine.prototype.configure=function(a,b){this.config_=a;b&&(this.is
|
|
|
524
528
|
shaka.drm.DrmEngine.prototype.initForPlayback=function(a,b){this.storedPersistentSessions_=new Map;b=$jscomp.makeIterator(b);for(var c=b.next();!c.done;c=b.next())this.storedPersistentSessions_.set(c.value,{initData:null,initDataType:null});b=$jscomp.makeIterator(this.config_.persistentSessionsMetadata);for(c=b.next();!c.done;c=b.next())c=c.value,this.storedPersistentSessions_.set(c.sessionId,{initData:c.initData,initDataType:c.initDataType});this.usePersistentLicenses_=0<this.storedPersistentSessions_.size;
|
|
525
529
|
return this.init_(a)};
|
|
526
530
|
shaka.drm.DrmEngine.prototype.initForRemoval=function(a,b,c,d,e){var f=new Map;d={audioCapabilities:d,videoCapabilities:e,distinctiveIdentifier:"optional",persistentState:"required",sessionTypes:["persistent-license"],label:a};d.drmInfos=[{keySystem:a,licenseServerUri:b,distinctiveIdentifierRequired:!1,persistentStateRequired:!0,audioRobustness:"",videoRobustness:"",serverCertificate:c,serverCertificateUri:"",initData:null,keyIds:null}];f.set(a,d);return this.queryMediaKeys_(f,[])};
|
|
527
|
-
shaka.drm.DrmEngine.prototype.init_=function(a){var b=this,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,
|
|
528
|
-
d));e=new Set;f=$jscomp.makeIterator(a);for(g=f.next();!g.done;g=f.next())for(h=g.value,k=b.getVariantDrmInfos_(h),l=$jscomp.makeIterator(k),m=l.next();!m.done;m=l.next())n=m.value,e.add(n);p=$jscomp.makeIterator(e);for(q=p.next();!q.done;q=p.next())r=q.value,shaka.drm.DrmEngine.fillInDrmInfoDefaults_(r,shaka.util.MapUtils.asMap(b.config_.servers),shaka.util.MapUtils.asMap(b.config_.advanced||{}),b.config_.keySystemsMapping);t=function(A,
|
|
529
|
-
A.next()){D=D.value;var E=D[
|
|
530
|
-
D,(
|
|
531
|
-
x=c||Object.keys(b.config_.servers).length;if(!x)return b.initialized_=!0,
|
|
531
|
+
shaka.drm.DrmEngine.prototype.init_=function(a){var b=this,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,z;return $jscomp.asyncExecutePromiseGeneratorProgram(function(B){if(1==B.nextAddress){goog.asserts.assert(b.config_,"DrmEngine configure() must be called before init()!");shaka.drm.DrmEngine.configureClearKey(b.config_.clearKeys,a);c=a.some(function(A){return A.video&&A.video.drmInfos.length||A.audio&&A.audio.drmInfos.length?!0:!1});c||(d=shaka.util.MapUtils.asMap(b.config_.servers),shaka.drm.DrmEngine.replaceDrmInfo_(a,
|
|
532
|
+
d));e=new Set;f=$jscomp.makeIterator(a);for(g=f.next();!g.done;g=f.next())for(h=g.value,k=b.getVariantDrmInfos_(h),l=$jscomp.makeIterator(k),m=l.next();!m.done;m=l.next())n=m.value,e.add(n);p=$jscomp.makeIterator(e);for(q=p.next();!q.done;q=p.next())r=q.value,shaka.drm.DrmEngine.fillInDrmInfoDefaults_(r,shaka.util.MapUtils.asMap(b.config_.servers),shaka.util.MapUtils.asMap(b.config_.advanced||{}),b.config_.keySystemsMapping);t=function(A,y){var C=[];A=$jscomp.makeIterator(A);for(var D=A.next();!D.done;D=
|
|
533
|
+
A.next()){D=D.value;var E=D[y]||b.config_.advanced&&b.config_.advanced[D.keySystem]&&b.config_.advanced[D.keySystem][y]||"";""==E&&shaka.drm.DrmUtils.isWidevineKeySystem(D.keySystem)&&("audioRobustness"==y?E=[b.config_.defaultAudioRobustnessForWidevine]:"videoRobustness"==y&&(E=[b.config_.defaultVideoRobustnessForWidevine]));if("string"===typeof E)C.push(D);else if(Array.isArray(E)){0===E.length&&(E=[""]);E=$jscomp.makeIterator(E);for(var F=E.next();!F.done;F=E.next()){var H={};C.push(Object.assign({},
|
|
534
|
+
D,(H[y]=F.value,H)))}}}return C};u=$jscomp.makeIterator(a);for(v=u.next();!v.done;v=u.next())w=v.value,w.video&&(w.video.drmInfos=t(w.video.drmInfos,"videoRobustness"),w.video.drmInfos=t(w.video.drmInfos,"audioRobustness")),w.audio&&(w.audio.drmInfos=t(w.audio.drmInfos,"videoRobustness"),w.audio.drmInfos=t(w.audio.drmInfos,"audioRobustness"));return B.yield(shaka.util.StreamUtils.getDecodingInfosForVariants(a,b.usePersistentLicenses_,b.srcEquals_,b.config_.preferredKeySystems),2)}b.destroyer_.ensureNotDestroyed();
|
|
535
|
+
x=c||Object.keys(b.config_.servers).length;if(!x)return b.initialized_=!0,B.return(Promise.resolve());z=b.queryMediaKeys_(void 0,a);return B.return(c?z:z.catch(function(){}))})};
|
|
532
536
|
shaka.drm.DrmEngine.prototype.attachMediaKeys_=function(){var a=this,b;return $jscomp.asyncExecutePromiseGeneratorProgram(function(c){switch(c.nextAddress){case 1:if(a.video_.mediaKeys)return c.return();if(!a.mediaKeysAttached_){c.jumpTo(2);break}return c.yield(a.mediaKeysAttached_,3);case 3:return a.destroyer_.ensureNotDestroyed(),c.return();case 2:return c.setCatchFinallyBlocks(4),a.mediaKeysAttached_=a.video_.setMediaKeys(a.mediaKeys_),c.yield(a.mediaKeysAttached_,6);case 6:c.leaveTryBlock(5);
|
|
533
537
|
break;case 4:b=c.enterCatchBlock(),goog.asserts.assert(b instanceof Error,"Wrong error type!"),a.onError_(new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.DRM,shaka.util.Error.Code.FAILED_TO_ATTACH_TO_VIDEO,b.message));case 5:a.destroyer_.ensureNotDestroyed(),c.jumpToEnd()}})};
|
|
534
538
|
shaka.drm.DrmEngine.prototype.onEncryptedEvent_=function(a){var b=this;return $jscomp.asyncExecutePromiseGeneratorProgram(function(c){if(1==c.nextAddress)return c.yield(b.attachMediaKeys_(),2);b.newInitData(a.initDataType,shaka.util.BufferUtils.toUint8(a.initData));c.jumpToEnd()})};
|
|
@@ -556,10 +560,10 @@ p.yield(c.setServerCertificate(),11);case 11:c.destroyer_.ensureNotDestroyed();p
|
|
|
556
560
|
shaka.drm.DrmEngine.prototype.getKeySystemAccessFromVariants_=function(a,b){for(var c=$jscomp.makeIterator(a),d=c.next();!d.done;d=c.next()){d=this.getVariantDrmInfos_(d.value);d=$jscomp.makeIterator(d);for(var e=d.next();!e.done;e=d.next())e=e.value,b.has(e.keySystem)||b.set(e.keySystem,[]),b.get(e.keySystem).push(e)}if(1==b.size&&b.has(""))throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.DRM,shaka.util.Error.Code.NO_RECOGNIZED_KEY_SYSTEMS);c=$jscomp.makeIterator(this.config_.preferredKeySystems);
|
|
557
561
|
e=c.next();for(d={};!e.done;d={preferredKeySystem$jscomp$1:void 0},e=c.next()){d.preferredKeySystem$jscomp$1=e.value;e=$jscomp.makeIterator(a);for(var f=e.next();!f.done;f=e.next())if(f=f.value.decodingInfos.find(function(l){return function(m){return m.supported&&null!=m.keySystemAccess&&m.keySystemAccess.keySystem==l.preferredKeySystem$jscomp$1}}(d)))return f.keySystemAccess}c=$jscomp.makeIterator([!0,!1]);for(d=c.next();!d.done;d=c.next())for(d=d.value,e=$jscomp.makeIterator(a),f=e.next();!f.done;f=
|
|
558
562
|
e.next()){f=$jscomp.makeIterator(f.value.decodingInfos);for(var g=f.next();!g.done;g=f.next())if(g=g.value,g.supported&&g.keySystemAccess){var h=g.keySystemAccess.keySystem,k=b.get(h);!k&&this.config_.keySystemsMapping[h]&&(k=b.get(this.config_.keySystemsMapping[h]));h=$jscomp.makeIterator(k);for(k=h.next();!k.done;k=h.next())if(!!k.value.licenseServerUri==d)return g.keySystemAccess}}return null};
|
|
559
|
-
shaka.drm.DrmEngine.prototype.getKeySystemAccessByConfigs_=function(a){var b=this,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x;return $jscomp.asyncExecutePromiseGeneratorProgram(function(
|
|
560
|
-
0==f.videoCapabilities.length&&delete f.videoCapabilities;g=$jscomp.makeIterator(b.config_.preferredKeySystems);h=g.next();case 2:if(h.done){
|
|
561
|
-
case 4:n=$jscomp.makeIterator([!0,!1]),p=n.next();case 9:if(p.done){
|
|
562
|
-
v,x);case 16:b.destroyer_.ensureNotDestroyed();case 13:t=r.next();
|
|
563
|
+
shaka.drm.DrmEngine.prototype.getKeySystemAccessByConfigs_=function(a){var b=this,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x;return $jscomp.asyncExecutePromiseGeneratorProgram(function(z){switch(z.nextAddress){case 1:if(1==a.size&&a.has(""))throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.DRM,shaka.util.Error.Code.NO_RECOGNIZED_KEY_SYSTEMS);d=$jscomp.makeIterator(a.values());for(e=d.next();!e.done;e=d.next())f=e.value,0==f.audioCapabilities.length&&delete f.audioCapabilities,
|
|
564
|
+
0==f.videoCapabilities.length&&delete f.videoCapabilities;g=$jscomp.makeIterator(b.config_.preferredKeySystems);h=g.next();case 2:if(h.done){z.jumpTo(4);break}k=h.value;if(!a.has(k)){z.jumpTo(3);break}l=a.get(k);z.setCatchFinallyBlocks(6);return z.yield(navigator.requestMediaKeySystemAccess(k,[l]),8);case 8:return c=z.yieldResult,z.return(c);case 6:m=z.enterCatchBlock(),shaka.log.v2("Requesting",k,"failed with config",l,m);case 7:b.destroyer_.ensureNotDestroyed();case 3:h=g.next();z.jumpTo(2);break;
|
|
565
|
+
case 4:n=$jscomp.makeIterator([!0,!1]),p=n.next();case 9:if(p.done){z.jumpTo(11);break}q=p.value;r=$jscomp.makeIterator(a.keys());t=r.next();case 12:if(t.done){p=n.next();z.jumpTo(9);break}u=t.value;v=a.get(u);w=v.drmInfos.some(function(B){return!!B.licenseServerUri});if(w!=q){z.jumpTo(13);break}z.setCatchFinallyBlocks(15);return z.yield(navigator.requestMediaKeySystemAccess(u,[v]),17);case 17:return c=z.yieldResult,z.return(c);case 15:x=z.enterCatchBlock(),shaka.log.v2("Requesting",u,"failed with config",
|
|
566
|
+
v,x);case 16:b.destroyer_.ensureNotDestroyed();case 13:t=r.next();z.jumpTo(12);break;case 11:return z.return(c)}})};shaka.drm.DrmEngine.prototype.checkSessionsLoaded_=function(){this.areAllSessionsLoaded_()&&this.allSessionsLoaded_.resolve()};shaka.drm.DrmEngine.prototype.setLoadSessionTimeoutTimer_=function(a){var b=this;(new shaka.util.Timer(function(){a.loaded=!0;b.checkSessionsLoaded_()})).tickAfter(shaka.drm.DrmEngine.SESSION_LOAD_TIMEOUT_)};
|
|
563
567
|
shaka.drm.DrmEngine.prototype.loadOfflineSession_=function(a,b){var c=this,d,e,f,g,h,k,l;return $jscomp.asyncExecutePromiseGeneratorProgram(function(m){switch(m.nextAddress){case 1:try{shaka.log.v1("Attempting to load an offline session",a),d=c.mediaKeys_.createSession("persistent-license")}catch(n){return e=new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.DRM,shaka.util.Error.Code.FAILED_TO_CREATE_SESSION,n.message),c.onError_(e),m.return(Promise.reject(e))}c.eventManager_.listen(d,
|
|
564
568
|
"message",function(n){return c.onSessionMessage_(n)});c.eventManager_.listen(d,"keystatuseschange",function(n){return c.onKeyStatusesChange_(n)});f={initData:b.initData,initDataType:b.initDataType,loaded:!1,oldExpiration:Infinity,updatePromise:null,type:"persistent-license"};c.activeSessions_.set(d,f);m.setCatchFinallyBlocks(2);return m.yield(d.load(a),4);case 4:return g=m.yieldResult,c.destroyer_.ensureNotDestroyed(),shaka.log.v2("Loaded offline session",a,g),g||(c.activeSessions_.delete(d),h=c.config_.persistentSessionOnlinePlayback?
|
|
565
569
|
shaka.util.Error.Severity.RECOVERABLE:shaka.util.Error.Severity.CRITICAL,c.onError_(new shaka.util.Error(h,shaka.util.Error.Category.DRM,shaka.util.Error.Code.OFFLINE_SESSION_REMOVED)),f.loaded=!0),c.setLoadSessionTimeoutTimer_(f),c.checkSessionsLoaded_(),m.return(d);case 2:k=m.enterCatchBlock(),c.destroyer_.ensureNotDestroyed(k),c.activeSessions_.delete(d),l=c.config_.persistentSessionOnlinePlayback?shaka.util.Error.Severity.RECOVERABLE:shaka.util.Error.Severity.CRITICAL,c.onError_(new shaka.util.Error(l,
|
|
@@ -581,17 +585,17 @@ shaka.drm.DrmEngine.prototype.unpackPlayReadyRequest_=function(a){var b=shaka.ut
|
|
|
581
585
|
shaka.drm.DrmEngine.prototype.onKeyStatusesChange_=function(a){var b=this;a=a.target;shaka.log.v2("Key status changed for session",a.sessionId);var c=this.activeSessions_.get(a),d=!1;a.keyStatuses.forEach(function(f,g){if("string"==typeof g){var h=g;g=f;f=h}if(shaka.drm.DrmUtils.isPlayReadyKeySystem(b.currentDrmInfo_.keySystem)&&16==g.byteLength&&(shaka.util.Platform.isEdge()||shaka.util.Platform.isPS4())){h=shaka.util.BufferUtils.toDataView(g);var k=h.getUint32(0,!0),l=h.getUint16(4,!0),m=h.getUint16(6,
|
|
582
586
|
!0);h.setUint32(0,k,!1);h.setUint16(4,l,!1);h.setUint16(6,m,!1)}"status-pending"!=f&&(c.loaded=!0);c||goog.asserts.assert("usable"!=f,"Usable keys found in closed session");"expired"==f&&(d=!0);g=shaka.util.Uint8ArrayUtils.toHex(g).slice(0,32);b.keyStatusByKeyId_.set(g,f)});var e=a.expiration-Date.now();(0>e||d&&1E3>e)&&c&&!c.updatePromise&&(shaka.log.debug("Session has expired",a.sessionId),this.activeSessions_.delete(a),this.closeSession_(a));this.areAllSessionsLoaded_()&&(this.allSessionsLoaded_.resolve(),
|
|
583
587
|
this.keyStatusTimer_.tickAfter(shaka.drm.DrmEngine.KEY_STATUS_BATCH_TIME))};shaka.drm.DrmEngine.prototype.processKeyStatusChanges_=function(){var a=this.keyStatusByKeyId_,b=this.announcedKeyStatusByKeyId_;b.clear();a.forEach(function(c,d){return b.set(d,c)});a=Array.from(b.values());if(a.length&&a.every(function(c){return"expired"==c}))this.onError_(new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.DRM,shaka.util.Error.Code.EXPIRED));this.playerInterface_.onKeyStatus(shaka.util.MapUtils.asObject(b))};
|
|
584
|
-
shaka.drm.DrmEngine.probeSupport=function(){var a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,
|
|
585
|
-
c=$jscomp.makeIterator(a);for(d=c.next();!d.done;d=c.next())e=d.value,b[e]=null;return
|
|
586
|
-
{contentType:'audio/webm; codecs="opus"'}];n={videoCapabilities:l,audioCapabilities:m,initDataTypes:["cenc","sinf","skd","keyids"]};p=[null,"cenc","cbcs","cbcs-1-9"];q=new Map;r=function(N,
|
|
587
|
-
|
|
588
|
-
!
|
|
589
|
-
t=function(N,
|
|
590
|
-
"required";
|
|
591
|
-
width:640,height:480,bitrate:1,framerate:1},audio:{contentType:m[0].contentType,channels:2,bitrate:1,samplerate:1},keySystemConfiguration:{keySystem:N,video:{encryptionScheme:
|
|
592
|
-
N,
|
|
593
|
-
(shaka.util.Platform.isWindows()||shaka.util.Platform.isMac())?!1:!0};
|
|
594
|
-
"",
|
|
588
|
+
shaka.drm.DrmEngine.probeSupport=function(){var a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,z,B,A,y,C,D,E,F,H,J,K,L,G,M;return $jscomp.asyncExecutePromiseGeneratorProgram(function(I){if(1==I.nextAddress){a="org.w3.clearkey com.widevine.alpha com.widevine.alpha.experiment com.microsoft.playready com.microsoft.playready.hardware com.microsoft.playready.recommendation com.chromecast.playready com.apple.fps.1_0 com.apple.fps com.huawei.wiseplay".split(" ");if(!shaka.drm.DrmUtils.isBrowserSupported()){b={};
|
|
589
|
+
c=$jscomp.makeIterator(a);for(d=c.next();!d.done;d=c.next())e=d.value,b[e]=null;return I.return(b)}f="1.0 1.1 1.2 1.3 1.4 2.0 2.1 2.2 2.3".split(" ");g=["SW_SECURE_CRYPTO","SW_SECURE_DECODE","HW_SECURE_CRYPTO","HW_SECURE_DECODE","HW_SECURE_ALL"];h=["150","2000","3000"];k={"com.widevine.alpha":g,"com.widevine.alpha.experiment":g,"com.microsoft.playready.recommendation":h};l=[{contentType:'video/mp4; codecs="avc1.42E01E"'},{contentType:'video/webm; codecs="vp8"'}];m=[{contentType:'audio/mp4; codecs="mp4a.40.2"'},
|
|
590
|
+
{contentType:'audio/webm; codecs="opus"'}];n={videoCapabilities:l,audioCapabilities:m,initDataTypes:["cenc","sinf","skd","keyids"]};p=[null,"cenc","cbcs","cbcs-1-9"];q=new Map;r=function(N,P){var O,W,Q,S,V,R,T,X,Y,U,ba,aa,Z;return $jscomp.asyncExecutePromiseGeneratorProgram(function(ca){switch(ca.nextAddress){case 1:return ca.setCatchFinallyBlocks(2),ca.yield(P.createMediaKeys(),4);case 4:O=ca.yieldResult;ca.leaveTryBlock(3);break;case 2:return ca.enterCatchBlock(),ca.return();case 3:Q=(W=P.getConfiguration().sessionTypes)?
|
|
591
|
+
W.includes("persistent-license"):!1;shaka.util.Platform.isTizen3()&&(Q=!1);S=P.getConfiguration().videoCapabilities;V=P.getConfiguration().audioCapabilities;R={persistentState:Q,encryptionSchemes:[],videoRobustnessLevels:[],audioRobustnessLevels:[],minHdcpVersions:[]};q.has(N)&&q.get(N)?R=q.get(N):q.set(N,R);(T=S[0].encryptionScheme)&&!R.encryptionSchemes.includes(T)&&R.encryptionSchemes.push(T);(X=S[0].robustness)&&!R.videoRobustnessLevels.includes(X)&&R.videoRobustnessLevels.push(X);(Y=V[0].robustness)&&
|
|
592
|
+
!R.audioRobustnessLevels.includes(Y)&&R.audioRobustnessLevels.push(Y);if("getStatusForPolicy"in O){U=[];ba=$jscomp.makeIterator(f);aa=ba.next();for(Z={};!aa.done;Z={hdcpVersion:void 0},aa=ba.next())Z.hdcpVersion=aa.value,R.minHdcpVersions.includes(Z.hdcpVersion)||U.push(O.getStatusForPolicy({minHdcpVersion:Z.hdcpVersion}).then(function(ea){return function(fa){"usable"!=fa||R.minHdcpVersions.includes(ea.hdcpVersion)||R.minHdcpVersions.push(ea.hdcpVersion)}}(Z)));return ca.yield(Promise.all(U),0)}ca.jumpTo(0)}})};
|
|
593
|
+
t=function(N,P,O,W){var Q,S,V,R,T,X,Y,U,ba,aa;return $jscomp.asyncExecutePromiseGeneratorProgram(function(Z){switch(Z.nextAddress){case 1:Z.setCatchFinallyBlocks(2);Q=shaka.util.ObjectUtils.cloneObject(n);S=$jscomp.makeIterator(Q.videoCapabilities);for(V=S.next();!V.done;V=S.next())R=V.value,R.encryptionScheme=P,R.robustness=O;T=$jscomp.makeIterator(Q.audioCapabilities);for(X=T.next();!X.done;X=T.next())Y=X.value,Y.encryptionScheme=P,Y.robustness=W;U=shaka.util.ObjectUtils.cloneObject(Q);U.persistentState=
|
|
594
|
+
"required";U.sessionTypes=["persistent-license"];ba=[U,Q];return Z.yield(shaka.util.Functional.promiseWithTimeout(1,navigator.requestMediaKeySystemAccess(N,ba)),4);case 4:return aa=Z.yieldResult,Z.yield(r(N,aa),5);case 5:Z.leaveTryBlock(0);break;case 2:Z.enterCatchBlock(),Z.jumpToEnd()}})};u=function(N,P,O,W){var Q,S,V,R;return $jscomp.asyncExecutePromiseGeneratorProgram(function(T){switch(T.nextAddress){case 1:return T.setCatchFinallyBlocks(2),Q={type:"media-source",video:{contentType:l[0].contentType,
|
|
595
|
+
width:640,height:480,bitrate:1,framerate:1},audio:{contentType:m[0].contentType,channels:2,bitrate:1,samplerate:1},keySystemConfiguration:{keySystem:N,video:{encryptionScheme:P,robustness:O},audio:{encryptionScheme:P,robustness:W}}},T.yield(shaka.util.Functional.promiseWithTimeout(1,navigator.mediaCapabilities.decodingInfo(Q)),4);case 4:return S=T.yieldResult,V=S.keySystemAccess,T.yield(r(N,V),5);case 5:T.leaveTryBlock(0);break;case 2:R=T.enterCatchBlock(),shaka.log.v2("Failed to probe support for",
|
|
596
|
+
N,R),T.jumpToEnd()}})};v=$jscomp.makeIterator(a);for(w=v.next();!w.done;w=v.next())x=w.value,q.set(x,null);z=function(N){return shaka.drm.DrmUtils.isClearKeySystem(N)&&shaka.util.Platform.isSafari()||shaka.drm.DrmUtils.isFairPlayKeySystem(N)&&shaka.util.Platform.isWindows()||shaka.drm.DrmUtils.isPlayReadyKeySystem(N)&&(shaka.util.Platform.isMac()||shaka.util.Platform.isApple())||shaka.drm.DrmUtils.isPlayReadyKeySystem(N)&&shaka.util.Platform.isFirefox()||shaka.drm.DrmUtils.isWisePlayKeySystem(N)&&
|
|
597
|
+
(shaka.util.Platform.isWindows()||shaka.util.Platform.isMac())?!1:!0};B=[];A=$jscomp.makeIterator(p);for(y=A.next();!y.done;y=A.next())for(C=y.value,D=$jscomp.makeIterator(a),E=D.next();!E.done;E=D.next())F=E.value,z(F)&&(B.push(t(F,C,"","")),B.push(u(F,C,"","")));H=$jscomp.makeIterator(a);for(J=H.next();!J.done;J=H.next())for(K=J.value,L=$jscomp.makeIterator(k[K]||[]),G=L.next();!G.done;G=L.next())M=G.value,z(K)&&(B.push(t(K,null,M,"")),B.push(t(K,null,"",M)),B.push(u(K,null,M,"")),B.push(u(K,null,
|
|
598
|
+
"",M)));return I.yield(Promise.all(B),2)}return I.return(shaka.util.MapUtils.asObject(q))})};shaka.drm.DrmEngine.prototype.onPlay_=function(){for(var a=$jscomp.makeIterator(this.mediaKeyMessageEvents_),b=a.next();!b.done;b=a.next())this.sendLicenseRequest_(b.value);this.initialRequestsSent_=!0;this.mediaKeyMessageEvents_=[]};
|
|
595
599
|
shaka.drm.DrmEngine.prototype.closeSession_=function(a){return $jscomp.asyncExecutePromiseGeneratorProgram(function(b){if(1==b.nextAddress)return b.setCatchFinallyBlocks(2),b.yield(shaka.util.Functional.promiseWithTimeout(shaka.drm.DrmEngine.CLOSE_TIMEOUT_,Promise.all([a.close().catch(function(){}),a.closed])),4);if(2!=b.nextAddress)return b.leaveTryBlock(0);b.enterCatchBlock();shaka.log.warning("Timeout waiting for session close");b.jumpToEnd()})};
|
|
596
600
|
shaka.drm.DrmEngine.prototype.closeOpenSessions_=function(){var a=this,b;return $jscomp.asyncExecutePromiseGeneratorProgram(function(c){b=Array.from(a.activeSessions_.entries());a.activeSessions_.clear();return c.yield(Promise.all(b.map(function(d){d=$jscomp.makeIterator(d);var e=d.next().value,f=d.next().value,g;return $jscomp.asyncExecutePromiseGeneratorProgram(function(h){if(1==h.nextAddress){h.setCatchFinallyBlocks(2);if(!a.initializedForStorage_&&!a.storedPersistentSessions_.has(e.sessionId)&&
|
|
597
601
|
"persistent-license"===f.type&&!a.config_.persistentSessionOnlinePlayback)return shaka.log.v1("Removing session",e.sessionId),h.yield(e.remove(),5);shaka.log.v1("Closing session",e.sessionId,f);return h.yield(a.closeSession_(e),5)}if(2!=h.nextAddress)return h.leaveTryBlock(0);g=h.enterCatchBlock();shaka.log.error("Failed to close or remove the session",g);h.jumpToEnd()})})),0)})};
|
|
@@ -619,8 +623,8 @@ shaka.media.AdaptationSet.areVideosCompatible_=function(a,b,c){var d=shaka.media
|
|
|
619
623
|
shaka.media.AdaptationSet.canTransitionBetween_=function(a,b){if(a.mimeType!=b.mimeType)return!1;a=shaka.util.MimeUtils.splitCodecs(a.codecs).map(function(d){return shaka.util.MimeUtils.getCodecBase(d)});b=shaka.util.MimeUtils.splitCodecs(b.codecs).map(function(d){return shaka.util.MimeUtils.getCodecBase(d)});if(a.length!=b.length)return!1;a.sort();b.sort();for(var c=0;c<a.length;c++)if(a[c]!=b[c])return!1;return!0};
|
|
620
624
|
shaka.media.AdaptationSet.areRolesEqual_=function(a,b){a=new Set(a);b=new Set(b);a.delete("main");b.delete("main");if(a.size!=b.size)return!1;a=$jscomp.makeIterator(a);for(var c=a.next();!c.done;c=a.next())if(!b.has(c.value))return!1;return!0};goog.exportSymbol("shaka.media.AdaptationSet",shaka.media.AdaptationSet);shaka.config.CodecSwitchingStrategy={RELOAD:"reload",SMOOTH:"smooth"};goog.exportSymbol("shaka.config.CodecSwitchingStrategy",shaka.config.CodecSwitchingStrategy);shaka.media.AdaptationSetCriteria=function(){};shaka.media.AdaptationSetCriteria.prototype.create=function(a){};shaka.media.AdaptationSetCriteria.prototype.configure=function(a){};goog.exportSymbol("shaka.media.AdaptationSetCriteria",shaka.media.AdaptationSetCriteria);shaka.media.BufferingObserver=function(a,b){var c=shaka.media.BufferingObserver.State;this.previousState_=c.SATISFIED;this.thresholds_=(new Map).set(c.SATISFIED,b).set(c.STARVING,a);this.lastRebufferTime_=0};shaka.media.BufferingObserver.prototype.setThresholds=function(a,b){var c=shaka.media.BufferingObserver.State;this.thresholds_.set(c.SATISFIED,b).set(c.STARVING,a)};
|
|
621
625
|
shaka.media.BufferingObserver.prototype.update=function(a,b){var c=shaka.media.BufferingObserver.State,d=this.thresholds_.get(this.previousState_),e=this.previousState_;this.previousState_=a=b||a>=d&&0<a?c.SATISFIED:c.STARVING;(e=e!=a)&&a===c.SATISFIED&&(this.lastRebufferTime_=Date.now());return e};shaka.media.BufferingObserver.prototype.setState=function(a){this.previousState_=a};shaka.media.BufferingObserver.prototype.getState=function(){return this.previousState_};
|
|
622
|
-
shaka.media.BufferingObserver.prototype.getLastRebufferTime=function(){return this.lastRebufferTime_};shaka.media.BufferingObserver.prototype.resetLastRebufferTime=function(){this.lastRebufferTime_=0};shaka.media.BufferingObserver.State={STARVING:0,SATISFIED:1};shaka.media.ExampleBasedCriteria=function(a,b,c){var d=a.video&&a.video.hdr?a.video.hdr:"",
|
|
623
|
-
audioCodec:
|
|
626
|
+
shaka.media.BufferingObserver.prototype.getLastRebufferTime=function(){return this.lastRebufferTime_};shaka.media.BufferingObserver.prototype.resetLastRebufferTime=function(){this.lastRebufferTime_=0};shaka.media.BufferingObserver.State={STARVING:0,SATISFIED:1};shaka.media.ExampleBasedCriteria=function(a,b,c){var d=a.audio&&a.audio.label?a.audio.label:"",e=a.video&&a.video.hdr?a.video.hdr:"",f=a.audio&&a.audio.spatialAudio?a.audio.spatialAudio:!1,g=a.video&&a.video.videoLayout?a.video.videoLayout:"",h=a.audio&&a.audio.channelsCount?a.audio.channelsCount:0,k=a.audio&&a.audio.codecs?a.audio.codecs:"";this.preferenceBasedCriteria_=c();this.preferenceBasedCriteria_.configure({language:a.language,role:"",channelCount:h,hdrLevel:e,spatialAudio:f,videoLayout:g,
|
|
627
|
+
audioLabel:d,videoLabel:"",codecSwitchingStrategy:b,audioCodec:k})};shaka.media.ExampleBasedCriteria.prototype.create=function(a){return this.preferenceBasedCriteria_.create(a)};shaka.media.ExampleBasedCriteria.prototype.configure=function(){};/*
|
|
624
628
|
@license
|
|
625
629
|
Shaka Player
|
|
626
630
|
Copyright 2023 Google LLC
|
|
@@ -633,12 +637,12 @@ shaka.media.ManifestFilterer.prototype.filterManifestWithRestrictions=function(a
|
|
|
633
637
|
shaka.media.ManifestFilterer.prototype.checkPlayableVariants_=function(a){if(!a.variants.some(shaka.util.StreamUtils.isPlayable))throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.CONTENT_UNSUPPORTED_BY_BROWSER);};
|
|
634
638
|
shaka.media.ManifestFilterer.prototype.processDrmInfos=function(a,b){if(b){b=$jscomp.makeIterator(b.drmInfos);for(var c=b.next();!c.done;c=b.next())if(c=c.value,c.keySystem==a){c=$jscomp.makeIterator(c.initData||[]);for(var d=c.next();!d.done;d=c.next())d=d.value,this.drmEngine_.newInitData(d.initDataType,d.initData)}}};
|
|
635
639
|
shaka.media.ManifestFilterer.prototype.checkRestrictedVariants=function(a){var b=shaka.media.ManifestFilterer.restrictedStatuses,c=this.drmEngine_?this.drmEngine_.getKeyStatuses():{},d=Object.keys(c);d=d.length&&"00"==d[0];var e=!1,f=!1,g=new Set,h=new Set;a=$jscomp.makeIterator(a.variants);for(var k=a.next();!k.done;k=a.next()){k=k.value;var l=[];k.audio&&l.push(k.audio);k.video&&l.push(k.video);l=$jscomp.makeIterator(l);for(var m=l.next();!m.done;m=l.next())if(m=m.value,m.keyIds.size){m=$jscomp.makeIterator(m.keyIds);
|
|
636
|
-
for(var n=m.next();!n.done;n=m.next()){n=n.value;var p=c[d?"00":n];p?b.includes(p)&&h.add(p):g.add(n)}}k.allowedByApplication?k.allowedByKeySystem&&(e=!0):f=!0}if(!e)throw b={hasAppRestrictions:f,missingKeys:Array.from(g),restrictedKeyStatuses:Array.from(h)},new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.RESTRICTIONS_CANNOT_BE_MET,b);};shaka.media.ManifestFilterer.restrictedStatuses=["output-restricted","internal-error"];shaka.media.ManifestParser=function(){};shaka.media.ManifestParser.registerParserByExtension=function(a,b){shaka.Deprecate.deprecateFeature(5,"ManifestParser.registerParserByExtension","Please use an ManifestParser with registerParserByMime function.")};shaka.media.ManifestParser.registerParserByMime=function(a,b){shaka.media.ManifestParser.parsersByMime
|
|
637
|
-
shaka.media.ManifestParser.probeSupport=function(){var a=shaka.media.ManifestParser,b={};if(shaka.util.Platform.supportsMediaSource())for(var c
|
|
638
|
-
shaka.media.ManifestParser.getFactory=function(a,b){var c=shaka.media.ManifestParser;if(b){if(c=c.parsersByMime
|
|
639
|
-
shaka.media.ManifestParser.isSupported=function(a){return shaka.util.Platform.supportsMediaSource()?
|
|
640
|
+
for(var n=m.next();!n.done;n=m.next()){n=n.value;var p=c[d?"00":n];p?b.includes(p)&&h.add(p):g.add(n)}}k.allowedByApplication?k.allowedByKeySystem&&(e=!0):f=!0}if(!e)throw b={hasAppRestrictions:f,missingKeys:Array.from(g),restrictedKeyStatuses:Array.from(h)},new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.RESTRICTIONS_CANNOT_BE_MET,b);};shaka.media.ManifestFilterer.restrictedStatuses=["output-restricted","internal-error"];shaka.media.ManifestParser=function(){};shaka.media.ManifestParser.registerParserByExtension=function(a,b){shaka.Deprecate.deprecateFeature(5,"ManifestParser.registerParserByExtension","Please use an ManifestParser with registerParserByMime function.")};shaka.media.ManifestParser.registerParserByMime=function(a,b){shaka.media.ManifestParser.parsersByMime.set(a,b)};shaka.media.ManifestParser.unregisterParserByMime=function(a){shaka.media.ManifestParser.parsersByMime.delete(a)};
|
|
641
|
+
shaka.media.ManifestParser.probeSupport=function(){var a=shaka.media.ManifestParser,b={};if(shaka.util.Platform.supportsMediaSource())for(var c=$jscomp.makeIterator(a.parsersByMime.keys()),d=c.next();!d.done;d=c.next())b[d.value]=!0;c=$jscomp.makeIterator(["application/dash+xml","application/x-mpegurl","application/vnd.apple.mpegurl","application/vnd.ms-sstr+xml"]);for(d=c.next();!d.done;d=c.next())d=d.value,shaka.util.Platform.supportsMediaSource()?b[d]=a.parsersByMime.has(d):b[d]=shaka.util.Platform.supportsMediaType(d);
|
|
642
|
+
return b};shaka.media.ManifestParser.getFactory=function(a,b){var c=shaka.media.ManifestParser;if(b){if(c=c.parsersByMime.get(b.toLowerCase()))return c;shaka.log.warning("Could not determine manifest type using MIME type ",b)}throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.UNABLE_TO_GUESS_MANIFEST_TYPE,a,b);};
|
|
643
|
+
shaka.media.ManifestParser.isSupported=function(a){return shaka.util.Platform.supportsMediaSource()?shaka.media.ManifestParser.parsersByMime.has(a):!1};goog.exportSymbol("shaka.media.ManifestParser",shaka.media.ManifestParser);goog.exportProperty(shaka.media.ManifestParser,"unregisterParserByMime",shaka.media.ManifestParser.unregisterParserByMime);goog.exportProperty(shaka.media.ManifestParser,"registerParserByMime",shaka.media.ManifestParser.registerParserByMime);
|
|
640
644
|
goog.exportProperty(shaka.media.ManifestParser,"registerParserByExtension",shaka.media.ManifestParser.registerParserByExtension);shaka.media.ManifestParser.HLS="HLS";shaka.media.ManifestParser.DASH="DASH";shaka.media.ManifestParser.MSS="MSS";shaka.media.ManifestParser.UNKNOWN="UNKNOWN";shaka.media.ManifestParser.AccessibilityPurpose={VISUALLY_IMPAIRED:"visually impaired",HARD_OF_HEARING:"hard of hearing"};goog.exportProperty(shaka.media.ManifestParser,"AccessibilityPurpose",shaka.media.ManifestParser.AccessibilityPurpose);
|
|
641
|
-
shaka.media.ManifestParser.parsersByMime=
|
|
645
|
+
shaka.media.ManifestParser.parsersByMime=new Map;shaka.media.ContentWorkarounds=function(){};
|
|
642
646
|
shaka.media.ContentWorkarounds.fakeEncryption=function(a,b){var c=shaka.media.ContentWorkarounds,d=a=shaka.util.BufferUtils.toUint8(a),e=!1,f,g=[],h=function(m){g.push(m);shaka.util.Mp4Parser.children(m)},k=function(m){e=!0},l=[];(new shaka.util.Mp4Parser).box("moov",h).box("trak",h).box("mdia",h).box("minf",h).box("stbl",h).fullBox("stsd",function(m){f=m;g.push(m);shaka.util.Mp4Parser.sampleDescription(m)}).fullBox("encv",k).fullBox("enca",k).fullBox("dvav",function(m){l.push({box:m,newType:c.BOX_TYPE_ENCV_})}).fullBox("dva1",
|
|
643
647
|
function(m){l.push({box:m,newType:c.BOX_TYPE_ENCV_})}).fullBox("dvh1",function(m){l.push({box:m,newType:c.BOX_TYPE_ENCV_})}).fullBox("dvhe",function(m){l.push({box:m,newType:c.BOX_TYPE_ENCV_})}).fullBox("dvc1",function(m){l.push({box:m,newType:c.BOX_TYPE_ENCV_})}).fullBox("dvi1",function(m){l.push({box:m,newType:c.BOX_TYPE_ENCV_})}).fullBox("hev1",function(m){l.push({box:m,newType:c.BOX_TYPE_ENCV_})}).fullBox("hvc1",function(m){l.push({box:m,newType:c.BOX_TYPE_ENCV_})}).fullBox("avc1",function(m){l.push({box:m,
|
|
644
648
|
newType:c.BOX_TYPE_ENCV_})}).fullBox("avc3",function(m){l.push({box:m,newType:c.BOX_TYPE_ENCV_})}).fullBox("ac-3",function(m){l.push({box:m,newType:c.BOX_TYPE_ENCA_})}).fullBox("ec-3",function(m){l.push({box:m,newType:c.BOX_TYPE_ENCA_})}).fullBox("ac-4",function(m){l.push({box:m,newType:c.BOX_TYPE_ENCA_})}).fullBox("mp4a",function(m){l.push({box:m,newType:c.BOX_TYPE_ENCA_})}).parse(a);if(e)return shaka.log.debug("Init segment already indicates encryption."),a;if(0==l.length||!f)throw shaka.log.error("Failed to find boxes needed to fake encryption!"),
|
|
@@ -648,8 +652,9 @@ shaka.media.ContentWorkarounds.insertEncryptionMetadata_=function(a,b,c,d,e){var
|
|
|
648
652
|
f.updateBoxSize_(e,a.start,a.size+g.byteLength);f=shaka.util.BufferUtils.toDataView(e,b.start);b=shaka.util.Mp4Parser.headerSize(b);g=f.getUint32(b);f.setUint32(b,g+1);return e};
|
|
649
653
|
shaka.media.ContentWorkarounds.createEncryptionMetadata_=function(a,b,c){var d=shaka.media.ContentWorkarounds,e=d.CANNED_SINF_BOX_.value(),f=a.subarray(b.start,b.start+b.size),g=shaka.util.BufferUtils.toDataView(f);a=new Uint8Array(b.size+e.byteLength);a.set(f,0);f=shaka.util.BufferUtils.toDataView(a);f.setUint32(d.BOX_TYPE_OFFSET_,c);a.set(e,b.size);c=g.getUint32(d.BOX_TYPE_OFFSET_);f.setUint32(b.size+d.CANNED_SINF_BOX_FORMAT_OFFSET_,c);d.updateBoxSize_(a,0,a.byteLength);return a};
|
|
650
654
|
shaka.media.ContentWorkarounds.updateBoxSize_=function(a,b,c){var d=shaka.media.ContentWorkarounds;a=shaka.util.BufferUtils.toDataView(a,b);b=a.getUint32(d.BOX_SIZE_OFFSET_);0!=b&&(1==b?(a.setUint32(d.BOX_SIZE_64_OFFSET_,c>>32),a.setUint32(d.BOX_SIZE_64_OFFSET_+4,c&4294967295)):a.setUint32(d.BOX_SIZE_OFFSET_,c))};
|
|
651
|
-
shaka.media.ContentWorkarounds.
|
|
652
|
-
|
|
655
|
+
shaka.media.ContentWorkarounds.fakeEC3=function(a){var b=shaka.media.ContentWorkarounds,c=shaka.util.BufferUtils.toUint8(a),d=[];a=function(e){d.push({start:e.start,size:e.size});shaka.util.Mp4Parser.children(e)};(new shaka.util.Mp4Parser).box("moov",a).box("trak",a).box("mdia",a).box("minf",a).box("stbl",a).box("stsd",function(e){d.push({start:e.start,size:e.size});for(var f=shaka.util.BufferUtils.toDataView(c,e.start),g=0;g<e.size;g++){var h=f.getUint32(g);h==b.BOX_TYPE_AC_3_?f.setUint32(g,b.BOX_TYPE_EC_3_):
|
|
656
|
+
h==b.BOX_TYPE_DAC3_&&f.setUint32(g,b.BOX_TYPE_DEC3_)}}).parse(c);return c};shaka.media.ContentWorkarounds.CANNED_SINF_BOX_=new shaka.util.Lazy(function(){return new Uint8Array([0,0,0,80,115,105,110,102,0,0,0,12,102,114,109,97,0,0,0,0,0,0,0,20,115,99,104,109,0,0,0,0,99,101,110,99,0,1,0,0,0,0,0,40,115,99,104,105,0,0,0,32,116,101,110,99,0,0,0,0,0,0,1,8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0])});shaka.media.ContentWorkarounds.CANNED_SINF_BOX_FORMAT_OFFSET_=16;
|
|
657
|
+
shaka.media.ContentWorkarounds.BOX_SIZE_OFFSET_=0;shaka.media.ContentWorkarounds.BOX_TYPE_OFFSET_=4;shaka.media.ContentWorkarounds.BOX_SIZE_64_OFFSET_=8;shaka.media.ContentWorkarounds.BOX_TYPE_ENCV_=1701733238;shaka.media.ContentWorkarounds.BOX_TYPE_ENCA_=1701733217;shaka.media.ContentWorkarounds.BOX_TYPE_AC_3_=1633889587;shaka.media.ContentWorkarounds.BOX_TYPE_DAC3_=1684103987;shaka.media.ContentWorkarounds.BOX_TYPE_EC_3_=1700998451;shaka.media.ContentWorkarounds.BOX_TYPE_DEC3_=1684366131;shaka.media.InitSegmentReference=function(a,b,c,d,e,f,g){this.getUris=a;this.startByte=b;this.endByte=c;this.mediaQuality=void 0===d?null:d;this.timescale=void 0===e?null:e;this.segmentData=void 0===f?null:f;this.aesKey=void 0===g?null:g;this.mimeType=this.codecs=null};shaka.media.InitSegmentReference.prototype.getStartByte=function(){return this.startByte};shaka.media.InitSegmentReference.prototype.getEndByte=function(){return this.endByte};
|
|
653
658
|
shaka.media.InitSegmentReference.prototype.getSize=function(){return this.endByte?this.endByte-this.startByte:null};shaka.media.InitSegmentReference.prototype.getMediaQuality=function(){return this.mediaQuality};shaka.media.InitSegmentReference.prototype.getSegmentData=function(){return this.segmentData};
|
|
654
659
|
shaka.media.InitSegmentReference.equal=function(a,b){var c=shaka.util.ArrayUtils,d=shaka.util.BufferUtils;return a===b?!0:a&&b?a.getStartByte()==b.getStartByte()&&a.getEndByte()==b.getEndByte()&&c.equal(a.getUris().sort(),b.getUris().sort())&&d.equal(a.getSegmentData(),b.getSegmentData()):a==b};goog.exportSymbol("shaka.media.InitSegmentReference",shaka.media.InitSegmentReference);goog.exportProperty(shaka.media.InitSegmentReference.prototype,"getEndByte",shaka.media.InitSegmentReference.prototype.getEndByte);
|
|
655
660
|
goog.exportProperty(shaka.media.InitSegmentReference.prototype,"getStartByte",shaka.media.InitSegmentReference.prototype.getStartByte);
|
|
@@ -746,9 +751,9 @@ shaka.util.TsParser.prototype.getVideoInfo=function(){return"hvc"==this.videoCod
|
|
|
746
751
|
shaka.util.TsParser.prototype.getAvcInfo_=function(){var a=shaka.util.TsParser,b={height:null,width:null,codec:null,frameRate:null},c=this.getVideoNalus();if(!c.length)return b;c=c.find(function(q){return q.type==a.H264_NALU_TYPE_SPS_});if(!c)return b;c=new shaka.util.ExpGolomb(c.data);var d=c.readUnsignedByte(),e=c.readUnsignedByte(),f=c.readUnsignedByte();c.skipExpGolomb();if(a.PROFILES_WITH_OPTIONAL_SPS_DATA_.includes(d)){var g=c.readUnsignedExpGolomb();3===g&&c.skipBits(1);c.skipExpGolomb();c.skipExpGolomb();
|
|
747
752
|
c.skipBits(1);if(c.readBoolean()){g=3!==g?8:12;for(var h=0;h<g;h++)c.readBoolean()&&(6>h?c.skipScalingList(16):c.skipScalingList(64))}}c.skipExpGolomb();g=c.readUnsignedExpGolomb();if(0===g)c.readUnsignedExpGolomb();else if(1===g)for(c.skipBits(1),c.skipExpGolomb(),c.skipExpGolomb(),g=c.readUnsignedExpGolomb(),h=0;h<g;h++)c.skipExpGolomb();c.skipExpGolomb();c.skipBits(1);g=c.readUnsignedExpGolomb();h=c.readUnsignedExpGolomb();var k=c.readBits(1);0===k&&c.skipBits(1);c.skipBits(1);var l=0,m=0,n=0,
|
|
748
753
|
p=0;c.readBoolean()&&(l=c.readUnsignedExpGolomb(),m=c.readUnsignedExpGolomb(),n=c.readUnsignedExpGolomb(),p=c.readUnsignedExpGolomb());b.height=String((2-k)*(h+1)*16-2*n-2*p);b.width=String(16*(g+1)-2*l-2*m);b.codec="avc1."+this.byteToHex_(d)+this.byteToHex_(e)+this.byteToHex_(f);b.frameRate=this.getFrameRate_();return b};
|
|
749
|
-
shaka.util.TsParser.prototype.getHvcInfo_=function(){var a=shaka.util.TsParser,b={height:null,width:null,codec:null,frameRate:null},c=this.getVideoNalus();if(!c.length)return b;c=c.find(function(
|
|
750
|
-
m=d.readUnsignedByte(),n=d.readUnsignedByte(),p=d.readUnsignedByte(),q=d.readUnsignedByte(),r=d.readUnsignedByte(),t=[],u=[],v=0;v<e;v++)t.push(d.readBoolean()),u.push(d.readBoolean());if(0<e)for(v=e;8>v;v++)d.readBits(2);for(v=0;v<e;v++)t[v]&&d.readBits(88),u[v]&&d.readUnsignedByte();d.readUnsignedExpGolomb();e=d.readUnsignedExpGolomb();3==e&&d.readBits(1);t=d.readUnsignedExpGolomb();u=d.readUnsignedExpGolomb();var w=v=0,x=0,
|
|
751
|
-
x+=d.readUnsignedExpGolomb(),
|
|
754
|
+
shaka.util.TsParser.prototype.getHvcInfo_=function(){var a=shaka.util.TsParser,b={height:null,width:null,codec:null,frameRate:null},c=this.getVideoNalus();if(!c.length)return b;c=c.find(function(B){return B.type==a.H265_NALU_TYPE_SPS_});if(!c)return b;var d=new shaka.util.ExpGolomb(c.fullData,!0);d.readUnsignedByte();d.readUnsignedByte();d.readBits(4);var e=d.readBits(3);d.readBoolean();var f=d.readBits(2),g=d.readBits(1),h=d.readBits(5),k=d.readBits(32);c=d.readUnsignedByte();for(var l=d.readUnsignedByte(),
|
|
755
|
+
m=d.readUnsignedByte(),n=d.readUnsignedByte(),p=d.readUnsignedByte(),q=d.readUnsignedByte(),r=d.readUnsignedByte(),t=[],u=[],v=0;v<e;v++)t.push(d.readBoolean()),u.push(d.readBoolean());if(0<e)for(v=e;8>v;v++)d.readBits(2);for(v=0;v<e;v++)t[v]&&d.readBits(88),u[v]&&d.readUnsignedByte();d.readUnsignedExpGolomb();e=d.readUnsignedExpGolomb();3==e&&d.readBits(1);t=d.readUnsignedExpGolomb();u=d.readUnsignedExpGolomb();var w=v=0,x=0,z=0;d.readBoolean()&&(v+=d.readUnsignedExpGolomb(),w+=d.readUnsignedExpGolomb(),
|
|
756
|
+
x+=d.readUnsignedExpGolomb(),z+=d.readUnsignedExpGolomb());b.width=String(t-(v+w)*(1===e||2===e?2:1));b.height=String(u-(x+z)*(1===e?2:1));d=["","A","B","C"][f];k=function(B){for(var A=0,y=0;32>y;y++)A|=(B>>y&1)<<31-y;return A>>>0}(k);g=1==g?"H":"L";h="hvc1"+("."+d+h)+("."+k.toString(16).toUpperCase());h+="."+g+r;q&&(h+="."+q.toString(16).toUpperCase());p&&(h+="."+p.toString(16).toUpperCase());n&&(h+="."+n.toString(16).toUpperCase());m&&(h+="."+m.toString(16).toUpperCase());l&&(h+="."+l.toString(16).toUpperCase());
|
|
752
757
|
c&&(h+="."+c.toString(16).toUpperCase());b.codec=h;b.frameRate=this.getFrameRate_();return b};shaka.util.TsParser.prototype.getOpusMetadata=function(){return this.opusMetadata_};shaka.util.TsParser.prototype.byteToHex_=function(a){return("0"+a.toString(16).toUpperCase()).slice(-2)};shaka.util.TsParser.prototype.handleRollover_=function(a,b){var c=1;for(a>b&&(c=-1);4294967296<Math.abs(b-a);)a+=8589934592*c;return a};
|
|
753
758
|
shaka.util.TsParser.probe=function(a){a=shaka.util.TsParser.syncOffset(a);if(0>a)return!1;0<a&&shaka.log.warning("MPEG2-TS detected but first sync word found @ offset "+a+", junk ahead ?");return!0};shaka.util.TsParser.syncOffset=function(a){for(var b=shaka.util.TsParser.PacketLength_,c=Math.min(1E3,a.length-3*b),d=0;d<c;){if(71==a[d]&&71==a[d+b]&&71==a[d+2*b])return d;d++}return-1};goog.exportSymbol("shaka.util.TsParser",shaka.util.TsParser);goog.exportProperty(shaka.util.TsParser,"syncOffset",shaka.util.TsParser.syncOffset);
|
|
754
759
|
goog.exportProperty(shaka.util.TsParser,"probe",shaka.util.TsParser.probe);goog.exportProperty(shaka.util.TsParser.prototype,"getVideoInfo",shaka.util.TsParser.prototype.getVideoInfo);goog.exportProperty(shaka.util.TsParser.prototype,"getVideoResolution",shaka.util.TsParser.prototype.getVideoResolution);goog.exportProperty(shaka.util.TsParser.prototype,"getVideoNalus",shaka.util.TsParser.prototype.getVideoNalus);goog.exportProperty(shaka.util.TsParser.prototype,"getCodecs",shaka.util.TsParser.prototype.getCodecs);
|
|
@@ -759,10 +764,10 @@ shaka.lcevc.Dec.prototype.create_=function(){this.isSupported_()&&!this.dec_&&th
|
|
|
759
764
|
shaka.lcevc.Dec.prototype.isSupported_=function(){"undefined"===typeof libDPIModule&&shaka.log.alwaysWarn("Could not find LCEVC Library dependencies on this page");if("undefined"!==typeof LCEVCdec)this.lcevcLib_=LCEVCdec;else if("undefined"!==typeof LcevcDil)this.lcevcLib_=LcevcDil,this.toBeDeprecated_=!0,shaka.Deprecate.deprecateFeature(5,"LcevcDil","lcevc_dil.js is deprecated, please use lcevc_dec.js instead");else return shaka.log.alwaysWarn("Could not find LCEVC Library on this page"),!1;if("undefined"===
|
|
760
765
|
typeof this.lcevcLib_.SupportObject)return shaka.log.alwaysWarn("Could not find LCEVC Library on this page"),!1;this.lcevcLib_.SupportObject.SupportStatus||shaka.log.alwaysWarn(this.lcevcLib_.SupportObject.SupportError);return"undefined"!==typeof this.lcevcLib_&&"undefined"!==typeof libDPIModule&&this.canvas_ instanceof HTMLCanvasElement&&this.lcevcLib_.SupportObject.SupportStatus};
|
|
761
766
|
shaka.lcevc.Dec.prototype.updateVariant=function(a,b){var c=shaka.lcevc.Dec.ContainerFormat.MPEG2_TS,d=shaka.lcevc.Dec.StreamingFormat.OTHER;switch(a.mimeType){case "video/webm":c=shaka.lcevc.Dec.ContainerFormat.WEBM;break;case "video/mp4":c=shaka.lcevc.Dec.ContainerFormat.MP4}switch(b){case "DASH":d=shaka.lcevc.Dec.StreamingFormat.DASH;break;case "HLS":d=shaka.lcevc.Dec.StreamingFormat.HLS}this.dec_&&(this.variantId_=a.id,this.dec_.setLevelSwitching(a.id,!0),this.dec_.setContainerFormat(c),this.toBeDeprecated_||
|
|
762
|
-
this.dec_.setStreamingFormat(d))};goog.exportSymbol("shaka.lcevc.Dec",shaka.lcevc.Dec);goog.exportProperty(shaka.lcevc.Dec.prototype,"release",shaka.lcevc.Dec.prototype.release);shaka.lcevc.Dec.ContainerFormat={MPEG2_TS:0,WEBM:1,MP4:2};shaka.lcevc.Dec.StreamingFormat={HLS:0,DASH:1,OTHER:-1};shaka.media.MediaSourceEngine=function(a,b,c,d){var e=this;this.video_=a;this.playerInterface_=c;this.config_=null;this.textDisplayer_=b;this.sourceBuffers_=
|
|
763
|
-
!0;this.usingRemotePlayback_=!1;this.secondarySource_=this.source_=null;this.mediaSource_=this.createMediaSource(this.mediaSourceOpen_);this.reloadingMediaSource_=!1;this.destroyer_=new shaka.util.Destroyer(function(){return e.doDestroy_()});this.sequenceMode_=!1;this.manifestType_=shaka.media.ManifestParser.UNKNOWN;this.attemptTimestampOffsetCalculation_=this.ignoreManifestTimestampsInSegmentsMode_=!1;this.textSequenceModeOffset_=new shaka.util.PublicPromise;this.needSplitMuxedContent_
|
|
764
|
-
null;this.tsParsers_=
|
|
765
|
-
"disconnected"!=e.video_.remote.state}),this.eventManager_.listen(this.video_.remote,"disconnect",function(){e.usingRemotePlayback_="disconnected"!=e.video_.remote.state}))};
|
|
767
|
+
this.dec_.setStreamingFormat(d))};goog.exportSymbol("shaka.lcevc.Dec",shaka.lcevc.Dec);goog.exportProperty(shaka.lcevc.Dec.prototype,"release",shaka.lcevc.Dec.prototype.release);shaka.lcevc.Dec.ContainerFormat={MPEG2_TS:0,WEBM:1,MP4:2};shaka.lcevc.Dec.StreamingFormat={HLS:0,DASH:1,OTHER:-1};shaka.media.MediaSourceEngine=function(a,b,c,d){var e=this;this.video_=a;this.playerInterface_=c;this.config_=null;this.textDisplayer_=b;this.sourceBuffers_=new Map;this.sourceBufferTypes_=new Map;this.expectedEncryption_=new Map;this.textEngine_=null;this.segmentRelativeVttTiming_=!1;this.lcevcDec_=d||null;this.queues_=new Map;this.eventManager_=new shaka.util.EventManager;this.transmuxers_=new Map;this.captionParser_=null;this.mediaSourceOpen_=new shaka.util.PublicPromise;this.url_="";this.playbackHasBegun_=
|
|
768
|
+
!1;this.streamingAllowed_=!0;this.usingRemotePlayback_=!1;this.secondarySource_=this.source_=null;this.mediaSource_=this.createMediaSource(this.mediaSourceOpen_);this.reloadingMediaSource_=!1;this.destroyer_=new shaka.util.Destroyer(function(){return e.doDestroy_()});this.sequenceMode_=!1;this.manifestType_=shaka.media.ManifestParser.UNKNOWN;this.attemptTimestampOffsetCalculation_=this.ignoreManifestTimestampsInSegmentsMode_=!1;this.textSequenceModeOffset_=new shaka.util.PublicPromise;this.needSplitMuxedContent_=
|
|
769
|
+
!1;this.lastDuration_=null;this.tsParsers_=new Map;this.firstAudioReferenceStartTime_=this.firstAudioTimestamp_=this.firstVideoReferenceStartTime_=this.firstVideoTimestamp_=null;this.audioCompensation_=new shaka.util.PublicPromise;this.video_.remote&&(this.usingRemotePlayback_="disconnected"!=this.video_.remote.state,this.eventManager_.listen(this.video_.remote,"connect",function(){e.usingRemotePlayback_="disconnected"!=e.video_.remote.state}),this.eventManager_.listen(this.video_.remote,"connecting",
|
|
770
|
+
function(){e.usingRemotePlayback_="disconnected"!=e.video_.remote.state}),this.eventManager_.listen(this.video_.remote,"disconnect",function(){e.usingRemotePlayback_="disconnected"!=e.video_.remote.state}))};
|
|
766
771
|
shaka.media.MediaSourceEngine.prototype.createMediaSource=function(a){var b=this;this.streamingAllowed_=!0;if(window.ManagedMediaSource){this.secondarySource_||(this.video_.disableRemotePlayback=!0);var c=new ManagedMediaSource;this.eventManager_.listen(c,"startstreaming",function(){shaka.log.info("MMS startstreaming");b.streamingAllowed_=!0});this.eventManager_.listen(c,"endstreaming",function(){shaka.log.info("MMS endstreaming");b.streamingAllowed_=!1})}else c=new MediaSource;this.eventManager_.listenOnce(c,
|
|
767
772
|
"sourceopen",function(){return b.onSourceOpen_(a)});this.eventManager_.listenOnce(this.video_,"playing",function(){b.playbackHasBegun_=!0});this.url_=shaka.media.MediaSourceEngine.createObjectURL(c);this.video_.removeAttribute("src");this.source_&&this.video_.removeChild(this.source_);this.secondarySource_&&this.video_.removeChild(this.secondarySource_);this.source_=shaka.util.Dom.createSourceElement(this.url_);this.video_.appendChild(this.source_);this.secondarySource_&&this.video_.appendChild(this.secondarySource_);
|
|
768
773
|
this.video_.load();return c};shaka.media.MediaSourceEngine.prototype.addSecondarySource=function(a,b){this.video_&&window.ManagedMediaSource&&this.mediaSource_?(this.secondarySource_&&this.video_.removeChild(this.secondarySource_),this.secondarySource_=shaka.util.Dom.createSourceElement(a,b),this.video_.appendChild(this.secondarySource_),this.video_.disableRemotePlayback=!1):shaka.log.warning("Secondary source is used only with ManagedMediaSource")};
|
|
@@ -772,39 +777,40 @@ for(k=h.next();!k.done;k=h.next())if(l=k.value,m=l.mimeType||a.mimeType||"",n=l.
|
|
|
772
777
|
return u.return(!0)})};
|
|
773
778
|
shaka.media.MediaSourceEngine.probeSupport=function(){var a='video/mp4; codecs="avc1.42E01E",video/mp4; codecs="avc3.42E01E",video/mp4; codecs="hev1.1.6.L93.90",video/mp4; codecs="hvc1.1.6.L93.90",video/mp4; codecs="hev1.2.4.L153.B0"; eotf="smpte2084",video/mp4; codecs="hvc1.2.4.L153.B0"; eotf="smpte2084",video/mp4; codecs="vp9",video/mp4; codecs="vp09.00.10.08",video/mp4; codecs="av01.0.01M.08",video/mp4; codecs="dvh1.05.01",video/mp4; codecs="dvh1.20.01",audio/mp4; codecs="mp4a.40.2",audio/mp4; codecs="ac-3",audio/mp4; codecs="ec-3",audio/mp4; codecs="ac-4.02.01.01",audio/mp4; codecs="opus",audio/mp4; codecs="flac",audio/mp4; codecs="dtsc",audio/mp4; codecs="dtse",audio/mp4; codecs="dtsx",video/webm; codecs="vp8",video/webm; codecs="vp9",video/webm; codecs="vp09.00.10.08",audio/webm; codecs="vorbis",audio/webm; codecs="opus",video/mp2t; codecs="avc1.42E01E",video/mp2t; codecs="avc3.42E01E",video/mp2t; codecs="hvc1.1.6.L93.90",video/mp2t; codecs="mp4a.40.2",video/mp2t; codecs="ac-3",video/mp2t; codecs="ec-3",text/vtt,application/mp4; codecs="wvtt",application/ttml+xml,application/mp4; codecs="stpp"'.split(",").concat($jscomp.arrayFromIterable(shaka.util.MimeUtils.RAW_FORMATS)),b=
|
|
774
779
|
{};a=$jscomp.makeIterator(a);for(var c=a.next();!c.done;c=a.next()){c=c.value;shaka.text.TextEngine.isTypeSupported(c)?b[c]=!0:shaka.util.Platform.supportsMediaSource()?b[c]=shaka.media.Capabilities.isTypeSupported(c)||shaka.transmuxer.TransmuxerEngine.isSupported(c):b[c]=shaka.util.Platform.supportsMediaType(c);var d=c.split(";")[0];b[d]=b[d]||b[c]}return b};shaka.media.MediaSourceEngine.prototype.destroy=function(){return this.destroyer_.destroy()};
|
|
775
|
-
shaka.media.MediaSourceEngine.prototype.doDestroy_=function(){var a=this,b,c,d,e,f,g,h,k,l,m;return $jscomp.asyncExecutePromiseGeneratorProgram(function(
|
|
776
|
-
2)}
|
|
777
|
-
a.queues_
|
|
780
|
+
shaka.media.MediaSourceEngine.prototype.doDestroy_=function(){var a=this,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,z,B,A;return $jscomp.asyncExecutePromiseGeneratorProgram(function(y){if(1==y.nextAddress){b=shaka.util.Functional;c=[];d=$jscomp.makeIterator(a.queues_);for(e=d.next();!e.done;e=d.next())for(f=e.value,g=$jscomp.makeIterator(f),h=g.next().value,k=g.next().value,l=k[0],m=h,a.queues_.set(m,k.slice(0,1)),l&&c.push(l.p.catch(b.noop)),n=$jscomp.makeIterator(k.slice(1)),p=n.next();!p.done;p=n.next())q=
|
|
781
|
+
p.value,q.p.reject(shaka.util.Destroyer.destroyedError());a.textEngine_&&c.push(a.textEngine_.destroy());return y.yield(Promise.all(c),2)}r=$jscomp.makeIterator(a.transmuxers_.values());for(t=r.next();!t.done;t=r.next())u=t.value,u.destroy();a.eventManager_&&(a.eventManager_.release(),a.eventManager_=null);a.video_&&a.secondarySource_&&a.video_.removeChild(a.secondarySource_);a.video_&&a.source_&&(a.video_.removeChild(a.source_),a.video_.load(),a.video_.disableRemotePlayback=!1);a.video_=null;a.source_=
|
|
782
|
+
null;a.secondarySource_=null;a.config_=null;a.mediaSource_=null;a.textEngine_=null;a.textDisplayer_=null;a.sourceBuffers_.clear();a.expectedEncryption_.clear();a.transmuxers_.clear();a.captionParser_=null;if(goog.DEBUG)for(v=$jscomp.makeIterator(a.queues_),w=v.next();!w.done;w=v.next())x=w.value,z=$jscomp.makeIterator(x),B=z.next().value,A=z.next().value,goog.asserts.assert(0==A.length,B+" queue should be empty after destroy!");a.queues_.clear();a.lcevcDec_=null;a.tsParsers_.clear();a.playerInterface_=
|
|
783
|
+
null;y.jumpToEnd()})};shaka.media.MediaSourceEngine.prototype.open=function(){return this.mediaSourceOpen_};
|
|
778
784
|
shaka.media.MediaSourceEngine.prototype.init=function(a,b,c,d){b=void 0===b?!1:b;c=void 0===c?shaka.media.ManifestParser.UNKNOWN:c;d=void 0===d?!1:d;var e=this,f,g,h,k,l,m;return $jscomp.asyncExecutePromiseGeneratorProgram(function(n){switch(n.nextAddress){case 1:return f=shaka.util.ManifestParserUtils.ContentType,n.yield(e.mediaSourceOpen_,2);case 2:if(!e.ended()&&!e.closed()){n.jumpTo(3);break}shaka.log.alwaysError("Expected MediaSource to be open during init(); reopening the media source.");e.mediaSourceOpen_=
|
|
779
|
-
new shaka.util.PublicPromise;e.mediaSource_=e.createMediaSource(e.mediaSourceOpen_);return n.yield(e.mediaSourceOpen_,3);case 3:e.sequenceMode_=b,e.manifestType_=c,e.ignoreManifestTimestampsInSegmentsMode_=d,e.attemptTimestampOffsetCalculation_=!e.sequenceMode_&&e.manifestType_==shaka.media.ManifestParser.HLS&&!e.ignoreManifestTimestampsInSegmentsMode_,e.tsParsers_
|
|
780
|
-
e.audioCompensation_=new shaka.util.PublicPromise,g=$jscomp.makeIterator(a.keys()),h=g.next();case 5:if(h.done){n.jumpTo(7);break}k=h.value;l=a.get(k);return n.yield(e.initSourceBuffer_(k,l,l.codecs),8);case 8:e.needSplitMuxedContent_?(e.queues_
|
|
781
|
-
shaka.media.MediaSourceEngine.prototype.initSourceBuffer_=function(a,b,c){var d=this,e,f,g,h,k,l,m,n,p,q,r,t;return $jscomp.asyncExecutePromiseGeneratorProgram(function(u){switch(u.nextAddress){case 1:return e=shaka.util.ManifestParserUtils.ContentType,f=goog.asserts,g=f.assert,u.yield(shaka.media.MediaSourceEngine.isStreamSupported(b,a),2);case 2:g.call(f,u.yieldResult,"Type negotiation should happen before MediaSourceEngine.init!");
|
|
782
|
-
d.sequenceMode_,b.external);u.jumpTo(0);break}k=d.config_.forceTransmux;if(!shaka.media.Capabilities.isTypeSupported(h)||!d.sequenceMode_&&shaka.util.MimeUtils.RAW_FORMATS.includes(h))k=!0;l=shaka.util.MimeUtils.getFullTypeWithAllCodecs(b.mimeType,c);if(!k){u.jumpTo(4);break}m=shaka.util.ManifestParserUtils.guessCodecsSafe(e.AUDIO,(c||"").split(","));n=shaka.util.ManifestParserUtils.guessCodecsSafe(e.VIDEO,
|
|
783
|
-
b,m),6);case 6:return u.yield(d.initSourceBuffer_(e.VIDEO,b,n),7);case 7:return u.return();case 5:if(p=shaka.transmuxer.TransmuxerEngine.findTransmuxer(l))q=p(),d.transmuxers_
|
|
784
|
-
d.mediaSource_.readyState+" expected 'open'",null);}d.sequenceMode_&&(t.mode=shaka.media.MediaSourceEngine.SourceBufferMode_.SEQUENCE);d.eventManager_.listen(t,"error",function(){return d.onError_(a)});d.eventManager_.listen(t,"updateend",function(){return d.onUpdateEnd_(a)});d.sourceBuffers_
|
|
785
|
-
shaka.media.MediaSourceEngine.prototype.
|
|
786
|
-
shaka.media.MediaSourceEngine.prototype.
|
|
787
|
-
shaka.media.MediaSourceEngine.prototype.bufferStart=function(a){return
|
|
788
|
-
shaka.media.MediaSourceEngine.prototype.bufferEnd=function(a){return
|
|
785
|
+
new shaka.util.PublicPromise;e.mediaSource_=e.createMediaSource(e.mediaSourceOpen_);return n.yield(e.mediaSourceOpen_,3);case 3:e.sequenceMode_=b,e.manifestType_=c,e.ignoreManifestTimestampsInSegmentsMode_=d,e.attemptTimestampOffsetCalculation_=!e.sequenceMode_&&e.manifestType_==shaka.media.ManifestParser.HLS&&!e.ignoreManifestTimestampsInSegmentsMode_,e.tsParsers_.clear(),e.firstVideoTimestamp_=null,e.firstVideoReferenceStartTime_=null,e.firstAudioTimestamp_=null,e.firstAudioReferenceStartTime_=
|
|
786
|
+
null,e.audioCompensation_=new shaka.util.PublicPromise,g=$jscomp.makeIterator(a.keys()),h=g.next();case 5:if(h.done){n.jumpTo(7);break}k=h.value;l=a.get(k);return n.yield(e.initSourceBuffer_(k,l,l.codecs),8);case 8:e.needSplitMuxedContent_?(e.queues_.set(f.AUDIO,[]),e.queues_.set(f.VIDEO,[])):e.queues_.set(k,[]);h=g.next();n.jumpTo(5);break;case 7:(m=a.get(f.AUDIO))&&m.isAudioMuxedInVideo&&(e.needSplitMuxedContent_=!0),n.jumpToEnd()}})};
|
|
787
|
+
shaka.media.MediaSourceEngine.prototype.initSourceBuffer_=function(a,b,c){var d=this,e,f,g,h,k,l,m,n,p,q,r,t;return $jscomp.asyncExecutePromiseGeneratorProgram(function(u){switch(u.nextAddress){case 1:return e=shaka.util.ManifestParserUtils.ContentType,f=goog.asserts,g=f.assert,u.yield(shaka.media.MediaSourceEngine.isStreamSupported(b,a),2);case 2:g.call(f,u.yieldResult,"Type negotiation should happen before MediaSourceEngine.init!");a==e.AUDIO&&c&&(c=shaka.util.StreamUtils.getCorrectAudioCodecs(c,
|
|
788
|
+
b.mimeType));h=shaka.util.MimeUtils.getFullType(b.mimeType,c);if(a==e.TEXT){d.reinitText(h,d.sequenceMode_,b.external);u.jumpTo(0);break}k=d.config_.forceTransmux;if(!shaka.media.Capabilities.isTypeSupported(h)||!d.sequenceMode_&&shaka.util.MimeUtils.RAW_FORMATS.includes(h))k=!0;l=shaka.util.MimeUtils.getFullTypeWithAllCodecs(b.mimeType,c);if(!k){u.jumpTo(4);break}m=shaka.util.ManifestParserUtils.guessCodecsSafe(e.AUDIO,(c||"").split(","));n=shaka.util.ManifestParserUtils.guessCodecsSafe(e.VIDEO,
|
|
789
|
+
(c||"").split(","));if(!m||!n){u.jumpTo(5);break}d.needSplitMuxedContent_=!0;return u.yield(d.initSourceBuffer_(e.AUDIO,b,m),6);case 6:return u.yield(d.initSourceBuffer_(e.VIDEO,b,n),7);case 7:return u.return();case 5:if(p=shaka.transmuxer.TransmuxerEngine.findTransmuxer(l))q=p(),d.transmuxers_.set(a,q),h=q.convertCodecs(a,l);case 4:r=d.addExtraFeaturesToMimeType_(h);d.destroyer_.ensureNotDestroyed();try{t=d.mediaSource_.addSourceBuffer(r)}catch(v){throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
|
|
790
|
+
shaka.util.Error.Category.MEDIA,shaka.util.Error.Code.MEDIA_SOURCE_OPERATION_THREW,v,"The mediaSource_ status was "+d.mediaSource_.readyState+" expected 'open'",null);}d.sequenceMode_&&(t.mode=shaka.media.MediaSourceEngine.SourceBufferMode_.SEQUENCE);d.eventManager_.listen(t,"error",function(){return d.onError_(a)});d.eventManager_.listen(t,"updateend",function(){return d.onUpdateEnd_(a)});d.sourceBuffers_.set(a,t);d.sourceBufferTypes_.set(a,h);d.expectedEncryption_.set(a,!!b.drmInfos.length);u.jumpToEnd()}})};
|
|
791
|
+
shaka.media.MediaSourceEngine.prototype.configure=function(a){this.config_=a;this.textEngine_&&this.textEngine_.setModifyCueCallback(a.modifyCueCallback)};shaka.media.MediaSourceEngine.prototype.isStreamingAllowed=function(){return this.streamingAllowed_&&!this.usingRemotePlayback_&&!this.reloadingMediaSource_};
|
|
792
|
+
shaka.media.MediaSourceEngine.prototype.reinitText=function(a,b,c){this.textEngine_||(this.textEngine_=new shaka.text.TextEngine(this.textDisplayer_),this.textEngine_.setModifyCueCallback(this.config_.modifyCueCallback));this.textEngine_.initParser(a,b,c||this.segmentRelativeVttTiming_,this.manifestType_)};shaka.media.MediaSourceEngine.prototype.ended=function(){return this.reloadingMediaSource_?!1:this.mediaSource_?"ended"==this.mediaSource_.readyState:!0};
|
|
793
|
+
shaka.media.MediaSourceEngine.prototype.closed=function(){return this.reloadingMediaSource_?!1:this.mediaSource_?"closed"==this.mediaSource_.readyState:!0};shaka.media.MediaSourceEngine.prototype.bufferStart=function(a){return this.sourceBuffers_.size?a==shaka.util.ManifestParserUtils.ContentType.TEXT?this.textEngine_.bufferStart():shaka.media.TimeRangesUtils.bufferStart(this.getBuffered_(a)):null};
|
|
794
|
+
shaka.media.MediaSourceEngine.prototype.bufferEnd=function(a){return this.sourceBuffers_.size?a==shaka.util.ManifestParserUtils.ContentType.TEXT?this.textEngine_.bufferEnd():shaka.media.TimeRangesUtils.bufferEnd(this.getBuffered_(a)):null};shaka.media.MediaSourceEngine.prototype.isBuffered=function(a,b){if(a==shaka.util.ManifestParserUtils.ContentType.TEXT)return this.textEngine_.isBuffered(b);a=this.getBuffered_(a);return shaka.media.TimeRangesUtils.isBuffered(a,b)};
|
|
789
795
|
shaka.media.MediaSourceEngine.prototype.bufferedAheadOf=function(a,b){if(a==shaka.util.ManifestParserUtils.ContentType.TEXT)return this.textEngine_.bufferedAheadOf(b);a=this.getBuffered_(a);return shaka.media.TimeRangesUtils.bufferedAheadOf(a,b)};
|
|
790
796
|
shaka.media.MediaSourceEngine.prototype.getBufferedInfo=function(){var a=shaka.util.ManifestParserUtils.ContentType,b=shaka.media.TimeRangesUtils;a={total:this.reloadingMediaSource_?[]:b.getBufferedInfo(this.video_.buffered),audio:b.getBufferedInfo(this.getBuffered_(a.AUDIO)),video:b.getBufferedInfo(this.getBuffered_(a.VIDEO)),text:[]};if(this.textEngine_){b=this.textEngine_.bufferStart();var c=this.textEngine_.bufferEnd();null!=b&&null!=c&&a.text.push({start:b,end:c})}return a};
|
|
791
|
-
shaka.media.MediaSourceEngine.prototype.getBuffered_=function(a){if(this.reloadingMediaSource_||this.usingRemotePlayback_)return null;try{return this.sourceBuffers_
|
|
797
|
+
shaka.media.MediaSourceEngine.prototype.getBuffered_=function(a){if(this.reloadingMediaSource_||this.usingRemotePlayback_)return null;try{return this.sourceBuffers_.get(a).buffered}catch(b){return this.sourceBuffers_.has(a)&&shaka.log.error("failed to get buffered range for "+a,b),null}};shaka.media.MediaSourceEngine.prototype.getCaptionParser=function(a){return new shaka.media.ClosedCaptionParser(a)};
|
|
792
798
|
shaka.media.MediaSourceEngine.prototype.getTimestampAndDispatchMetadata=function(a,b,c,d,e){var f=this,g=null,h=[],k=shaka.util.BufferUtils.toUint8(b);if(shaka.util.MimeUtils.RAW_FORMATS.includes(e))b=shaka.util.Id3Utils.getID3Frames(k),b.length&&c&&((a=b.find(function(q){return"com.apple.streaming.transportStreamTimestamp"===q.description}))&&(g=Math.round(a.data)/1E3),this.playerInterface_.onMetadata([{cueTime:c.startTime,data:k,frames:b,dts:c.startTime,pts:c.startTime}],0,c.endTime));else if(e.includes("/mp4")&&
|
|
793
799
|
c&&c.initSegmentReference&&c.initSegmentReference.timescale){var l=c.initSegmentReference.timescale;if(!isNaN(l)){var m=null!=d.emsgSchemeIdUris&&0<d.emsgSchemeIdUris.length||this.config_.dispatchAllEmsgBoxes;k=shaka.util.Mp4Parser;var n=0,p=!1;a=new k;m&&a.fullBox("emsg",function(q){return f.parseEMSG_(c,d.emsgSchemeIdUris,q)});a.fullBox("prft",function(q){return f.parsePrft_(l,q)}).box("moof",k.children).box("traf",k.children).fullBox("tfdt",function(q){p||(goog.asserts.assert(0==q.version||1==
|
|
794
|
-
q.version,"TFDT version can only be 0 or 1"),n=shaka.util.Mp4BoxParsers.parseTFDTInaccurate(q.reader,q.version).baseMediaDecodeTime/l,p=!0,m||q.parser.stop())}).parse(b,!0);p&&0==c.timestampOffset&&(g=n)}}else e.includes("/mp4")||e.includes("/webm")||!shaka.util.TsParser.probe(k)||(this.tsParsers_
|
|
800
|
+
q.version,"TFDT version can only be 0 or 1"),n=shaka.util.Mp4BoxParsers.parseTFDTInaccurate(q.reader,q.version).baseMediaDecodeTime/l,p=!0,m||q.parser.stop())}).parse(b,!0);p&&0==c.timestampOffset&&(g=n)}}else e.includes("/mp4")||e.includes("/webm")||!shaka.util.TsParser.probe(k)||(this.tsParsers_.has(a)?this.tsParsers_.get(a).clearData():this.tsParsers_.set(a,new shaka.util.TsParser),h=this.tsParsers_.get(a).parse(k),b=h.getStartTime(a),null!=b&&(g=b),h=h.getMetadata());return{timestamp:g,metadata:h}};
|
|
795
801
|
shaka.media.MediaSourceEngine.prototype.parseEMSG_=function(a,b,c){if(0===c.version){var d=c.reader.readTerminatedString();var e=c.reader.readTerminatedString();var f=c.reader.readUint32();var g=c.reader.readUint32();var h=c.reader.readUint32();var k=c.reader.readUint32();var l=a.startTime+g/f}else f=c.reader.readUint32(),l=c.reader.readUint64()/f+a.timestampOffset,g=l-a.startTime,h=c.reader.readUint32(),k=c.reader.readUint32(),d=c.reader.readTerminatedString(),e=c.reader.readTerminatedString();a=
|
|
796
802
|
c.reader.readBytes(c.reader.getLength()-c.reader.getPosition());if(b&&b.includes(d)||this.config_.dispatchAllEmsgBoxes)if("urn:mpeg:dash:event:2012"==d)this.playerInterface_.onManifestUpdate();else if(b=l+h/f,k={startTime:l,endTime:b,schemeIdUri:d,value:e,timescale:f,presentationTimeDelta:g,eventDuration:h,id:k,messageData:a},f=shaka.util.FakeEvent.EventName.Emsg,k=(new Map).set("detail",k),f=new shaka.util.FakeEvent(f,k),f.cancelable=!0,this.playerInterface_.onEvent(f),!f.defaultPrevented&&("https://aomedia.org/emsg/ID3"==
|
|
797
803
|
d||"https://developer.apple.com/streaming/emsg-id3"==d)&&(d=shaka.util.Id3Utils.getID3Frames(a),d.length))this.playerInterface_.onMetadata([{cueTime:l,data:a,frames:d,dts:l,pts:l}],0,b)};
|
|
798
804
|
shaka.media.MediaSourceEngine.prototype.parsePrft_=function(a,b){goog.asserts.assert(0==b.version||1==b.version,"PRFT version can only be 0 or 1");b=shaka.util.Mp4BoxParsers.parsePRFTInaccurate(b.reader,b.version);var c=this.convertNtp_(b.ntpTimestamp);b={wallClockTime:c,programStartDate:new Date(c-b.mediaTime/a*1E3)};a=shaka.util.FakeEvent.EventName.Prft;b=(new Map).set("detail",b);a=new shaka.util.FakeEvent(a,b);this.playerInterface_.onEvent(a)};
|
|
799
805
|
shaka.media.MediaSourceEngine.prototype.convertNtp_=function(a){var b=new Date(Date.UTC(1900,0,1,0,0,0));return(new Date(b.getTime()+a)).getTime()};
|
|
800
|
-
shaka.media.MediaSourceEngine.prototype.appendBuffer=function(a,b,c,d,e,f,g,h,k){f=void 0===f?!1:f;g=void 0===g?!1:g;h=void 0===h?!1:h;k=void 0===k?!1:k;var l=this,m,n,p,q,r,t,u,v,w,x,
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
null==l.firstAudioTimestamp_&&a==m.AUDIO&&(l.firstAudioTimestamp_=t,l.firstAudioReferenceStartTime_=c.startTime,null!=l.firstVideoTimestamp_&&(w=0,l.firstVideoReferenceStartTime_==l.firstAudioReferenceStartTime_&&(w=l.firstVideoTimestamp_-l.firstAudioTimestamp_),l.audioCompensation_.resolve(w))),x=t,
|
|
804
|
-
(l.enqueueOperation_(a,function(){return l.abort_(a)},null),l.enqueueOperation_(a,function(){return l.setTimestampOffset_(a,p)},null))),(
|
|
805
|
-
D.length&&l.textEngine_.storeAndAppendClosedCaptions(D,c.startTime,c.endTime,p)):l.captionParser_.init(b,g));if(!l.transmuxers_
|
|
806
|
-
a!=m.AUDIO||!l.sourceBuffers_
|
|
807
|
-
K=shaka.media.TimeRangesUtils.computeAddedRange(
|
|
806
|
+
shaka.media.MediaSourceEngine.prototype.appendBuffer=function(a,b,c,d,e,f,g,h,k){f=void 0===f?!1:f;g=void 0===g?!1:g;h=void 0===h?!1:h;k=void 0===k?!1:k;var l=this,m,n,p,q,r,t,u,v,w,x,z,B,A,y,C,D,E,F,H,J,K,L,G,M;return $jscomp.asyncExecutePromiseGeneratorProgram(function(I){switch(I.nextAddress){case 1:m=shaka.util.ManifestParserUtils.ContentType;if(a!=m.TEXT){I.jumpTo(2);break}if(l.manifestType_!=shaka.media.ManifestParser.HLS){I.jumpTo(3);break}return I.yield(l.textSequenceModeOffset_,4);case 4:n=
|
|
807
|
+
I.yieldResult,l.textEngine_.setTimestampOffset(n);case 3:return I.yield(l.textEngine_.appendBuffer(b,c?c.startTime:null,c?c.endTime:null,c?c.getUris()[0]:null),5);case 5:return I.return();case 2:if(k||!l.needSplitMuxedContent_){I.jumpTo(6);break}return I.yield(l.appendBuffer(m.AUDIO,b,c,d,e,f,g,h,!0),7);case 7:return I.yield(l.appendBuffer(m.VIDEO,b,c,d,e,f,g,h,!0),8);case 8:return I.return();case 6:if(!l.sourceBuffers_.has(a))return shaka.log.warning("Attempted to restore a non-existent source buffer"),
|
|
808
|
+
I.return();p=l.sourceBuffers_.get(a).timestampOffset;q=l.sourceBufferTypes_.get(a);l.transmuxers_.has(a)&&(q=l.transmuxers_.get(a).getOriginalMimeType());if(c&&(r=l.getTimestampAndDispatchMetadata(a,b,c,d,q),t=r.timestamp,u=r.metadata,null!=t&&(null==l.firstVideoTimestamp_&&a==m.VIDEO&&(l.firstVideoTimestamp_=t,l.firstVideoReferenceStartTime_=c.startTime,null!=l.firstAudioTimestamp_&&(v=0,l.firstVideoReferenceStartTime_==l.firstAudioReferenceStartTime_&&(v=l.firstVideoTimestamp_-l.firstAudioTimestamp_),
|
|
809
|
+
l.audioCompensation_.resolve(v))),null==l.firstAudioTimestamp_&&a==m.AUDIO&&(l.firstAudioTimestamp_=t,l.firstAudioReferenceStartTime_=c.startTime,null!=l.firstVideoTimestamp_&&(w=0,l.firstVideoReferenceStartTime_==l.firstAudioReferenceStartTime_&&(w=l.firstVideoTimestamp_-l.firstAudioTimestamp_),l.audioCompensation_.resolve(w))),x=t,z=shaka.util.MimeUtils.RAW_FORMATS,!l.sequenceMode_&&z.includes(l.sourceBufferTypes_.get(a))&&(x=0),B=c.startTime-x,A=Math.abs(p-B),(.001<=A||f||g)&&(!h||0<B||!p)&&(p=
|
|
810
|
+
B,l.attemptTimestampOffsetCalculation_&&(l.enqueueOperation_(a,function(){return l.abort_(a)},null),l.enqueueOperation_(a,function(){return l.setTimestampOffset_(a,p)},null))),(y=a==m.VIDEO||!l.sourceBuffers_.has(m.VIDEO))&&l.textSequenceModeOffset_.resolve(p)),u.length))l.playerInterface_.onMetadata(u,p,c?c.endTime:null);e&&a==m.VIDEO&&(l.textEngine_||l.reinitText(shaka.util.MimeUtils.CEA608_CLOSED_CAPTION_MIMETYPE,l.sequenceMode_,!1),l.captionParser_||(C=q.split(";",1)[0],l.captionParser_=l.getCaptionParser(C)),
|
|
811
|
+
c?(D=l.captionParser_.parseFrom(b),D.length&&l.textEngine_.storeAndAppendClosedCaptions(D,c.startTime,c.endTime,p)):l.captionParser_.init(b,g));if(!l.transmuxers_.has(a)){I.jumpTo(9);break}return I.yield(l.transmuxers_.get(a).transmux(b,d,c,l.mediaSource_.duration,a),10);case 10:b=I.yieldResult;case 9:b=l.workAroundBrokenPlatforms_(b,c?c.startTime:null,a,c?c.getUris()[0]:null);if(!c||!l.sequenceMode_||a==m.TEXT){I.jumpTo(11);break}if(!f&&!g){I.jumpTo(11);break}E=c.startTime;if(l.manifestType_!=shaka.media.ManifestParser.HLS||
|
|
812
|
+
l.needSplitMuxedContent_||a!=m.AUDIO||!l.sourceBuffers_.has(m.VIDEO)){I.jumpTo(13);break}return I.yield(l.audioCompensation_,14);case 14:F=I.yieldResult,.1<Math.abs(F)&&(E-=F);case 13:l.enqueueOperation_(a,function(){return l.abort_(a)},null),l.enqueueOperation_(a,function(){return l.setTimestampOffset_(a,E)},null);case 11:return H=null,I.yield(l.enqueueOperation_(a,function(){goog.DEBUG&&c&&!c.isPreload()&&!h&&(H=l.getBuffered_(a));l.append_(a,b,p)},c?c.getUris()[0]:null),15);case 15:goog.DEBUG&&
|
|
813
|
+
c&&!c.isPreload()&&!h&&(J=l.getBuffered_(a),K=shaka.media.TimeRangesUtils.computeAddedRange(H,J))&&(L=c.endTime-c.startTime,G=K.end-K.start,M=Math.abs(K.end-c.endTime),.1<L&&(M>L/2||.03<Math.abs(L-G))&&shaka.log.error("Possible encoding problem detected!","Unexpected buffered range for reference",c,"from URIs",c.getUris(),"should be",{start:c.startTime,end:c.endTime},"but got",K)),I.jumpToEnd()}})};
|
|
808
814
|
shaka.media.MediaSourceEngine.prototype.setSelectedClosedCaptionId=function(a){var b=this.bufferEnd(shaka.util.ManifestParserUtils.ContentType.VIDEO)||0;this.textEngine_.setSelectedClosedCaptionId(a,b)};shaka.media.MediaSourceEngine.prototype.clearSelectedClosedCaptionId=function(){this.textEngine_&&this.textEngine_.setSelectedClosedCaptionId("",0)};
|
|
809
815
|
shaka.media.MediaSourceEngine.prototype.remove=function(a,b,c){var d=this,e;return $jscomp.asyncExecutePromiseGeneratorProgram(function(f){return 1==f.nextAddress?(e=shaka.util.ManifestParserUtils.ContentType,a==e.TEXT?f.yield(d.textEngine_.remove(b,c),0):f.yield(d.enqueueOperation_(a,function(){return d.remove_(a,b,c)},null),4)):d.needSplitMuxedContent_?f.yield(d.enqueueOperation_(e.AUDIO,function(){return d.remove_(e.AUDIO,b,c)},null),0):f.jumpTo(0)})};
|
|
810
816
|
shaka.media.MediaSourceEngine.prototype.clear=function(a){var b=this,c;return $jscomp.asyncExecutePromiseGeneratorProgram(function(d){return 1==d.nextAddress?(c=shaka.util.ManifestParserUtils.ContentType,a==c.TEXT?b.textEngine_?d.yield(b.textEngine_.remove(0,Infinity),0):d.return():d.yield(b.enqueueOperation_(a,function(){return b.remove_(a,0,b.mediaSource_.duration)},null),4)):b.needSplitMuxedContent_?d.yield(b.enqueueOperation_(c.AUDIO,function(){return b.remove_(c.AUDIO,0,b.mediaSource_.duration)},
|
|
@@ -816,34 +822,36 @@ null));return m.length?p.yield(Promise.all(m),0):p.jumpTo(0)})};
|
|
|
816
822
|
shaka.media.MediaSourceEngine.prototype.resync=function(a,b){var c=this,d,e;return $jscomp.asyncExecutePromiseGeneratorProgram(function(f){if(1==f.nextAddress){d=shaka.util.ManifestParserUtils.ContentType;if(a==d.TEXT)return f.return();a==d.VIDEO&&(c.textSequenceModeOffset_=new shaka.util.PublicPromise);if(!c.sequenceMode_||(e=c.bufferEnd(a))&&.1>Math.abs(e-b))return f.return();c.enqueueOperation_(a,function(){return c.abort_(a)},null);c.needSplitMuxedContent_&&c.enqueueOperation_(d.AUDIO,function(){return c.abort_(d.AUDIO)},
|
|
817
823
|
null);return f.yield(c.enqueueOperation_(a,function(){return c.setTimestampOffset_(a,b)},null),2)}return c.needSplitMuxedContent_?f.yield(c.enqueueOperation_(d.AUDIO,function(){return c.setTimestampOffset_(d.AUDIO,b)},null),0):f.jumpTo(0)})};
|
|
818
824
|
shaka.media.MediaSourceEngine.prototype.endOfStream=function(a){var b=this;return $jscomp.asyncExecutePromiseGeneratorProgram(function(c){return c.yield(b.enqueueBlockingOperation_(function(){b.ended()||b.closed()||(a?b.mediaSource_.endOfStream(a):b.mediaSource_.endOfStream())}),0)})};
|
|
819
|
-
shaka.media.MediaSourceEngine.prototype.setDuration=function(a){var b=this;return $jscomp.asyncExecutePromiseGeneratorProgram(function(c){return c.yield(b.enqueueBlockingOperation_(function(){if(a<b.mediaSource_.duration)for(var d
|
|
825
|
+
shaka.media.MediaSourceEngine.prototype.setDuration=function(a){var b=this;return $jscomp.asyncExecutePromiseGeneratorProgram(function(c){return c.yield(b.enqueueBlockingOperation_(function(){if(a<b.mediaSource_.duration)for(var d=$jscomp.makeIterator(b.sourceBuffers_.keys()),e=d.next();!e.done;e=d.next()){e=e.value;var f={start:function(){},p:new shaka.util.PublicPromise,uri:null};b.queues_.get(e).unshift(f)}b.mediaSource_.duration=a;b.lastDuration_=a}),0)})};
|
|
826
|
+
shaka.media.MediaSourceEngine.prototype.getDuration=function(){return this.mediaSource_.duration};
|
|
820
827
|
shaka.media.MediaSourceEngine.prototype.setLiveSeekableRange=function(a,b){var c=this;return $jscomp.asyncExecutePromiseGeneratorProgram(function(d){goog.asserts.assert("setLiveSeekableRange"in c.mediaSource_,"Using setLiveSeekableRange on not supported platform");return c.ended()||c.closed()?d.return():d.yield(c.enqueueBlockingOperation_(function(){c.ended()||c.closed()||c.mediaSource_.setLiveSeekableRange(a,b)}),0)})};
|
|
821
828
|
shaka.media.MediaSourceEngine.prototype.clearLiveSeekableRange=function(){var a=this;return $jscomp.asyncExecutePromiseGeneratorProgram(function(b){goog.asserts.assert("clearLiveSeekableRange"in a.mediaSource_,"Using clearLiveSeekableRange on not supported platform");return a.ended()||a.closed()?b.return():b.yield(a.enqueueBlockingOperation_(function(){a.ended()||a.closed()||a.mediaSource_.clearLiveSeekableRange()}),0)})};
|
|
822
|
-
shaka.media.MediaSourceEngine.prototype.append_=function(a,b,c){a==shaka.util.ManifestParserUtils.ContentType.VIDEO&&this.lcevcDec_&&this.lcevcDec_.appendBuffer(b,c);this.sourceBuffers_
|
|
823
|
-
shaka.media.MediaSourceEngine.prototype.abort_=function(a){var b=this.sourceBuffers_
|
|
824
|
-
shaka.media.MediaSourceEngine.prototype.setTimestampOffset_=function(a,b){0>b&&(b+=.001);this.sourceBuffers_
|
|
825
|
-
shaka.media.MediaSourceEngine.prototype.onError_=function(a){var b=this.queues_
|
|
826
|
-
shaka.media.MediaSourceEngine.prototype.onUpdateEnd_=function(a){if(!this.reloadingMediaSource_){var b=this.queues_
|
|
827
|
-
shaka.media.MediaSourceEngine.prototype.enqueueOperation_=function(a,b,c){this.destroyer_.ensureNotDestroyed();b={start:b,p:new shaka.util.PublicPromise,uri:c};this.queues_
|
|
828
|
-
shaka.media.MediaSourceEngine.prototype.enqueueBlockingOperation_=function(a){var b=this,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x;return $jscomp.asyncExecutePromiseGeneratorProgram(function(
|
|
829
|
-
b.queues_
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
shaka.media.MediaSourceEngine.prototype.startOperation_=function(a){var b=this.queues_
|
|
833
|
-
this.popFromQueue_(a)}};shaka.media.MediaSourceEngine.prototype.getTextDisplayer=function(){goog.asserts.assert(this.textDisplayer_,"TextDisplayer should only be null when this is destroyed");return this.textDisplayer_};shaka.media.MediaSourceEngine.prototype.setTextDisplayer=function(a){this.textDisplayer_=a;this.textEngine_&&this.textEngine_.setDisplayer(a)};shaka.media.MediaSourceEngine.prototype.setSegmentRelativeVttTiming=function(a){this.segmentRelativeVttTiming_=a};
|
|
834
|
-
shaka.media.MediaSourceEngine.prototype.workAroundBrokenPlatforms_=function(a,b,c,d){var e=shaka.util.Platform;b=null==b;var f=this.expectedEncryption_
|
|
835
|
-
shaka.
|
|
836
|
-
|
|
837
|
-
shaka.media.MediaSourceEngine.prototype.
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
829
|
+
shaka.media.MediaSourceEngine.prototype.append_=function(a,b,c){a==shaka.util.ManifestParserUtils.ContentType.VIDEO&&this.lcevcDec_&&this.lcevcDec_.appendBuffer(b,c);this.sourceBuffers_.get(a).appendBuffer(b)};shaka.media.MediaSourceEngine.prototype.remove_=function(a,b,c){if(c<=b)this.onUpdateEnd_(a);else this.sourceBuffers_.get(a).remove(b,c)};
|
|
830
|
+
shaka.media.MediaSourceEngine.prototype.abort_=function(a){var b=this.sourceBuffers_.get(a),c=b.appendWindowStart,d=b.appendWindowEnd;b.abort();b.appendWindowStart=c;b.appendWindowEnd=d;this.onUpdateEnd_(a)};shaka.media.MediaSourceEngine.prototype.flush_=function(a){goog.asserts.assert(0==this.video_.buffered.length,"MediaSourceEngine.flush_ should only be used after clearing all data!");this.video_.currentTime-=.001;this.onUpdateEnd_(a)};
|
|
831
|
+
shaka.media.MediaSourceEngine.prototype.setTimestampOffset_=function(a,b){0>b&&(b+=.001);this.sourceBuffers_.get(a).timestampOffset=b;this.onUpdateEnd_(a)};shaka.media.MediaSourceEngine.prototype.setAppendWindow_=function(a,b,c){var d=this.sourceBuffers_.get(a);d.appendWindowStart=0;d.appendWindowEnd=c;d.appendWindowStart=b;this.onUpdateEnd_(a)};
|
|
832
|
+
shaka.media.MediaSourceEngine.prototype.onError_=function(a){var b=this.queues_.get(a)[0];goog.asserts.assert(b,"Spurious error event!");goog.asserts.assert(!this.sourceBuffers_.get(a).updating,"SourceBuffer should not be updating on error!");b.p.reject(new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MEDIA,shaka.util.Error.Code.MEDIA_SOURCE_OPERATION_FAILED,this.video_.error?this.video_.error.code:0,b.uri))};
|
|
833
|
+
shaka.media.MediaSourceEngine.prototype.onUpdateEnd_=function(a){if(!this.reloadingMediaSource_){var b=this.queues_.get(a)[0];goog.asserts.assert(b,"Spurious updateend event!");b&&(goog.asserts.assert(!this.sourceBuffers_.get(a).updating,"SourceBuffer should not be updating on updateend!"),b.p.resolve(),this.popFromQueue_(a))}};
|
|
834
|
+
shaka.media.MediaSourceEngine.prototype.enqueueOperation_=function(a,b,c){this.destroyer_.ensureNotDestroyed();b={start:b,p:new shaka.util.PublicPromise,uri:c};this.queues_.get(a).push(b);1==this.queues_.get(a).length&&this.startOperation_(a);return b.p};
|
|
835
|
+
shaka.media.MediaSourceEngine.prototype.enqueueBlockingOperation_=function(a){var b=this,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,z,B;return $jscomp.asyncExecutePromiseGeneratorProgram(function(A){switch(A.nextAddress){case 1:b.destroyer_.ensureNotDestroyed();c=[];d=Array.from(b.sourceBuffers_.keys());e=$jscomp.makeIterator(d);f=e.next();for(g={};!f.done;g={ready:void 0},f=e.next())h=f.value,g.ready=new shaka.util.PublicPromise,k={start:function(y){return function(){return y.ready.resolve()}}(g),p:g.ready,
|
|
836
|
+
uri:null},l=b.queues_.get(h),l.push(k),c.push(g.ready),1==l.length&&k.start();A.setCatchFinallyBlocks(2);return A.yield(Promise.all(c),4);case 4:A.leaveTryBlock(3);break;case 2:m=A.enterCatchBlock();goog.asserts.assert(b.destroyer_.destroyed(),"Should be destroyed by now");if(goog.DEBUG)for(n=$jscomp.makeIterator(d),p=n.next();!p.done;p=n.next())q=p.value,r=b.queues_.get(q),r.length&&(goog.asserts.assert(1==r.length,"Should be at most one item in queue!"),goog.asserts.assert(c.includes(r[0].p),"The item in queue should be one of our waiters!"),
|
|
837
|
+
r.shift());throw m;case 3:if(goog.DEBUG)for(t=$jscomp.makeIterator(d),u=t.next();!u.done;u=t.next())v=u.value,goog.asserts.assert(0==b.sourceBuffers_.get(v).updating,"SourceBuffers should not be updating after a blocking op!");A.setCatchFinallyBlocks(5,6);return A.yield(a(),6);case 6:A.enterFinallyBlock();w=$jscomp.makeIterator(d);for(x=w.next();!x.done;x=w.next())z=x.value,b.popFromQueue_(z);A.leaveFinallyBlock(0);break;case 5:throw B=A.enterCatchBlock(),new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
|
|
838
|
+
shaka.util.Error.Category.MEDIA,shaka.util.Error.Code.MEDIA_SOURCE_OPERATION_THREW,B,b.video_.error||"No error in the media element",null);}})};shaka.media.MediaSourceEngine.prototype.popFromQueue_=function(a){goog.asserts.assert(this.queues_.has(a),"Queue should exist");this.queues_.get(a).shift();this.startOperation_(a)};
|
|
839
|
+
shaka.media.MediaSourceEngine.prototype.startOperation_=function(a){var b=this.queues_.get(a)[0];if(b)try{b.start()}catch(c){"QuotaExceededError"==c.name?b.p.reject(new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MEDIA,shaka.util.Error.Code.QUOTA_EXCEEDED_ERROR,a)):b.p.reject(new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MEDIA,shaka.util.Error.Code.MEDIA_SOURCE_OPERATION_THREW,c,this.video_.error||"No error in the media element",
|
|
840
|
+
b.uri)),this.popFromQueue_(a)}};shaka.media.MediaSourceEngine.prototype.getTextDisplayer=function(){goog.asserts.assert(this.textDisplayer_,"TextDisplayer should only be null when this is destroyed");return this.textDisplayer_};shaka.media.MediaSourceEngine.prototype.setTextDisplayer=function(a){this.textDisplayer_=a;this.textEngine_&&this.textEngine_.setDisplayer(a)};shaka.media.MediaSourceEngine.prototype.setSegmentRelativeVttTiming=function(a){this.segmentRelativeVttTiming_=a};
|
|
841
|
+
shaka.media.MediaSourceEngine.prototype.workAroundBrokenPlatforms_=function(a,b,c,d){var e=shaka.util.Platform;b=null==b;var f=this.expectedEncryption_.get(c),g=this.playerInterface_.getKeySystem();this.config_.insertFakeEncryptionInInit&&b&&f&&e.requiresEncryptionInfoInAllInitSegments(g)&&"mp4"==shaka.util.MimeUtils.getContainerType(this.sourceBufferTypes_.get(c))&&(shaka.log.debug("Forcing fake encryption information in init segment."),a=shaka.media.ContentWorkarounds.fakeEncryption(a,d));b&&e.requiresEC3InitSegments()&&
|
|
842
|
+
"mp4"==shaka.util.MimeUtils.getContainerType(this.sourceBufferTypes_.get(c))&&(shaka.log.debug("Forcing fake EC-3 information in init segment."),a=shaka.media.ContentWorkarounds.fakeEC3(a));return a};
|
|
843
|
+
shaka.media.MediaSourceEngine.prototype.change_=function(a,b,c){if(a===shaka.util.ManifestParserUtils.ContentType.TEXT)shaka.log.debug("Change not supported for "+a);else{var d=this.sourceBufferTypes_.get(a);shaka.log.debug("Change Type: "+d+" -> "+b);shaka.media.Capabilities.isChangeTypeSupported()?(this.transmuxers_.has(a)&&(this.transmuxers_.get(a).destroy(),this.transmuxers_.delete(a)),c&&this.transmuxers_.set(a,c),c=this.addExtraFeaturesToMimeType_(b),this.sourceBuffers_.get(a).changeType(c),
|
|
844
|
+
this.sourceBufferTypes_.set(a,b)):shaka.log.debug("Change Type not supported");this.onUpdateEnd_(a)}};shaka.media.MediaSourceEngine.prototype.changeType=function(a,b,c){var d=this;return this.enqueueOperation_(a,function(){return d.change_(a,b,c)},null)};
|
|
845
|
+
shaka.media.MediaSourceEngine.prototype.reset_=function(a){var b=this,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,z,B,A;return $jscomp.asyncExecutePromiseGeneratorProgram(function(y){switch(y.nextAddress){case 1:c=shaka.util.ManifestParserUtils.ContentType;b.reloadingMediaSource_=!0;b.needSplitMuxedContent_=!1;d=b.video_.currentTime;e=b.video_.autoplay;f=b.video_.paused;b.playbackHasBegun_&&(b.video_.autoplay=!1);y.setFinallyBlock(2);b.eventManager_.removeAll();g=$jscomp.makeIterator(b.transmuxers_.values());
|
|
846
|
+
for(h=g.next();!h.done;h=g.next())k=h.value,k.destroy();l=$jscomp.makeIterator(b.sourceBuffers_.values());for(m=l.next();!m.done;m=l.next()){n=m.value;try{b.mediaSource_.removeSourceBuffer(n)}catch(C){shaka.log.debug("Exception on removeSourceBuffer",C)}}b.transmuxers_.clear();b.sourceBuffers_.clear();p=b.mediaSource_.duration;b.mediaSourceOpen_=new shaka.util.PublicPromise;b.mediaSource_=b.createMediaSource(b.mediaSourceOpen_);return y.yield(b.mediaSourceOpen_,4);case 4:!isNaN(p)&&p?b.mediaSource_.duration=
|
|
847
|
+
p:!isNaN(b.lastDuration_)&&b.lastDuration_&&(b.mediaSource_.duration=b.lastDuration_),q=new shaka.util.PublicPromise,r=b.mediaSource_.sourceBuffers,t=a.size,u=0,v=function(){u++;u===t&&(q.resolve(),b.eventManager_.unlisten(r,"addsourcebuffer",v))},b.eventManager_.listen(r,"addsourcebuffer",v),w=$jscomp.makeIterator(a.keys()),x=w.next();case 5:if(x.done)return(A=a.get(c.AUDIO))&&A.isAudioMuxedInVideo&&(b.needSplitMuxedContent_=!0),b.needSplitMuxedContent_&&!b.queues_.has(c.AUDIO)&&b.queues_.set(c.AUDIO,
|
|
848
|
+
[]),b.video_.currentTime=d,y.yield(q,2);z=x.value;B=a.get(z);return y.yield(b.initSourceBuffer_(z,B,B.codecs),6);case 6:x=w.next();y.jumpTo(5);break;case 2:y.enterFinallyBlock(),b.reloadingMediaSource_=!1,b.destroyer_.ensureNotDestroyed(),b.eventManager_.listenOnce(b.video_,"canplaythrough",function(){b.destroyer_.destroyed()||(b.video_.autoplay=e,f||b.video_.play())}),y.leaveFinallyBlock(0)}})};shaka.media.MediaSourceEngine.prototype.reset=function(a){var b=this;return this.enqueueBlockingOperation_(function(){return b.reset_(a)})};
|
|
841
849
|
shaka.media.MediaSourceEngine.prototype.getRealInfo_=function(a,b,c){var d=shaka.util.ManifestParserUtils.ContentType,e=shaka.util.MimeUtils,f=!1,g=shaka.util.ManifestParserUtils.guessCodecsSafe(d.AUDIO,(c||"").split(",")),h=shaka.util.ManifestParserUtils.guessCodecsSafe(d.VIDEO,(c||"").split(",")),k=h;a==d.AUDIO&&(k=g);k||(k=c);c=shaka.util.MimeUtils.getFullType(b,k);var l=this.config_.forceTransmux;if(!shaka.media.Capabilities.isTypeSupported(c)||!this.sequenceMode_&&shaka.util.MimeUtils.RAW_FORMATS.includes(c))l=
|
|
842
850
|
!0;d=shaka.transmuxer.TransmuxerEngine;if(l&&(b=shaka.util.MimeUtils.getFullTypeWithAllCodecs(b,k),k=d.findTransmuxer(b))){var m=k();g&&h&&(f=!0);c=m.convertCodecs(a,b)}a=e.getNormalizedCodec(e.getCodecs(c));e=e.getBasicType(c);return{transmuxer:m,transmuxerMuxed:f,basicType:e,codec:a,mimeType:c}};
|
|
843
|
-
shaka.media.MediaSourceEngine.prototype.codecSwitchIfNecessary_=function(a,b,c,d){var e=this,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x;return $jscomp.asyncExecutePromiseGeneratorProgram(function(
|
|
844
|
-
t=!0;n&&(u=e.getRealInfo_(f.AUDIO,b,c),v=g.getNormalizedCodec(g.getCodecs(e.sourceBufferTypes_
|
|
845
|
-
m.destroy()),
|
|
846
|
-
shaka.media.MediaSourceEngine.prototype.isCodecSwitchNecessary_=function(a,b,c){if(a==shaka.util.ManifestParserUtils.ContentType.TEXT)return!1;var d=shaka.util.MimeUtils,e=d.getNormalizedCodec(d.getCodecs(this.sourceBufferTypes_
|
|
851
|
+
shaka.media.MediaSourceEngine.prototype.codecSwitchIfNecessary_=function(a,b,c,d){var e=this,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x;return $jscomp.asyncExecutePromiseGeneratorProgram(function(z){if(1==z.nextAddress){f=shaka.util.ManifestParserUtils.ContentType;if(a==f.TEXT)return z.return(!1);g=shaka.util.MimeUtils;h=g.getNormalizedCodec(g.getCodecs(e.sourceBufferTypes_.get(a)));k=g.getBasicType(e.sourceBufferTypes_.get(a));l=e.getRealInfo_(a,b,c);m=l.transmuxer;n=l.transmuxerMuxed;p=l.basicType;q=l.codec;
|
|
852
|
+
r=l.mimeType;t=!0;n&&(u=e.getRealInfo_(f.AUDIO,b,c),v=g.getNormalizedCodec(g.getCodecs(e.sourceBufferTypes_.get(f.AUDIO))),w=g.getBasicType(e.sourceBufferTypes_.get(f.AUDIO)),t=v==u.codec&&w==u.basicType,u.transmuxer&&u.transmuxer.destroy());if(h===q&&k===p&&t)return e.transmuxers_.has(a)&&!m?(e.transmuxers_.get(a).destroy(),e.transmuxers_.delete(a)):!e.transmuxers_.has(a)&&m?e.transmuxers_.set(a,m):m&&(e.transmuxers_.has(a)&&e.transmuxers_.get(a).transmux!=m.transmux?(e.transmuxers_.get(a).destroy(),
|
|
853
|
+
e.transmuxers_.delete(a),e.transmuxers_.set(a,m)):m.destroy()),z.return(!1);x=!0;if(e.needSplitMuxedContent_||n&&m&&!e.transmuxers_.has(a))x=!1;if(x&&e.config_.codecSwitchingStrategy===shaka.config.CodecSwitchingStrategy.SMOOTH&&shaka.media.Capabilities.isChangeTypeSupported())return z.yield(e.changeType(a,r,m),3);m&&m.destroy();return z.yield(e.reset(d),3)}return z.return(!0)})};
|
|
854
|
+
shaka.media.MediaSourceEngine.prototype.isCodecSwitchNecessary_=function(a,b,c){if(a==shaka.util.ManifestParserUtils.ContentType.TEXT)return!1;var d=shaka.util.MimeUtils,e=d.getNormalizedCodec(d.getCodecs(this.sourceBufferTypes_.get(a))),f=d.getBasicType(this.sourceBufferTypes_.get(a)),g=shaka.util.MimeUtils.getFullType(b,c),h=this.config_.forceTransmux;if(!shaka.media.Capabilities.isTypeSupported(g)||!this.sequenceMode_&&shaka.util.MimeUtils.RAW_FORMATS.includes(g))h=!0;b=shaka.util.MimeUtils.getFullTypeWithAllCodecs(b,
|
|
847
855
|
c);c=shaka.transmuxer.TransmuxerEngine;h&&(h=c.findTransmuxer(b))&&(h=h(),g=h.convertCodecs(a,b),h.destroy());a=d.getNormalizedCodec(d.getCodecs(g));d=d.getBasicType(g);return e!==a||f!==d};shaka.media.MediaSourceEngine.prototype.isResetMediaSourceNecessary=function(a,b,c){return this.isCodecSwitchNecessary_(a,b,c)?this.config_.codecSwitchingStrategy!==shaka.config.CodecSwitchingStrategy.SMOOTH||!shaka.media.Capabilities.isChangeTypeSupported()||this.needSplitMuxedContent_:!1};
|
|
848
856
|
shaka.media.MediaSourceEngine.prototype.updateLcevcDec=function(a){this.lcevcDec_=a};shaka.media.MediaSourceEngine.prototype.addExtraFeaturesToMimeType_=function(a){var b=this.config_.addExtraFeaturesToSourceBuffer(a);a+=b;shaka.log.debug("Using full mime type",a);return a};shaka.media.MediaSourceEngine.createObjectURL=window.URL.createObjectURL;shaka.media.MediaSourceEngine.SourceBufferMode_={SEQUENCE:"sequence",SEGMENTS:"segments"};shaka.media.PresentationTimeline=function(a,b,c){this.presentationStartTime_=a;this.presentationDelay_=b;this.segmentAvailabilityDuration_=this.duration_=Infinity;this.maxSegmentDuration_=1;this.maxSegmentEndTime_=this.minSegmentStartTime_=null;this.clockOffset_=0;this.static_=!0;this.isLive2VodTransition_=!1;this.userSeekStart_=0;this.autoCorrectDrift_=void 0===c?!0:c;this.availabilityTimeOffset_=0;this.startTimeLocked_=!1;this.initialProgramDateTime_=a};
|
|
849
857
|
shaka.media.PresentationTimeline.prototype.getDuration=function(){return this.duration_};shaka.media.PresentationTimeline.prototype.getMaxSegmentDuration=function(){return this.maxSegmentDuration_};shaka.media.PresentationTimeline.prototype.setPresentationStartTime=function(a){goog.asserts.assert(0<=a,"presentationStartTime must be >= 0");this.presentationStartTime_=a};
|
|
@@ -954,7 +962,7 @@ shaka.media.QualityObserver.prototype.purgeQualityChangePositions_=function(a){v
|
|
|
954
962
|
shaka.media.QualityObserver.createQualityInfo=function(a){var b={bandwidth:a.bandwidth||0,audioSamplingRate:null,codecs:a.codecs,contentType:a.type,frameRate:null,height:null,mimeType:a.mimeType,channelsCount:null,pixelAspectRatio:null,width:null,label:null,roles:a.roles,language:null};a.type==shaka.util.ManifestParserUtils.ContentType.VIDEO&&(b.frameRate=a.frameRate||null,b.height=a.height||null,b.pixelAspectRatio=a.pixelAspectRatio||null,b.width=a.width||null);a.type==shaka.util.ManifestParserUtils.ContentType.AUDIO&&
|
|
955
963
|
(b.audioSamplingRate=a.audioSamplingRate,b.channelsCount=a.channelsCount,b.label=a.label||null,b.language=a.language);return b};shaka.media.RegionTimeline=function(a){shaka.util.FakeEventTarget.call(this);var b=this;this.regions_=new Set;this.getSeekRange_=a;this.filterTimer_=(new shaka.util.Timer(function(){b.filterBySeekRange_()})).tickEvery(shaka.media.RegionTimeline.REGION_FILTER_INTERVAL)};$jscomp.inherits(shaka.media.RegionTimeline,shaka.util.FakeEventTarget);shaka.media.RegionTimeline.prototype.release=function(){this.regions_.clear();this.filterTimer_.stop();shaka.util.FakeEventTarget.prototype.release.call(this)};
|
|
956
964
|
shaka.media.RegionTimeline.prototype.addRegion=function(a){null==this.findSimilarRegion_(a)&&(this.regions_.add(a),a=new shaka.util.FakeEvent("regionadd",new Map([["region",a]])),this.dispatchEvent(a))};shaka.media.RegionTimeline.prototype.filterBySeekRange_=function(){for(var a=this.getSeekRange_(),b=$jscomp.makeIterator(this.regions_),c=b.next();!c.done;c=b.next())c=c.value,c.endTime<a.start&&(this.regions_.delete(c),c=new shaka.util.FakeEvent("regionremove",new Map([["region",c]])),this.dispatchEvent(c))};
|
|
957
|
-
shaka.media.RegionTimeline.prototype.findSimilarRegion_=function(a){for(var b=$jscomp.makeIterator(this.regions_),c=b.next();!c.done;c=b.next())if(c=c.value,c.schemeIdUri==a.schemeIdUri&&c.id==a.id
|
|
965
|
+
shaka.media.RegionTimeline.prototype.findSimilarRegion_=function(a){for(var b=$jscomp.makeIterator(this.regions_),c=b.next();!c.done;c=b.next())if(c=c.value,c.schemeIdUri==a.schemeIdUri&&c.id==a.id&&.1>Math.abs(c.startTime-a.startTime)&&.1>Math.abs(c.endTime-a.endTime))return c;return null};shaka.media.RegionTimeline.prototype.regions=function(){return this.regions_};shaka.media.RegionTimeline.REGION_FILTER_INTERVAL=2;shaka.media.SegmentPrefetch=function(a,b,c,d){this.prefetchLimit_=a;this.stream_=b;this.fetchDispatcher_=c;this.segmentPrefetchMap_=new Map;this.initSegmentPrefetchMap_=new Map;this.iterator_=null;this.reverse_=d};shaka.media.SegmentPrefetch.prototype.replaceFetchDispatcher=function(a){this.fetchDispatcher_=a;for(var b=$jscomp.makeIterator(this.segmentPrefetchMap_.values()),c=b.next();!c.done;c=b.next())c.value.replaceFetchDispatcher(a)};
|
|
958
966
|
shaka.media.SegmentPrefetch.prototype.prefetchSegmentsByTime=function(a,b){b=void 0===b?!1:b;goog.asserts.assert(0<this.prefetchLimit_,"SegmentPrefetch can not be used when prefetchLimit <= 0.");var c=shaka.media.SegmentPrefetch.logPrefix_(this.stream_);if(!this.stream_.segmentIndex)return shaka.log.debug(c,"missing segmentIndex"),Promise.resolve();this.iterator_||(this.iterator_=this.stream_.segmentIndex.getIteratorForTime(a,!0,this.reverse_));if(!this.iterator_)return shaka.log.debug(c,"missing iterator"),
|
|
959
967
|
Promise.resolve();b&&this.iterator_.next();for(a=[];this.segmentPrefetchMap_.size<this.prefetchLimit_;){b=this.iterator_.next().value;if(!b)break;c=!0;b.isPreload()&&null!=b.endByte&&(c=!1);b.getStatus()==shaka.media.SegmentReference.Status.MISSING&&(c=!1);b.getSegmentData()&&(c=!1);c&&b.initSegmentReference&&a.push(this.prefetchInitSegment(b.initSegmentReference));c&&!this.segmentPrefetchMap_.has(b)&&(c=new shaka.media.SegmentPrefetchOperation(this.fetchDispatcher_),a.push(c.dispatchFetch(b,this.stream_)),
|
|
960
968
|
this.segmentPrefetchMap_.set(b,c))}this.clearInitSegments_();return Promise.all(a)};
|
|
@@ -974,13 +982,13 @@ e.code==shaka.util.Error.Code.OPERATION_ABORTED?Promise.resolve():Promise.reject
|
|
|
974
982
|
shaka.media.SegmentUtils.getBasicInfoFromTs=function(a,b,c,d){var e=shaka.util.BufferUtils.toUint8(a),f=(new shaka.util.TsParser).parse(e),g=f.getCodecs();e=f.getVideoInfo();var h=[],k=!1,l=!1;if(!b)switch(g.audio){case "aac":case "aac-loas":f.getAudioData().length&&(h.push("mp4a.40.2"),k=!0);break;case "mp3":f.getAudioData().length&&(h.push("mp4a.40.34"),k=!0);break;case "ac3":f.getAudioData().length&&(h.push("ac-3"),k=!0);break;case "ec3":f.getAudioData().length&&(h.push("ec-3"),k=!0);break;case "opus":f.getAudioData().length&&
|
|
975
983
|
(h.push("opus"),k=!0)}if(!c)switch(g.video){case "avc":e.codec?h.push(e.codec):h.push("avc1.42E01E");l=!0;break;case "hvc":e.codec?h.push(e.codec):h.push("hvc1.1.6.L93.90");l=!0;break;case "av1":h.push("av01.0.01M.08"),l=!0}if(!h.length)return null;b=k&&!l;c=new Map;if(l&&!d){d=new shaka.media.ClosedCaptionParser("video/mp2t");d.parseFrom(a);a=$jscomp.makeIterator(d.getStreams());for(l=a.next();!l.done;l=a.next())l=l.value,c.set(l,l);d.reset()}return{type:b?"audio":"video",mimeType:"video/mp2t",codecs:h.join(", "),
|
|
976
984
|
language:null,height:e.height,width:e.width,channelCount:null,sampleRate:null,closedCaptions:c,videoRange:null,colorGamut:null,frameRate:e.frameRate}};
|
|
977
|
-
shaka.media.SegmentUtils.getBasicInfoFromMp4=function(a,b,c){var d=shaka.util.Mp4Parser,e=shaka.media.SegmentUtils,f=[],g=[],h=!1,k=!1,l=function(
|
|
978
|
-
h=!0}},m=null,n=null,p=null,q=null,r=null,t=null,u=null,v,w=function(
|
|
979
|
-
m=shaka.util.Mp4BoxParsers.parseMDHD(
|
|
980
|
-
x).box("hvc1",x).box("dva1",x).box("dvav",x).box("dvh1",x).box("dvhe",x).box("vp09",x).box("av01",x).box("avcC",function(
|
|
981
|
-
"dvh1";break;case "hev1":
|
|
982
|
-
"",
|
|
983
|
-
shaka.util.Mp4BoxParsers.parseCOLR(
|
|
985
|
+
shaka.media.SegmentUtils.getBasicInfoFromMp4=function(a,b,c){var d=shaka.util.Mp4Parser,e=shaka.media.SegmentUtils,f=[],g=[],h=!1,k=!1,l=function(y){y=y.toLowerCase();switch(y){case "avc1":case "avc3":g.push(y+".42E01E");k=!0;break;case "hev1":case "hvc1":g.push(y+".1.6.L93.90");k=!0;break;case "dvh1":case "dvhe":g.push(y+".05.04");k=!0;break;case "vp09":g.push(y+".00.10.08");k=!0;break;case "av01":g.push(y+".0.01M.08");k=!0;break;case "mp4a":f.push("mp4a.40.2");h=!0;break;case "ac-3":case "ec-3":case "ac-4":case "opus":case "flac":f.push(y),
|
|
986
|
+
h=!0}},m=null,n=null,p=null,q=null,r=null,t=null,u=null,v,w=function(y){var C=shaka.util.Mp4BoxParsers.audioSampleEntry(y.reader);q=C.channelCount;r=C.sampleRate;l(y.name)},x=function(y){v=y.name;var C=shaka.util.Mp4BoxParsers.visualSampleEntry(y.reader);p=String(C.width);n=String(C.height);y.reader.hasMoreData()&&d.children(y)};(new d).box("moov",d.children).box("trak",d.children).box("mdia",d.children).fullBox("mdhd",function(y){goog.asserts.assert(null!=y.version,"MDHD is a full box and should have a valid version.");
|
|
987
|
+
m=shaka.util.Mp4BoxParsers.parseMDHD(y.reader,y.version).language}).box("minf",d.children).box("stbl",d.children).fullBox("stsd",d.sampleDescription).box("mp4a",function(y){var C=shaka.util.Mp4BoxParsers.audioSampleEntry(y.reader);q=C.channelCount;r=C.sampleRate;y.reader.hasMoreData()?d.children(y):l(y.name)}).box("esds",function(y){y=shaka.util.Mp4BoxParsers.parseESDS(y.reader);f.push(y.codec);h=!0}).box("ac-3",w).box("ec-3",w).box("ac-4",w).box("Opus",w).box("fLaC",w).box("avc1",x).box("avc3",x).box("hev1",
|
|
988
|
+
x).box("hvc1",x).box("dva1",x).box("dvav",x).box("dvh1",x).box("dvhe",x).box("vp09",x).box("av01",x).box("avcC",function(y){var C=v||"";switch(v){case "dvav":C="avc3";break;case "dva1":C="avc1"}y=shaka.util.Mp4BoxParsers.parseAVCC(C,y.reader,y.name);g.push(y.codec);k=!0}).box("hvcC",function(y){var C=v||"";switch(v){case "dvh1":C="hvc1";break;case "dvhe":C="hev1"}y=shaka.util.Mp4BoxParsers.parseHVCC(C,y.reader,y.name);g.push(y.codec);k=!0}).box("dvcC",function(y){var C=v||"";switch(v){case "hvc1":C=
|
|
989
|
+
"dvh1";break;case "hev1":C="dvhe";break;case "avc1":C="dva1";break;case "avc3":C="dvav";break;case "av01":C="dav1"}y=shaka.util.Mp4BoxParsers.parseDVCC(C,y.reader,y.name);g.push(y.codec);k=!0}).box("dvvC",function(y){var C=v||"";switch(v){case "hvc1":C="dvh1";break;case "hev1":C="dvhe";break;case "avc1":C="dva1";break;case "avc3":C="dvav";break;case "av01":C="dav1"}y=shaka.util.Mp4BoxParsers.parseDVVC(C,y.reader,y.name);g.push(y.codec);k=!0}).fullBox("vpcC",function(y){y=shaka.util.Mp4BoxParsers.parseVPCC(v||
|
|
990
|
+
"",y.reader,y.name);g.push(y.codec);k=!0}).box("av1C",function(y){var C=v||"";switch(v){case "dav1":C="av01"}y=shaka.util.Mp4BoxParsers.parseAV1C(C,y.reader,y.name);g.push(y.codec);k=!0}).box("enca",d.audioSampleEntry).box("encv",d.visualSampleEntry).box("sinf",d.children).box("frma",function(y){y=shaka.util.Mp4BoxParsers.parseFRMA(y.reader).codec;l(y)}).box("colr",function(y){g=g.map(function(E){return E.startsWith("av01.")?shaka.util.Mp4BoxParsers.updateAV1CodecWithCOLRBox(E,y.reader):E});var C=
|
|
991
|
+
shaka.util.Mp4BoxParsers.parseCOLR(y.reader),D=C.colorGamut;t=C.videoRange;u=D}).parse(a||b,!0);if(!f.length&&!g.length)return null;w=h&&!k;x=new Map;if(k&&!c){c=new shaka.media.ClosedCaptionParser("video/mp4");a&&c.init(a);try{c.parseFrom(b);for(var z=$jscomp.makeIterator(c.getStreams()),B=z.next();!B.done;B=z.next()){var A=B.value;x.set(A,A)}}catch(y){shaka.log.debug("Error detecting CC streams",y)}c.reset()}a=f.concat(g);return{type:w?"audio":"video",mimeType:w?"audio/mp4":"video/mp4",codecs:e.codecsFiltering(a).join(", "),
|
|
984
992
|
language:m,height:n,width:p,channelCount:q,sampleRate:r,closedCaptions:x,videoRange:t,colorGamut:u,frameRate:null}};shaka.media.SegmentUtils.codecsFiltering=function(a){var b=shaka.util.ManifestParserUtils.ContentType,c=shaka.util.ManifestParserUtils,d=shaka.media.SegmentUtils;a=d.filterDuplicateCodecs_(a);var e=c.guessAllCodecsSafe(b.AUDIO,a),f=c.guessAllCodecsSafe(b.VIDEO,a);b=c.guessAllCodecsSafe(b.TEXT,a);d=d.chooseBetterCodecs_(f);d=e.concat(d).concat(b);return a.length&&!d.length?a:d};
|
|
985
993
|
shaka.media.SegmentUtils.filterDuplicateCodecs_=function(a){var b=new Set,c=[];a=$jscomp.makeIterator(a);for(var d=a.next();!d.done;d=a.next()){d=d.value;var e=shaka.util.MimeUtils.getCodecBase(d);b.has(e)?shaka.log.debug("Ignoring duplicate codec"):(c.push(d),b.add(e))}return c};
|
|
986
994
|
shaka.media.SegmentUtils.chooseBetterCodecs_=function(a){if(1>=a.length)return a;var b=a.find(function(c){return c.startsWith("dvav.")||c.startsWith("dva1.")||c.startsWith("dvh1.")||c.startsWith("dvhe.")||c.startsWith("dav1.")||c.startsWith("dvc1.")||c.startsWith("dvi1.")});return b?shaka.media.Capabilities.isTypeSupported('video/mp4; codecs="'+b+'"')?[b]:a.filter(function(c){return c!=b}):a};
|
|
@@ -1032,41 +1040,41 @@ if(a.clearingBuffer)return l.return();a.updateTimer=null;if(!a.waitingToClearBuf
|
|
|
1032
1040
|
l.yield(b.handleStreamingError_(a,e),8);case 8:return l.return();case 6:if(d!=a.stream)return d.closeSegmentIndex&&(goog.asserts.assert(!a.stream.segmentIndex,"mediaState.stream should not have segmentIndex yet."),d.closeSegmentIndex()),a.performingUpdate||a.updateTimer||b.scheduleUpdate_(a,0),l.return();case 4:l.setCatchFinallyBlocks(9);f=b.update_(a);null!=f&&(b.scheduleUpdate_(a,f),a.hasError=!1);l.leaveTryBlock(10);break;case 9:return g=l.enterCatchBlock(),l.yield(b.handleStreamingError_(a,g),
|
|
1033
1041
|
11);case 11:return l.return();case 10:h=Array.from(b.mediaStates_.values());if(!b.startupComplete_||!h.every(function(m){return m.endOfStream})){l.jumpTo(0);break}shaka.log.v1(c,"calling endOfStream()...");return l.yield(b.playerInterface_.mediaSourceEngine.endOfStream(),13);case 13:b.destroyer_.ensureNotDestroyed(),k=b.playerInterface_.mediaSourceEngine.getDuration(),0!=k&&k<b.manifest_.presentationTimeline.getDuration()&&b.manifest_.presentationTimeline.setDuration(k),l.jumpToEnd()}})};
|
|
1034
1042
|
shaka.media.StreamingEngine.prototype.update_=function(a){goog.asserts.assert(this.manifest_,"manifest_ should not be null");goog.asserts.assert(this.config_,"config_ should not be null");var b=shaka.util.ManifestParserUtils.ContentType;if(shaka.media.StreamingEngine.isEmbeddedText_(a))return this.playerInterface_.mediaSourceEngine.setSelectedClosedCaptionId(a.stream.originalId||""),null;a.type==b.TEXT&&this.playerInterface_.mediaSourceEngine.clearSelectedClosedCaptionId();if(a.stream.isAudioMuxedInVideo)return null;
|
|
1035
|
-
if(!this.playerInterface_.mediaSourceEngine.isStreamingAllowed()&&a.type!=b.TEXT)return
|
|
1036
|
-
d);shaka.log.v2(
|
|
1037
|
-
a.endOfStream=!1;if(
|
|
1038
|
-
|
|
1043
|
+
var c=this.config_.updateIntervalSeconds/Math.max(1,Math.abs(this.playerInterface_.getPlaybackRate()));if(!this.playerInterface_.mediaSourceEngine.isStreamingAllowed()&&a.type!=b.TEXT)return c/2;var d=shaka.media.StreamingEngine.logPrefix_(a),e=this.playerInterface_.getPresentationTime();if(a.type===b.AUDIO)for(var f=$jscomp.makeIterator(this.audioPrefetchMap_.keys()),g=f.next();!g.done;g=f.next())g=this.audioPrefetchMap_.get(g.value),g.evict(e,!0),g.prefetchSegmentsByTime(e);f=this.getTimeNeeded_(a,
|
|
1044
|
+
e);shaka.log.v2(d,"timeNeeded="+f);var h=this.playerInterface_.mediaSourceEngine.bufferedAheadOf(a.type,e);shaka.log.v2(d,"update_:","presentationTime="+e,"bufferedAhead="+h);var k=Math.max(1,Math.max(this.config_.rebufferingGoal,this.config_.bufferingGoal)*this.bufferingScale_),l=this.manifest_.presentationTimeline.getDuration()-f;g=this.playerInterface_.mediaSourceEngine.bufferEnd(a.type);if(1E-6>l&&g)return shaka.log.debug(d,"buffered to end of presentation"),a.endOfStream=!0,a.type==b.VIDEO&&
|
|
1045
|
+
(a=this.mediaStates_.get(b.TEXT))&&shaka.media.StreamingEngine.isEmbeddedText_(a)&&(a.endOfStream=!0),null;a.endOfStream=!1;if(h>=k)return shaka.log.v2(d,"buffering goal met"),c/2;h=!a.segmentIterator;b=this.getSegmentReferenceNeeded_(a,e,g);if(!b)return c;g=!1;h&&a.adaptation&&(g=!0,a.adaptation=!1);h=Infinity;k=Array.from(this.mediaStates_.values());k=$jscomp.makeIterator(k);for(l=k.next();!l.done;l=k.next())l=l.value,shaka.media.StreamingEngine.isEmbeddedText_(l)||l.segmentIterator&&!l.segmentIterator.current()||
|
|
1046
|
+
(l=this.getTimeNeeded_(l,e),h=Math.min(h,l));k=this.manifest_.presentationTimeline.getMaxSegmentDuration()*shaka.media.StreamingEngine.MAX_RUN_AHEAD_SEGMENTS_;if(f>=h+k)return shaka.log.v2(d,"waiting for other streams to buffer"),c;a.segmentPrefetch&&a.segmentIterator&&!this.audioPrefetchMap_.has(a.stream)&&(a.segmentPrefetch.evict(b.startTime),a.segmentPrefetch.prefetchSegmentsByTime(b.startTime));this.fetchAndAppend_(a,e,b,g).catch(function(){});return null};
|
|
1039
1047
|
shaka.media.StreamingEngine.prototype.getTimeNeeded_=function(a,b){return a.lastSegmentReference?a.lastSegmentReference.endTime:b};
|
|
1040
1048
|
shaka.media.StreamingEngine.prototype.getSegmentReferenceNeeded_=function(a,b,c){var d=shaka.media.StreamingEngine.logPrefix_(a);goog.asserts.assert(a.stream.segmentIndex,"segment index should have been generated already");if(a.segmentIterator)return a.segmentIterator.current();if(a.lastSegmentReference||c)return b=a.lastSegmentReference?a.lastSegmentReference.endTime:c,goog.asserts.assert(null!=b,"Should have a time to search"),shaka.log.v1(d,"looking up segment from new stream endTime:",b),c=0>
|
|
1041
1049
|
this.playerInterface_.getPlaybackRate(),a.stream.segmentIndex&&(a.segmentIterator=a.stream.segmentIndex.getIteratorForTime(b,!1,c)),a=a.segmentIterator&&a.segmentIterator.next().value,null==a&&shaka.log.warning(d,"cannot find segment","endTime:",b),a;c=this.manifest_.sequenceMode?0:this.config_.inaccurateManifestTolerance;var e=Math.max(b-c,0);shaka.log.v1(d,"looking up segment","lookupTime:",e,"presentationTime:",b);var f=0>this.playerInterface_.getPlaybackRate(),g=null;c&&(a.stream.segmentIndex&&
|
|
1042
1050
|
(a.segmentIterator=a.stream.segmentIndex.getIteratorForTime(e,!1,f)),g=a.segmentIterator&&a.segmentIterator.next().value);g||(a.stream.segmentIndex&&(a.segmentIterator=a.stream.segmentIndex.getIteratorForTime(b,!1,f)),g=a.segmentIterator&&a.segmentIterator.next().value);null==g&&shaka.log.warning(d,"cannot find segment","lookupTime:",e,"presentationTime:",b);return g};
|
|
1043
|
-
shaka.media.StreamingEngine.prototype.fetchAndAppend_=function(a,b,c,d){var e=this,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,
|
|
1044
|
-
if(c.getStatus()==shaka.media.SegmentReference.Status.MISSING)throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.SEGMENT_MISSING);return
|
|
1045
|
-
shaka.media.ManifestParser.HLS||c.hasByterangeOptimization()))return t=new Uint8Array(0),v=u=!1,x=function(
|
|
1046
|
-
t=t.subarray(
|
|
1047
|
-
e.destroyer_.ensureNotDestroyed();return a.waitingToClearBuffer?(shaka.log.info(h,"waitingToClearBuffer, skip append"),a.performingUpdate=!1,e.scheduleUpdate_(a,0),
|
|
1048
|
-
k,c,
|
|
1049
|
-
a.stream);e.scheduleUpdate_(a,0);
|
|
1050
|
-
"Text stream failed to download. Proceeding without it."):shaka.log.warning(h,"Text stream failed to parse. Proceeding without it."),e.mediaStates_.delete(f.TEXT),
|
|
1051
|
-
|
|
1051
|
+
shaka.media.StreamingEngine.prototype.fetchAndAppend_=function(a,b,c,d){var e=this,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,z,B,A,y,C,D;return $jscomp.asyncExecutePromiseGeneratorProgram(function(E){switch(E.nextAddress){case 1:f=shaka.util.ManifestParserUtils.ContentType;g=shaka.media.StreamingEngine;h=g.logPrefix_(a);shaka.log.v1(h,"fetchAndAppend_:","presentationTime="+b,"reference.startTime="+c.startTime,"reference.endTime="+c.endTime);k=a.stream;l=a.segmentIterator;a.performingUpdate=!0;E.setCatchFinallyBlocks(2);
|
|
1052
|
+
if(c.getStatus()==shaka.media.SegmentReference.Status.MISSING)throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.SEGMENT_MISSING);return E.yield(e.initSourceBuffer_(a,c,d),4);case 4:e.destroyer_.ensureNotDestroyed();if(e.fatalError_)return E.return();shaka.log.v2(h,"fetching segment");m="video/mp4"==k.mimeType||"audio/mp4"==k.mimeType;n=window.ReadableStream;if((p=e.config_.lowLatencyMode&&e.manifest_.isLowLatency)&&n&&m&&(e.manifest_.type!=
|
|
1053
|
+
shaka.media.ManifestParser.HLS||c.hasByterangeOptimization()))return t=new Uint8Array(0),v=u=!1,x=function(F){var H,J,K,L;return $jscomp.asyncExecutePromiseGeneratorProgram(function(G){switch(G.nextAddress){case 1:if(u)return G.return();v=!0;e.destroyer_.ensureNotDestroyed();if(e.fatalError_)return G.return();G.setCatchFinallyBlocks(2);t=e.concatArray_(t,F);H=!1;J=0;(new shaka.util.Mp4Parser).box("mdat",function(M){J=M.size+M.start;H=!0}).parse(t,!1,!0);if(!H){G.jumpTo(4);break}K=t.subarray(0,J);
|
|
1054
|
+
t=t.subarray(J);return G.yield(e.append_(a,b,k,c,K,!0,d),5);case 5:a.segmentPrefetch&&a.segmentIterator&&a.segmentPrefetch.prefetchSegmentsByTime(c.startTime,!0);case 4:G.leaveTryBlock(0);break;case 2:w=L=G.enterCatchBlock(),G.jumpToEnd()}})},E.yield(e.fetch_(a,c,x),9);p&&!n&&shaka.log.warning("Low latency streaming mode is enabled, but ReadableStream is not supported by the browser.");q=e.fetch_(a,c);return E.yield(q,7);case 7:r=E.yieldResult;e.destroyer_.ensureNotDestroyed();if(e.fatalError_)return E.return();
|
|
1055
|
+
e.destroyer_.ensureNotDestroyed();return a.waitingToClearBuffer?(shaka.log.info(h,"waitingToClearBuffer, skip append"),a.performingUpdate=!1,e.scheduleUpdate_(a,0),E.return()):E.yield(e.append_(a,b,k,c,r,!1,d),6);case 9:z=E.yieldResult;if(w)throw w;if(v){E.jumpTo(10);break}u=!0;e.destroyer_.ensureNotDestroyed();return e.fatalError_?E.return():a.waitingToClearBuffer?(shaka.log.info(h,"waitingToClearBuffer, skip append"),a.performingUpdate=!1,e.scheduleUpdate_(a,0),E.return()):E.yield(e.append_(a,b,
|
|
1056
|
+
k,c,z,!1,d),10);case 10:a.segmentPrefetch&&a.segmentIterator&&a.segmentPrefetch.prefetchSegmentsByTime(c.startTime,!0);case 6:e.destroyer_.ensureNotDestroyed();if(e.fatalError_)return E.return();a.lastSegmentReference=c;B=l.next().value;shaka.log.v2(h,"advancing to next segment",B);a.performingUpdate=!1;a.recovering=!1;A=e.playerInterface_.mediaSourceEngine.getBufferedInfo();y=A[a.type];shaka.log.v1(h,"finished fetch and append",JSON.stringify(y));if(!a.waitingToClearBuffer)if(C=null,a.type===f.VIDEO?
|
|
1057
|
+
C=e.mediaStates_.get(f.AUDIO):a.type===f.AUDIO&&(C=e.mediaStates_.get(f.VIDEO)),C&&C.type==f.AUDIO)e.playerInterface_.onSegmentAppended(c,a.stream,C.stream.isAudioMuxedInVideo);else e.playerInterface_.onSegmentAppended(c,a.stream,a.stream.codecs.includes(","));e.scheduleUpdate_(a,0);E.leaveTryBlock(0);break;case 2:D=E.enterCatchBlock();e.destroyer_.ensureNotDestroyed(D);if(e.fatalError_)return E.return();goog.asserts.assert(D instanceof shaka.util.Error,"Should only receive a Shaka error");a.performingUpdate=
|
|
1058
|
+
!1;if(D.code==shaka.util.Error.Code.OPERATION_ABORTED)a.performingUpdate=!1,e.cancelUpdate_(a),e.scheduleUpdate_(a,0),E.jumpTo(0);else if(a.type==f.TEXT&&e.config_.ignoreTextStreamFailures)D.code==shaka.util.Error.Code.BAD_HTTP_STATUS?shaka.log.warning(h,"Text stream failed to download. Proceeding without it."):shaka.log.warning(h,"Text stream failed to parse. Proceeding without it."),e.mediaStates_.delete(f.TEXT),E.jumpTo(0);else{if(D.code==shaka.util.Error.Code.QUOTA_EXCEEDED_ERROR)return E.yield(e.handleQuotaExceeded_(a,
|
|
1059
|
+
D),0);shaka.log.error(h,"failed fetch and append: code="+D.code);a.hasError=!0;D.category==shaka.util.Error.Category.NETWORK&&a.segmentPrefetch&&a.segmentPrefetch.removeReference(c);D.severity=shaka.util.Error.Severity.CRITICAL;return E.yield(e.handleStreamingError_(a,D),0)}}})};
|
|
1052
1060
|
shaka.media.StreamingEngine.prototype.retry=function(a){if(this.destroyer_.destroyed())return shaka.log.error("Unable to retry after StreamingEngine is destroyed!"),!1;if(this.fatalError_)return shaka.log.error("Unable to retry after StreamingEngine encountered a fatal error!"),!1;for(var b=$jscomp.makeIterator(this.mediaStates_.values()),c=b.next();!c.done;c=b.next()){c=c.value;var d=shaka.media.StreamingEngine.logPrefix_(c);!c.hasError||c.performingUpdate||c.updateTimer||(shaka.log.info(d,"Retrying after failure..."),
|
|
1053
1061
|
c.hasError=!1,this.scheduleUpdate_(c,a))}return!0};shaka.media.StreamingEngine.prototype.concatArray_=function(a,b){var c=new Uint8Array(a.length+b.length);c.set(a);c.set(b,a.length);return c};
|
|
1054
1062
|
shaka.media.StreamingEngine.prototype.handleQuotaExceeded_=function(a,b){var c=this,d,e,f,g,h,k,l,m;return $jscomp.asyncExecutePromiseGeneratorProgram(function(n){if(1==n.nextAddress){d=shaka.media.StreamingEngine.logPrefix_(a);e=Array.from(c.mediaStates_.values());if(f=e.some(function(p){return p!=a&&p.recovering}))return shaka.log.debug(d,"MediaSource threw QuotaExceededError:","waiting for another stream to recover..."),n.jumpTo(2);(g=c.getDisabledTime_(b))&&shaka.log.debug(d,"Disabling stream due to quota",
|
|
1055
1063
|
b);if(h=c.playerInterface_.disableStream(a.stream,g))return n.return();k=Math.round(100*c.bufferingScale_);if(20<k)c.bufferingScale_-=.2;else if(4<k)c.bufferingScale_-=.04;else return shaka.log.error(d,"MediaSource threw QuotaExceededError too many times"),a.hasError=!0,c.fatalError_=!0,c.playerInterface_.onError(b),n.return();l=Math.round(100*c.bufferingScale_);shaka.log.warning(d,"MediaSource threw QuotaExceededError:","reducing buffering goals by "+(100-l)+"%");a.recovering=!0;m=c.playerInterface_.getPresentationTime();
|
|
1056
1064
|
return n.yield(c.evict_(a,m),2)}c.scheduleUpdate_(a,4);n.jumpToEnd()})};
|
|
1057
|
-
shaka.media.StreamingEngine.prototype.initSourceBuffer_=function(a,b,c){var d=this,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,
|
|
1058
|
-
g.APPEND_WINDOW_END_FUDGE_;goog.asserts.assert(b.startTime<=n,h+" segment should start before append window end");p=b.codecs||a.stream.codecs;q=f.getCodecBase(p);r=f.getBasicType(b.mimeType||a.stream.mimeType);t=b.timestampOffset;if(t==a.lastTimestampOffset&&m==a.lastAppendWindowStart&&n==a.lastAppendWindowEnd&&q==a.lastCodecs&&r==a.lastMimeType){
|
|
1059
|
-
n);u=a.lastCodecs&&a.lastMimeType&&d.playerInterface_.mediaSourceEngine.isResetMediaSourceNecessary(a.type,r,p);if(!u){
|
|
1060
|
-
case 2:return shaka.media.InitSegmentReference.equal(b.initSegmentReference,a.lastInitSegmentReference)||(a.lastInitSegmentReference=b.initSegmentReference,b.isIndependent()&&b.initSegmentReference&&(shaka.log.v1(h,"fetching init segment"),w=d.fetch_(a,b.initSegmentReference),x=function(){var
|
|
1061
|
-
D=null,E=new Map,F={projection:null,hfov:null},
|
|
1062
|
-
|
|
1063
|
-
F.projection=
|
|
1064
|
-
c),6);case 6:
|
|
1065
|
+
shaka.media.StreamingEngine.prototype.initSourceBuffer_=function(a,b,c){var d=this,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,z,B,A;return $jscomp.asyncExecutePromiseGeneratorProgram(function(y){switch(y.nextAddress){case 1:e=shaka.util.ManifestParserUtils.ContentType;f=shaka.util.MimeUtils;g=shaka.media.StreamingEngine;h=g.logPrefix_(a);k=null==a.lastSegmentReference;l=[];m=Math.max(0,Math.max(b.appendWindowStart,d.playRangeStart_)-g.APPEND_WINDOW_START_FUDGE_);n=Math.min(b.appendWindowEnd,d.playRangeEnd_)+
|
|
1066
|
+
g.APPEND_WINDOW_END_FUDGE_;goog.asserts.assert(b.startTime<=n,h+" segment should start before append window end");p=b.codecs||a.stream.codecs;q=f.getCodecBase(p);r=f.getBasicType(b.mimeType||a.stream.mimeType);t=b.timestampOffset;if(t==a.lastTimestampOffset&&m==a.lastAppendWindowStart&&n==a.lastAppendWindowEnd&&q==a.lastCodecs&&r==a.lastMimeType){y.jumpTo(2);break}shaka.log.v1(h,"setting timestamp offset to "+t);shaka.log.v1(h,"setting append window start to "+m);shaka.log.v1(h,"setting append window end to "+
|
|
1067
|
+
n);u=a.lastCodecs&&a.lastMimeType&&d.playerInterface_.mediaSourceEngine.isResetMediaSourceNecessary(a.type,r,p);if(!u){y.jumpTo(3);break}v=null;a.type===e.VIDEO?v=d.mediaStates_.get(e.AUDIO):a.type===e.AUDIO&&(v=d.mediaStates_.get(e.VIDEO));if(!v){y.jumpTo(3);break}return y.yield(d.abortOperations_(v).catch(function(){}),5);case 5:v.lastInitSegmentReference=null,v.lastAppendWindowStart=null,v.lastAppendWindowEnd=null,d.forceClearBuffer_(v);case 3:return y.yield(d.setProperties_(a,t,m,n,b,q,r),2);
|
|
1068
|
+
case 2:return shaka.media.InitSegmentReference.equal(b.initSegmentReference,a.lastInitSegmentReference)||(a.lastInitSegmentReference=b.initSegmentReference,b.isIndependent()&&b.initSegmentReference&&(shaka.log.v1(h,"fetching init segment"),w=d.fetch_(a,b.initSegmentReference),x=function(){var C,D,E,F,H,J,K,L,G;return $jscomp.asyncExecutePromiseGeneratorProgram(function(M){switch(M.nextAddress){case 1:return M.setCatchFinallyBlocks(2),M.yield(w,4);case 4:return C=M.yieldResult,d.destroyer_.ensureNotDestroyed(),
|
|
1069
|
+
D=null,E=new Map,F={projection:null,hfov:null},H=new shaka.util.Mp4Parser,J=shaka.util.Mp4Parser,K=shaka.util.Mp4BoxParsers,H.box("moov",J.children).box("trak",J.children).box("mdia",J.children).fullBox("mdhd",function(I){goog.asserts.assert(null!=I.version,"MDHD is a full box and should have a valid version.");D=K.parseMDHD(I.reader,I.version).timescale}).box("hdlr",function(I){switch(K.parseHDLR(I.reader).handlerType){case "soun":E.set(e.AUDIO,D);break;case "vide":E.set(e.VIDEO,D)}D=null}).box("minf",
|
|
1070
|
+
J.children).box("stbl",J.children).fullBox("stsd",J.sampleDescription).box("encv",J.visualSampleEntry).box("avc1",J.visualSampleEntry).box("avc3",J.visualSampleEntry).box("hev1",J.visualSampleEntry).box("hvc1",J.visualSampleEntry).box("dvav",J.visualSampleEntry).box("dva1",J.visualSampleEntry).box("dvh1",J.visualSampleEntry).box("dvhe",J.visualSampleEntry).box("dvc1",J.visualSampleEntry).box("dvi1",J.visualSampleEntry).box("vexu",J.children).box("proj",J.children).fullBox("prji",function(I){I=K.parsePRJI(I.reader);
|
|
1071
|
+
F.projection=I.projection}).box("hfov",function(I){I=K.parseHFOV(I.reader);F.hfov=I.hfov}).parse(C),d.updateSpatialVideoInfo_(F),E.has(a.type)?b.initSegmentReference.timescale=E.get(a.type):null!=D&&(b.initSegmentReference.timescale=D),shaka.log.v1(h,"appending init segment"),L=a.stream.closedCaptions&&0<a.stream.closedCaptions.size,M.yield(d.playerInterface_.beforeAppendSegment(a.type,C),5);case 5:return M.yield(d.playerInterface_.mediaSourceEngine.appendBuffer(a.type,C,null,a.stream,L,a.seeked,
|
|
1072
|
+
c),6);case 6:M.leaveTryBlock(0);break;case 2:throw G=M.enterCatchBlock(),a.lastInitSegmentReference=null,G;}})},z=b.startTime,k&&(B=d.playerInterface_.mediaSourceEngine.bufferEnd(a.type),null!=B&&(z=B)),d.playerInterface_.onInitSegmentAppended(z,b.initSegmentReference),l.push(x()))),A=a.lastSegmentReference?a.lastSegmentReference.discontinuitySequence:null,b.discontinuitySequence!=A&&l.push(d.playerInterface_.mediaSourceEngine.resync(a.type,b.startTime)),y.yield(Promise.all(l),0)}})};
|
|
1065
1073
|
shaka.media.StreamingEngine.prototype.setProperties_=function(a,b,c,d,e,f,g){var h=this,k,l,m,n;return $jscomp.asyncExecutePromiseGeneratorProgram(function(p){if(1==p.nextAddress)return k=shaka.util.ManifestParserUtils.ContentType,l=new Map,h.currentVariant_.audio&&l.set(k.AUDIO,h.currentVariant_.audio),h.currentVariant_.video&&l.set(k.VIDEO,h.currentVariant_.video),p.setCatchFinallyBlocks(2),a.lastAppendWindowStart=c,a.lastAppendWindowEnd=d,f&&(a.lastCodecs=f),g&&(a.lastMimeType=g),a.lastTimestampOffset=
|
|
1066
1074
|
b,m=h.manifest_.sequenceMode||h.manifest_.type==shaka.media.ManifestParser.HLS,p.yield(h.playerInterface_.mediaSourceEngine.setStreamProperties(a.type,b,c,d,m,e.mimeType||a.stream.mimeType,e.codecs||a.stream.codecs,l),4);if(2!=p.nextAddress)return p.leaveTryBlock(0);n=p.enterCatchBlock();a.lastAppendWindowStart=null;a.lastAppendWindowEnd=null;a.lastCodecs=null;a.lastMimeType=null;a.lastTimestampOffset=null;throw n;})};
|
|
1067
1075
|
shaka.media.StreamingEngine.prototype.append_=function(a,b,c,d,e,f,g){f=void 0===f?!1:f;g=void 0===g?!1:g;var h=this,k,l,m,n,p,q,r;return $jscomp.asyncExecutePromiseGeneratorProgram(function(t){switch(t.nextAddress){case 1:return k=shaka.media.StreamingEngine.logPrefix_(a),l=c.closedCaptions&&0<c.closedCaptions.size,h.config_.shouldFixTimestampOffset&&(n="video/mp4"==c.mimeType||"audio/mp4"==c.mimeType,p=null,d.initSegmentReference&&(p=d.initSegmentReference.timescale),(q=n&&p&&c.type===shaka.util.ManifestParserUtils.ContentType.VIDEO&&
|
|
1068
|
-
h.manifest_.type==shaka.media.ManifestParser.DASH)&&(m=new shaka.util.Mp4Parser),q&&m.box("moof",shaka.util.Mp4Parser.children).box("traf",shaka.util.Mp4Parser.children).fullBox("tfdt",function(u){var v,w,x,
|
|
1069
|
-
typeof p,"Should be an number!");x=-w/p;
|
|
1076
|
+
h.manifest_.type==shaka.media.ManifestParser.DASH)&&(m=new shaka.util.Mp4Parser),q&&m.box("moof",shaka.util.Mp4Parser.children).box("traf",shaka.util.Mp4Parser.children).fullBox("tfdt",function(u){var v,w,x,z,B,A;return $jscomp.asyncExecutePromiseGeneratorProgram(function(y){goog.asserts.assert(null!=u.version,"TFDT is a full box and should have a valid version.");v=shaka.util.Mp4BoxParsers.parseTFDTInaccurate(u.reader,u.version);w=v.baseMediaDecodeTime;if(!w)return y.return();goog.asserts.assert("number"==
|
|
1077
|
+
typeof p,"Should be an number!");x=-w/p;z=Number(a.lastTimestampOffset)||0;if(!(z<x))return y.jumpTo(0);B=a.lastAppendWindowStart;A=a.lastAppendWindowEnd;goog.asserts.assert("number"==typeof B,"Should be an number!");goog.asserts.assert("number"==typeof A,"Should be an number!");return y.yield(h.setProperties_(a,x,B,A,d),0)})}),q&&m.parse(e,!1,f)),t.yield(h.evict_(a,b),2);case 2:return h.destroyer_.ensureNotDestroyed(),r=a.seeked,a.seeked=!1,t.yield(h.playerInterface_.beforeAppendSegment(a.type,e),
|
|
1070
1078
|
3);case 3:return t.yield(h.playerInterface_.mediaSourceEngine.appendBuffer(a.type,e,d,c,l,r,g,f),4);case 4:h.destroyer_.ensureNotDestroyed(),shaka.log.v2(k,"appended media segment"),t.jumpToEnd()}})};
|
|
1071
1079
|
shaka.media.StreamingEngine.prototype.evict_=function(a,b){var c=this,d,e,f,g,h,k;return $jscomp.asyncExecutePromiseGeneratorProgram(function(l){if(1==l.nextAddress){d=a.stream.segmentIndex;d instanceof shaka.media.MetaSegmentIndex&&d.evict(c.manifest_.presentationTimeline.getSegmentAvailabilityStart());e=shaka.media.StreamingEngine.logPrefix_(a);shaka.log.v2(e,"checking buffer length");f=Math.max(c.config_.bufferBehind*c.bufferingScale_,c.manifest_.presentationTimeline.getMaxSegmentDuration());g=
|
|
1072
1080
|
c.playerInterface_.mediaSourceEngine.bufferStart(a.type);if(null==g)return c.lastTextMediaStateBeforeUnload_==a&&(c.lastTextMediaStateBeforeUnload_=null),shaka.log.v2(e,"buffer behind okay because nothing buffered:","presentationTime="+b,"bufferBehind="+f),l.return();h=b-g;k=h-f;if(k<=c.config_.evictionGoal)return shaka.log.v2(e,"buffer behind okay:","presentationTime="+b,"bufferedBehind="+h,"bufferBehind="+f,"evictionGoal="+c.config_.evictionGoal,"underflow="+Math.abs(k)),l.return();shaka.log.v1(e,
|
|
@@ -1116,8 +1124,8 @@ shaka.util.FairPlayUtils.commonFairPlayResponse=function(a,b,c){if(a===shaka.net
|
|
|
1116
1124
|
goog.exportSymbol("shaka.util.FairPlayUtils",shaka.util.FairPlayUtils);goog.exportProperty(shaka.util.FairPlayUtils,"commonFairPlayResponse",shaka.util.FairPlayUtils.commonFairPlayResponse);goog.exportProperty(shaka.util.FairPlayUtils,"expressplayFairPlayRequest",shaka.util.FairPlayUtils.expressplayFairPlayRequest);goog.exportProperty(shaka.util.FairPlayUtils,"conaxFairPlayRequest",shaka.util.FairPlayUtils.conaxFairPlayRequest);goog.exportProperty(shaka.util.FairPlayUtils,"ezdrmFairPlayRequest",shaka.util.FairPlayUtils.ezdrmFairPlayRequest);
|
|
1117
1125
|
goog.exportProperty(shaka.util.FairPlayUtils,"verimatrixFairPlayRequest",shaka.util.FairPlayUtils.verimatrixFairPlayRequest);goog.exportProperty(shaka.util.FairPlayUtils,"expressplayInitDataTransform",shaka.util.FairPlayUtils.expressplayInitDataTransform);goog.exportProperty(shaka.util.FairPlayUtils,"conaxInitDataTransform",shaka.util.FairPlayUtils.conaxInitDataTransform);goog.exportProperty(shaka.util.FairPlayUtils,"ezdrmInitDataTransform",shaka.util.FairPlayUtils.ezdrmInitDataTransform);
|
|
1118
1126
|
goog.exportProperty(shaka.util.FairPlayUtils,"verimatrixInitDataTransform",shaka.util.FairPlayUtils.verimatrixInitDataTransform);goog.exportProperty(shaka.util.FairPlayUtils,"initDataTransform",shaka.util.FairPlayUtils.initDataTransform);goog.exportProperty(shaka.util.FairPlayUtils,"defaultGetContentId",shaka.util.FairPlayUtils.defaultGetContentId);goog.exportProperty(shaka.util.FairPlayUtils,"isFairPlaySupported",shaka.util.FairPlayUtils.isFairPlaySupported);shaka.util.PlayerConfiguration=function(){};
|
|
1119
|
-
shaka.util.PlayerConfiguration.createDefault=function(){var a=Infinity;navigator.connection&&navigator.connection.saveData&&(a=360);var b={retryParameters:shaka.net.NetworkingEngine.defaultRetryParameters(),servers:{},clearKeys:{},advanced:{},delayLicenseRequestUntilPlayed:!1,persistentSessionOnlinePlayback:!1,persistentSessionsMetadata:[],initDataTransform:function(m,n,p){shaka.util.Platform.isMediaKeysPolyfilled()&&"skd"==n&&(n=p.serverCertificate,p=shaka.util.FairPlayUtils.defaultGetContentId(m),
|
|
1120
|
-
shaka.util.FairPlayUtils.initDataTransform(m,p,n));return m},logLicenseExchange:!1,updateExpirationTime:1,preferredKeySystems:[],keySystemsMapping:{},parseInbandPsshEnabled:shaka.util.Platform.isXboxOne(),minHdcpVersion:"",ignoreDuplicateInitData:!shaka.util.Platform.isTizen2(),defaultAudioRobustnessForWidevine:"SW_SECURE_CRYPTO",defaultVideoRobustnessForWidevine:"SW_SECURE_DECODE"};(shaka.util.Platform.isXboxOne()||shaka.util.Platform.isPS4())&&b.preferredKeySystems.push("com.microsoft.playready");
|
|
1127
|
+
shaka.util.PlayerConfiguration.createDefault=function(){var a=Infinity;navigator.connection&&navigator.connection.saveData&&(a=360);var b={retryParameters:shaka.net.NetworkingEngine.defaultRetryParameters(),servers:{},clearKeys:{},advanced:{},delayLicenseRequestUntilPlayed:!1,persistentSessionOnlinePlayback:!1,persistentSessionsMetadata:[],initDataTransform:function(m,n,p){shaka.util.Platform.isMediaKeysPolyfilled("apple")&&"skd"==n&&(n=p.serverCertificate,p=shaka.util.FairPlayUtils.defaultGetContentId(m),
|
|
1128
|
+
m=shaka.util.FairPlayUtils.initDataTransform(m,p,n));return m},logLicenseExchange:!1,updateExpirationTime:1,preferredKeySystems:[],keySystemsMapping:{},parseInbandPsshEnabled:shaka.util.Platform.isXboxOne(),minHdcpVersion:"",ignoreDuplicateInitData:!shaka.util.Platform.isTizen2(),defaultAudioRobustnessForWidevine:"SW_SECURE_CRYPTO",defaultVideoRobustnessForWidevine:"SW_SECURE_DECODE"};(shaka.util.Platform.isXboxOne()||shaka.util.Platform.isPS4())&&b.preferredKeySystems.push("com.microsoft.playready");
|
|
1121
1129
|
var c=shaka.config.CodecSwitchingStrategy.RELOAD,d=!1;shaka.media.Capabilities.isChangeTypeSupported()&&shaka.util.Platform.supportsSmoothCodecSwitching()&&(c=shaka.config.CodecSwitchingStrategy.SMOOTH,d=!0);d={retryParameters:shaka.net.NetworkingEngine.defaultRetryParameters(),availabilityWindowOverride:NaN,disableAudio:!1,disableVideo:!1,disableText:!1,disableThumbnails:!1,disableIFrames:!1,defaultPresentationDelay:0,segmentRelativeVttTiming:!1,raiseFatalErrorOnManifestUpdateRequestFailure:!1,continueLoadingWhenPaused:!0,
|
|
1122
1130
|
dash:{clockSyncUri:"",ignoreDrmInfo:!1,disableXlinkProcessing:!0,xlinkFailGracefully:!1,ignoreMinBufferTime:!1,autoCorrectDrift:!0,initialSegmentLimit:1E3,ignoreSuggestedPresentationDelay:!1,ignoreEmptyAdaptationSet:!1,ignoreMaxSegmentDuration:!1,keySystemsByURI:{"urn:uuid:1077efec-c0b2-4d02-ace3-3c1e52e2fb4b":"org.w3.clearkey","urn:uuid:e2719d58-a985-b3c9-781a-b030af78d30e":"org.w3.clearkey","urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed":"com.widevine.alpha","urn:uuid:9a04f079-9840-4286-ab92-e65be0885f95":"com.microsoft.playready",
|
|
1123
1131
|
"urn:uuid:79f0049a-4098-8642-ab92-e65be0885f95":"com.microsoft.playready","urn:uuid:94ce86fb-07ff-4f43-adb8-93d2fa968ca2":"com.apple.fps","urn:uuid:3d5e6d35-9b9a-41e8-b843-dd3c6e72c42c":"com.huawei.wiseplay"},manifestPreprocessor:shaka.util.PlayerConfiguration.defaultManifestPreprocessor,manifestPreprocessorTXml:shaka.util.PlayerConfiguration.defaultManifestPreprocessorTXml,sequenceMode:!1,multiTypeVariantsAllowed:d,useStreamOnceInPeriodFlattening:!1,updatePeriod:-1,enableFastSwitching:!0,ignoreSupplementalCodecs:!1},
|
|
@@ -1188,10 +1196,10 @@ weAre:a,invoke:function(e,f){return c.onEvent_("exit",e,f)}},{weWere:b,weAre:d,i
|
|
|
1188
1196
|
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)};
|
|
1189
1197
|
shaka.media.RegionObserver.prototype.poll=function(a,b){var c=shaka.media.RegionObserver;if(!this.startsPastZero_||0!=a){this.startsPastZero_=!1;for(var 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)}}};
|
|
1190
1198
|
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.net.NetworkingUtils=function(){};
|
|
1191
|
-
shaka.net.NetworkingUtils.getMimeType=function(a,b,c){var d,e,f,g,h,k,l;return $jscomp.asyncExecutePromiseGeneratorProgram(function(m){switch(m.nextAddress){case 1:d=shaka.net.NetworkingUtils.getExtension_(a);if(e=shaka.net.NetworkingUtils.EXTENSIONS_TO_MIME_TYPES_
|
|
1199
|
+
shaka.net.NetworkingUtils.getMimeType=function(a,b,c){var d,e,f,g,h,k,l;return $jscomp.asyncExecutePromiseGeneratorProgram(function(m){switch(m.nextAddress){case 1:d=shaka.net.NetworkingUtils.getExtension_(a);if(e=shaka.net.NetworkingUtils.EXTENSIONS_TO_MIME_TYPES_.get(d))return m.return(e);f=shaka.net.NetworkingEngine.RequestType.MANIFEST;g=shaka.net.NetworkingEngine.makeRequest([a],c);m.setCatchFinallyBlocks(2);g.method="HEAD";return m.yield(b.request(f,g).promise,4);case 4:h=m.yieldResult;e=h.headers["content-type"];
|
|
1192
1200
|
m.leaveTryBlock(3);break;case 2:k=m.enterCatchBlock();if(!k||k.code!=shaka.util.Error.Code.HTTP_ERROR&&k.code!=shaka.util.Error.Code.BAD_HTTP_STATUS){m.jumpTo(3);break}g.method="GET";return m.yield(b.request(f,g).promise,6);case 6:l=m.yieldResult,e=l.headers["content-type"];case 3:return m.return(e?e.toLowerCase().split(";").shift():"")}})};shaka.net.NetworkingUtils.getExtension_=function(a){a=(new goog.Uri(a)).getPath().split("/").pop().split(".");return 1==a.length?"":a.pop().toLowerCase()};
|
|
1193
|
-
shaka.net.NetworkingUtils.EXTENSIONS_TO_MIME_TYPES_=
|
|
1194
|
-
lrc
|
|
1201
|
+
shaka.net.NetworkingUtils.EXTENSIONS_TO_MIME_TYPES_=(new Map).set("mp4","video/mp4").set("m4v","video/mp4").set("m4a","audio/mp4").set("webm","video/webm").set("weba","audio/webm").set("mkv","video/webm").set("ts","video/mp2t").set("ogv","video/ogg").set("ogg","audio/ogg").set("mpg","video/mpeg").set("mpeg","video/mpeg").set("mov","video/quicktime").set("m3u8","application/x-mpegurl").set("mpd","application/dash+xml").set("ism","application/vnd.ms-sstr+xml").set("mp3","audio/mpeg").set("aac","audio/aac").set("flac",
|
|
1202
|
+
"audio/flac").set("wav","audio/wav").set("sbv","text/x-subviewer").set("srt","text/srt").set("vtt","text/vtt").set("webvtt","text/vtt").set("ttml","application/ttml+xml").set("lrc","application/x-subtitle-lrc").set("ssa","text/x-ssa").set("ass","text/x-ssa").set("jpeg","image/jpeg").set("jpg","image/jpeg").set("png","image/png").set("svg","image/svg+xml").set("webp","image/webp").set("avif","image/avif").set("html","text/html").set("htm","text/html");shaka.text.Utils=function(){};
|
|
1195
1203
|
shaka.text.Utils.flattenPayload_=function(a,b){if(a.lineBreak)return"\n";if(a.nestedCues.length)return a.nestedCues.map(function(g){return shaka.text.Utils.flattenPayload_(g,a)}).join("");if(!a.payload)return a.payload;var c=[],d=a.fontWeight>=shaka.text.Cue.fontWeight.BOLD,e=a.fontStyle==shaka.text.Cue.fontStyle.ITALIC,f=a.textDecoration.includes(shaka.text.Cue.textDecoration.UNDERLINE);d&&c.push(["b"]);e&&c.push(["i"]);f&&c.push(["u"]);e=a.color;""==e&&b&&(e=b.color);d="";(e=shaka.text.Utils.getColorName_(e))&&
|
|
1196
1204
|
(d+="."+e);e=a.backgroundColor;""==e&&b&&(e=b.backgroundColor);(b=shaka.text.Utils.getColorName_(e))&&(d+=".bg_"+b);d&&c.push(["c",d]);return c.reduceRight(function(g,h){var k=$jscomp.makeIterator(h);h=k.next().value;k=k.next().value;return"<"+h+(void 0===k?"":k)+">"+g+"</"+h+">"},a.payload)};
|
|
1197
1205
|
shaka.text.Utils.getColorName_=function(a){a=a.toLowerCase();var b=a.replace(/\s/g,"").match(/^rgba?\((\d+),(\d+),(\d+),?([^,\s)]+)?/i);b?a="#"+(parseInt(b[1],10)|256).toString(16).slice(1)+(parseInt(b[2],10)|256).toString(16).slice(1)+(parseInt(b[3],10)|256).toString(16).slice(1):a.startsWith("#")&&7<a.length&&(a=a.slice(0,7));switch(a){case "white":case "#fff":case "#ffffff":return"white";case "lime":case "#0f0":case "#00ff00":return"lime";case "cyan":case "#0ff":case "#00ffff":return"cyan";case "red":case "#f00":case "#ff0000":return"red";
|
|
@@ -1214,14 +1222,15 @@ goog.exportProperty(shaka.text.SimpleTextDisplayer.prototype,"setTextLanguage",s
|
|
|
1214
1222
|
goog.exportProperty(shaka.text.SimpleTextDisplayer.prototype,"append",shaka.text.SimpleTextDisplayer.prototype.append);goog.exportProperty(shaka.text.SimpleTextDisplayer.prototype,"remove",shaka.text.SimpleTextDisplayer.prototype.remove);goog.exportProperty(shaka.text.SimpleTextDisplayer.prototype,"configure",shaka.text.SimpleTextDisplayer.prototype.configure);shaka.text.StubTextDisplayer=function(){};shaka.text.StubTextDisplayer.prototype.configure=function(a){};shaka.text.StubTextDisplayer.prototype.remove=function(a,b){};shaka.text.StubTextDisplayer.prototype.append=function(a){};shaka.text.StubTextDisplayer.prototype.destroy=function(){};shaka.text.StubTextDisplayer.prototype.isTextVisible=function(){return!1};shaka.text.StubTextDisplayer.prototype.setTextVisibility=function(a){};shaka.text.StubTextDisplayer.prototype.setTextLanguage=function(a){};
|
|
1215
1223
|
shaka.text.StubTextDisplayer.prototype.enableTextDisplayer=function(){};goog.exportSymbol("shaka.text.StubTextDisplayer",shaka.text.StubTextDisplayer);goog.exportProperty(shaka.text.StubTextDisplayer.prototype,"enableTextDisplayer",shaka.text.StubTextDisplayer.prototype.enableTextDisplayer);goog.exportProperty(shaka.text.StubTextDisplayer.prototype,"setTextLanguage",shaka.text.StubTextDisplayer.prototype.setTextLanguage);
|
|
1216
1224
|
goog.exportProperty(shaka.text.StubTextDisplayer.prototype,"setTextVisibility",shaka.text.StubTextDisplayer.prototype.setTextVisibility);goog.exportProperty(shaka.text.StubTextDisplayer.prototype,"isTextVisible",shaka.text.StubTextDisplayer.prototype.isTextVisible);goog.exportProperty(shaka.text.StubTextDisplayer.prototype,"destroy",shaka.text.StubTextDisplayer.prototype.destroy);goog.exportProperty(shaka.text.StubTextDisplayer.prototype,"append",shaka.text.StubTextDisplayer.prototype.append);
|
|
1217
|
-
goog.exportProperty(shaka.text.StubTextDisplayer.prototype,"remove",shaka.text.StubTextDisplayer.prototype.remove);goog.exportProperty(shaka.text.StubTextDisplayer.prototype,"configure",shaka.text.StubTextDisplayer.prototype.configure);shaka.text.UITextDisplayer=function(a,b){var c=this;goog.asserts.assert(b,"videoContainer should be valid.");document.fullscreenEnabled||shaka.log.alwaysWarn("Using UITextDisplayer in a browser without Fullscreen API support causes subtitles to not be rendered in fullscreen");this.isTextVisible_=!1;this.cues_=[];this.video_=a;this.videoContainer_=b;this.aspectRatio_=null;this.textContainer_=shaka.util.Dom.createHTMLElement("div");this.textContainer_.classList.add("shaka-text-container");
|
|
1218
|
-
"center";this.textContainer_.style.display="flex";this.textContainer_.style.flexDirection="column";this.textContainer_.style.alignItems="center";this.textContainer_.style.justifyContent="flex-end";this.videoContainer_.appendChild(this.textContainer_);this.captionsTimer_=
|
|
1219
|
-
this.eventManager_.listen(this.video_,"seeking",function(){c.updateCaptions_(!0)});this.eventManager_.listen(this.video_,"resize",function(){var d=c.video_,e=d.videoWidth;d=d.videoHeight;c.aspectRatio_=e&&d?e/d:null});this.resizeObserver_=null;"ResizeObserver"in window&&(this.resizeObserver_=new ResizeObserver(function(){c.updateCaptions_(!0)}),this.resizeObserver_.observe(this.textContainer_));
|
|
1220
|
-
shaka.text.UITextDisplayer.prototype.configure=function(a){this.
|
|
1225
|
+
goog.exportProperty(shaka.text.StubTextDisplayer.prototype,"remove",shaka.text.StubTextDisplayer.prototype.remove);goog.exportProperty(shaka.text.StubTextDisplayer.prototype,"configure",shaka.text.StubTextDisplayer.prototype.configure);shaka.text.UITextDisplayer=function(a,b){var c=this;goog.asserts.assert(b,"videoContainer should be valid.");document.fullscreenEnabled||shaka.log.alwaysWarn("Using UITextDisplayer in a browser without Fullscreen API support causes subtitles to not be rendered in fullscreen");this.isTextVisible_=!1;this.cues_=[];this.video_=a;this.videoContainer_=b;this.config_=this.aspectRatio_=null;this.textContainer_=shaka.util.Dom.createHTMLElement("div");this.textContainer_.classList.add("shaka-text-container");
|
|
1226
|
+
this.textContainer_.style.textAlign="center";this.textContainer_.style.display="flex";this.textContainer_.style.flexDirection="column";this.textContainer_.style.alignItems="center";this.textContainer_.style.justifyContent="flex-end";this.videoContainer_.appendChild(this.textContainer_);this.captionsTimer_=new shaka.util.Timer(function(){c.video_.paused||c.updateCaptions_()});this.configureCaptionsTimer_();this.currentCuesMap_=new Map;this.eventManager_=new shaka.util.EventManager;this.eventManager_.listen(document,
|
|
1227
|
+
"fullscreenchange",function(){c.updateCaptions_(!0)});this.eventManager_.listen(this.video_,"seeking",function(){c.updateCaptions_(!0)});this.eventManager_.listen(this.video_,"ratechange",function(){c.configureCaptionsTimer_()});this.eventManager_.listen(this.video_,"resize",function(){var d=c.video_,e=d.videoWidth;d=d.videoHeight;c.aspectRatio_=e&&d?e/d:null});this.resizeObserver_=null;"ResizeObserver"in window&&(this.resizeObserver_=new ResizeObserver(function(){c.updateCaptions_(!0)}),this.resizeObserver_.observe(this.textContainer_));
|
|
1228
|
+
this.regionElements_=new Map};shaka.text.UITextDisplayer.prototype.configure=function(a){this.config_=a;this.configureCaptionsTimer_()};
|
|
1221
1229
|
shaka.text.UITextDisplayer.prototype.append=function(a){var b=[].concat($jscomp.arrayFromIterable(this.cues_));a=$jscomp.makeIterator(shaka.text.Utils.removeDuplicates(a));for(var c=a.next(),d={};!c.done;d={cue$jscomp$22:void 0},c=a.next())d.cue$jscomp$22=c.value,b.some(function(e){return function(f){return shaka.text.Cue.equal(f,e.cue$jscomp$22)}}(d))||this.cues_.push(d.cue$jscomp$22);this.updateCaptions_()};
|
|
1222
|
-
shaka.text.UITextDisplayer.prototype.destroy=function(){if(!this.textContainer_)return Promise.resolve();this.videoContainer_.removeChild(this.textContainer_);this.textContainer_=null;this.isTextVisible_=!1;this.cues_=[];this.captionsTimer_&&this.captionsTimer_.stop();this.currentCuesMap_.clear();this.eventManager_&&(this.eventManager_.release(),this.eventManager_=null);this.resizeObserver_&&(this.resizeObserver_.disconnect(),this.resizeObserver_=null);return Promise.resolve()};
|
|
1230
|
+
shaka.text.UITextDisplayer.prototype.destroy=function(){if(!this.textContainer_)return Promise.resolve();this.videoContainer_.removeChild(this.textContainer_);this.textContainer_=null;this.isTextVisible_=!1;this.cues_=[];this.captionsTimer_&&(this.captionsTimer_.stop(),this.captionsTimer_=null);this.currentCuesMap_.clear();this.eventManager_&&(this.eventManager_.release(),this.eventManager_=null);this.resizeObserver_&&(this.resizeObserver_.disconnect(),this.resizeObserver_=null);return Promise.resolve()};
|
|
1223
1231
|
shaka.text.UITextDisplayer.prototype.remove=function(a,b){if(!this.textContainer_)return!1;var c=this.cues_.length;this.cues_=this.cues_.filter(function(d){return d.startTime<a||d.endTime>=b});this.updateCaptions_(c>this.cues_.length);return!0};shaka.text.UITextDisplayer.prototype.isTextVisible=function(){return this.isTextVisible_};shaka.text.UITextDisplayer.prototype.setTextVisibility=function(a){this.isTextVisible_=a;this.updateCaptions_(!0)};
|
|
1224
|
-
shaka.text.UITextDisplayer.prototype.setTextLanguage=function(a){a&&"und"!=a?this.textContainer_.setAttribute("lang",a):this.textContainer_.setAttribute("lang","")};shaka.text.UITextDisplayer.prototype.enableTextDisplayer=function(){};shaka.text.UITextDisplayer.prototype.
|
|
1232
|
+
shaka.text.UITextDisplayer.prototype.setTextLanguage=function(a){a&&"und"!=a?this.textContainer_.setAttribute("lang",a):this.textContainer_.setAttribute("lang","")};shaka.text.UITextDisplayer.prototype.enableTextDisplayer=function(){};shaka.text.UITextDisplayer.prototype.configureCaptionsTimer_=function(){this.captionsTimer_&&this.captionsTimer_.tickEvery((this.config_?this.config_.captionsUpdatePeriod:.25)/Math.max(1,Math.abs(this.video_.playbackRate)))};
|
|
1233
|
+
shaka.text.UITextDisplayer.prototype.isElementUnderTextContainer_=function(a){for(;null!=a;){if(a==this.textContainer_)return!0;a=a.parentElement}return!1};
|
|
1225
1234
|
shaka.text.UITextDisplayer.prototype.updateCuesRecursive_=function(a,b,c,d){var e=!1,f=[],g=[];a=$jscomp.makeIterator(a);for(var h=a.next();!h.done;h=a.next()){h=h.value;d.push(h);var k=this.currentCuesMap_.get(h),l=h.startTime<=c&&h.endTime>c,m=k?k.wrapper:null;k&&(f.push(k.cueElement),k.regionElement&&f.push(k.regionElement),l||(e=!0,this.currentCuesMap_.delete(h),k=null));l&&(g.push(h),k?this.isElementUnderTextContainer_(m)||(e=!0):(this.createCue_(h,d),k=this.currentCuesMap_.get(h),m=k.wrapper,
|
|
1226
1235
|
e=!0));0<h.nestedCues.length&&m&&this.updateCuesRecursive_(h.nestedCues,m,c,d);k=d.pop();goog.asserts.assert(k==h,"Parent cues should be kept in order")}if(e){c=$jscomp.makeIterator(f);for(d=c.next();!d.done;d=c.next())d=d.value,d.parentElement&&d.parentElement.removeChild(d);g.sort(function(n,p){return n.startTime!=p.startTime?n.startTime-p.startTime:n.endTime-p.endTime});g=$jscomp.makeIterator(g);for(c=g.next();!c.done;c=g.next())c=this.currentCuesMap_.get(c.value),goog.asserts.assert(c,"cueRegistry should exist."),
|
|
1227
1236
|
c.regionElement?(c.regionElement.contains(b)&&c.regionElement.removeChild(b),b.appendChild(c.regionElement),c.regionElement.appendChild(c.cueElement)):b.appendChild(c.cueElement)}};
|
|
@@ -1300,10 +1309,10 @@ null;a&&(shaka.Deprecate.deprecateFeature(5,"Player w/ mediaElement","Please mig
|
|
|
1300
1309
|
shaka.Player.prototype.closeLcevcDec_=function(){null!=this.lcevcDec_&&(this.lcevcDec_.hideCanvas(),this.lcevcDec_.release(),this.lcevcDec_=null)};shaka.Player.prototype.setupLcevc_=function(a){a.lcevc.enabled?(this.closeLcevcDec_(),this.createLcevcDec_(a.lcevc)):this.closeLcevcDec_()};shaka.Player.makeEvent_=function(a,b){return new shaka.util.FakeEvent(a,b)};
|
|
1301
1310
|
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.closeLcevcDec_();b=a.detach();a.loadMode_=shaka.Player.LoadMode.DESTROYED;return c.yield(b,2);case 2:return c.yield(a.destroyAllPreloads(),3);case 3:a.globalEventManager_&&(a.globalEventManager_.release(),a.globalEventManager_=null);a.attachEventManager_&&(a.attachEventManager_.release(),
|
|
1302
1311
|
a.attachEventManager_=null);a.loadEventManager_&&(a.loadEventManager_.release(),a.loadEventManager_=null);a.trickPlayEventManager_&&(a.trickPlayEventManager_.release(),a.trickPlayEventManager_=null);a.adManagerEventManager_&&(a.adManagerEventManager_.release(),a.adManagerEventManager_=null);a.abrManagerFactory_=null;a.config_=null;a.stats_=null;a.videoContainer_=null;a.cmcdManager_=null;a.cmsdManager_=null;if(!a.networkingEngine_){c.jumpTo(4);break}return c.yield(a.networkingEngine_.destroy(),5);
|
|
1303
|
-
case 5:a.networkingEngine_=null;case 4:a.abrManager_&&(a.abrManager_.release(),a.abrManager_=null),shaka.util.FakeEventTarget.prototype.release.call(a),c.jumpToEnd()}})};shaka.Player.registerSupportPlugin=function(a,b){shaka.Player.supportPlugins_
|
|
1312
|
+
case 5:a.networkingEngine_=null;case 4:a.abrManager_&&(a.abrManager_.release(),a.abrManager_=null),shaka.util.FakeEventTarget.prototype.release.call(a),c.jumpToEnd()}})};shaka.Player.registerSupportPlugin=function(a,b){shaka.Player.supportPlugins_.set(a,b)};shaka.Player.setAdManagerFactory=function(a){shaka.Player.adManagerFactory_=a};
|
|
1304
1313
|
shaka.Player.isBrowserSupported=function(){window.Promise||shaka.log.alwaysWarn("A Promise implementation or polyfill is required");if(!(window.Promise&&window.Uint8Array&&Array.prototype.forEach)||shaka.util.Platform.isIE())return!1;var a=shaka.util.Platform.safariVersion();return a&&9>a?!1:shaka.util.Platform.supportsMediaSource()?!0:shaka.util.Platform.supportsMediaType("application/x-mpegurl")};
|
|
1305
|
-
shaka.Player.probeSupport=function(a){a=void 0===a?!0:a;var b,c,d,e,f,g
|
|
1306
|
-
4);case 4:e=
|
|
1314
|
+
shaka.Player.probeSupport=function(a){a=void 0===a?!0:a;var b,c,d,e,f,g;return $jscomp.asyncExecutePromiseGeneratorProgram(function(h){switch(h.nextAddress){case 1:goog.asserts.assert(shaka.Player.isBrowserSupported(),"Must have basic support");b={};if(!a){h.jumpTo(2);break}return h.yield(shaka.drm.DrmEngine.probeSupport(),3);case 3:b=h.yieldResult;case 2:return c=shaka.media.ManifestParser.probeSupport(),d=shaka.media.MediaSourceEngine.probeSupport(),h.yield(shaka.util.Platform.detectMaxHardwareResolution(),
|
|
1315
|
+
4);case 4:return e=h.yieldResult,f={manifest:c,media:d,drm:b,hardwareResolution:e},g=shaka.Player.supportPlugins_,g.forEach(function(k,l){f[l]=k()}),h.return(f)}})};shaka.Player.prototype.makeStateChangeEvent_=function(a){this.dispatchEvent(shaka.Player.makeEvent_(shaka.util.FakeEvent.EventName.OnStateChange,(new Map).set("state",a)))};
|
|
1307
1316
|
shaka.Player.prototype.attach=function(a,b){b=void 0===b?!0:b;var c=this,d,e,f;return $jscomp.asyncExecutePromiseGeneratorProgram(function(g){switch(g.nextAddress){case 1:if(c.loadMode_==shaka.Player.LoadMode.DESTROYED)throw c.createAbortLoadError_();d=c.video_&&c.video_==a;if(!c.video_||c.video_==a){g.jumpTo(2);break}return g.yield(c.detach(),2);case 2:return g.yield(c.atomicOperationAcquireMutex_("attach"),4);case 4:if(g.yieldResult)return g.return();g.setCatchFinallyBlocks(5,6);d||(c.makeStateChangeEvent_("attach"),
|
|
1308
1317
|
e=function(h){return c.onVideoError_(h)},c.attachEventManager_.listen(a,"error",e),c.video_=a,c.cmcdManager_&&c.cmcdManager_.setMediaElement(a));if(!b||!shaka.util.Platform.supportsMediaSource()||c.mediaSourceEngine_){g.jumpTo(6);break}return g.yield(c.initializeMediaSourceEngineInner_(),6);case 6:g.enterFinallyBlock();c.mutex_.release();g.leaveFinallyBlock(0);break;case 5:return f=g.enterCatchBlock(),g.yield(c.detach(),10);case 10:throw f;}})};
|
|
1309
1318
|
shaka.Player.prototype.attachCanvas=function(a){this.lcevcCanvas_=a};
|
|
@@ -1318,8 +1327,8 @@ c.preloadNextUrl_.destroy(),c.preloadNextUrl_=null);c.assetUri_=null;c.mimeType_
|
|
|
1318
1327
|
(shaka.util.StreamUtils.clearDecodingConfigCache(),shaka.drm.DrmUtils.clearMediaKeySystemAccessMap());c.manifest_=null;c.stats_=new shaka.util.Stats;c.lastTextFactory_=null;c.targetLatencyReached_=null;c.currentTargetLatency_=null;c.rebufferingCount_=-1;c.externalSrcEqualsThumbnailsStreams_=[];c.completionPercent_=-1;c.networkingEngine_&&c.networkingEngine_.clearCommonAccessTokenMap();c.updateBufferState_();case 3:q.enterFinallyBlock();c.mutex_.release();q.leaveFinallyBlock(4);break;case 4:if(a&&
|
|
1319
1328
|
shaka.util.Platform.supportsMediaSource()&&!c.mediaSourceEngine_&&c.video_)return q.yield(c.initializeMediaSourceEngineInner_(),0);q.jumpTo(0)}})};shaka.Player.prototype.updateStartTime=function(a){this.startTime_=a};
|
|
1320
1329
|
shaka.Player.prototype.load=function(a,b,c){b=void 0===b?null:b;var d=this,e,f,g,h,k,l,m,n,p,q,r,t,u;return $jscomp.asyncExecutePromiseGeneratorProgram(function(v){switch(v.nextAddress){case 1:if(d.loadMode_==shaka.Player.LoadMode.DESTROYED)throw d.createAbortLoadError_();e=null;f="";a instanceof shaka.media.PreloadManager?(e=a,f=e.getAssetUri()||""):f=a||"";return v.yield(d.mutex_.acquire("load"),2);case 2:d.mutex_.release();if(!d.video_)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
|
|
1321
|
-
shaka.util.Error.Category.PLAYER,shaka.util.Error.Code.NO_VIDEO_ELEMENT);if(!d.assetUri_){v.jumpTo(3);break}d.assetUri_=f;return v.yield(d.unload(!1),3);case 3:g=++d.operationId_;h=function(){return $jscomp.asyncExecutePromiseGeneratorProgram(function(w){if(1==w.nextAddress)return d.operationId_==g?w.jumpTo(0):e?w.yield(e.destroy(),3):w.jumpTo(3);throw d.createAbortLoadError_();})};k=function(w,x){return $jscomp.asyncExecutePromiseGeneratorProgram(function(
|
|
1322
|
-
|
|
1330
|
+
shaka.util.Error.Category.PLAYER,shaka.util.Error.Code.NO_VIDEO_ELEMENT);if(!d.assetUri_){v.jumpTo(3);break}d.assetUri_=f;return v.yield(d.unload(!1),3);case 3:g=++d.operationId_;h=function(){return $jscomp.asyncExecutePromiseGeneratorProgram(function(w){if(1==w.nextAddress)return d.operationId_==g?w.jumpTo(0):e?w.yield(e.destroy(),3):w.jumpTo(3);throw d.createAbortLoadError_();})};k=function(w,x){return $jscomp.asyncExecutePromiseGeneratorProgram(function(z){switch(z.nextAddress){case 1:return z.setFinallyBlock(2),
|
|
1331
|
+
z.yield(d.mutex_.acquire(x),4);case 4:return z.yield(h(),5);case 5:return z.yield(w(),6);case 6:return z.yield(h(),7);case 7:e&&d.config_&&e.reconfigure(d.config_);case 2:z.enterFinallyBlock(),d.mutex_.release(),z.leaveFinallyBlock(0)}})};v.setCatchFinallyBlocks(5,6);null==b&&e&&(b=e.getStartTime());d.startTime_=b;d.fullyLoaded_=!1;d.dispatchEvent(shaka.Player.makeEvent_(shaka.util.FakeEvent.EventName.Loading));if(e){c=e.getMimeType();v.jumpTo(8);break}if(c){v.jumpTo(8);break}return v.yield(k(function(){return $jscomp.asyncExecutePromiseGeneratorProgram(function(w){if(1==
|
|
1323
1332
|
w.nextAddress)return w.yield(d.guessMimeType_(f),2);c=w.yieldResult;w.jumpToEnd()})},"guessMimeType_"),8);case 8:l=!!e;if(e){e.setEventHandoffTarget(d);d.stats_=e.getStats();v.jumpTo(11);break}return v.yield(d.preloadInner_(f,b,c,!0),12);case 12:(e=v.yieldResult)?(e.markIsLoad(),e.setEventHandoffTarget(d),d.stats_=e.getStats(),e.start(),e.waitForFinish().catch(function(){})):d.stats_=new shaka.util.Stats;case 11:return m=!e,n=Date.now()/1E3,d.stats_=e?e.getStats():new shaka.util.Stats,d.assetUri_=
|
|
1324
1333
|
f,d.mimeType_=c||null,m?v.yield(k(function(){return $jscomp.asyncExecutePromiseGeneratorProgram(function(w){goog.asserts.assert(c,"We should know the mimeType by now!");return w.yield(d.initializeSrcEqualsDrmInner_(c),0)})},"initializeSrcEqualsDrmInner_"),21):v.yield(k(function(){return $jscomp.asyncExecutePromiseGeneratorProgram(function(w){if(1==w.nextAddress)return w.yield(e.waitForManifest(),2);d.parserFactory_=e.getParserFactory();d.parser_=e.receiveParser();d.manifest_=e.getManifest();w.jumpToEnd()})},
|
|
1325
1334
|
"waitForFinish"),15);case 15:if(d.mediaSourceEngine_){v.jumpTo(16);break}return v.yield(k(function(){return $jscomp.asyncExecutePromiseGeneratorProgram(function(w){return w.yield(d.initializeMediaSourceEngineInner_(),0)})},"initializeMediaSourceEngineInner_"),16);case 16:return d.manifest_&&d.manifest_.textStreams.length&&(d.textDisplayer_.enableTextDisplayer?d.textDisplayer_.enableTextDisplayer():shaka.Deprecate.deprecateFeature(5,"Text displayer w/ enableTextDisplayer",'Text displayer should have a "enableTextDisplayer" method!')),
|
|
@@ -1337,15 +1346,15 @@ shaka.Player.prototype.preload=function(a,b,c){b=void 0===b?null:b;var d=this,e;
|
|
|
1337
1346
|
shaka.Player.prototype.destroyAllPreloads=function(){var a=this,b,c,d,e;return $jscomp.asyncExecutePromiseGeneratorProgram(function(f){b=[];c=$jscomp.makeIterator(a.createdPreloadManagers_);for(d=c.next();!d.done;d=c.next())e=d.value,e.isDestroyed()||b.push(e.destroy());a.createdPreloadManagers_=[];return f.yield(Promise.all(b),0)})};
|
|
1338
1347
|
shaka.Player.prototype.preloadInner_=function(a,b,c,d){d=void 0===d?!1:d;var e=this,f,g,h,k;return $jscomp.asyncExecutePromiseGeneratorProgram(function(l){if(1==l.nextAddress)return goog.asserts.assert(e.networkingEngine_,"Should have a net engine!"),goog.asserts.assert(e.config_,"Config must not be null!"),c?l.jumpTo(2):l.yield(e.guessMimeType_(a),3);2!=l.nextAddress&&(c=l.yieldResult);if(f=e.shouldUseSrcEquals_(a,c))return l.return(null);g=!1;h=!0;d&&(e.abrManager_&&e.abrManagerFactory_==e.config_.abrFactory&&
|
|
1339
1348
|
(h=!1),e.video_&&"AUDIO"===e.video_.nodeName&&(g=!0));k=e.makePreloadManager_(a,b,c||null,!d,g,h);k=d?k.then(function(m){m.markIsLoad();return m}):k.then(function(m){e.createdPreloadManagers_.push(m);return m});return l.return(k)})};
|
|
1340
|
-
shaka.Player.prototype.makePreloadManager_=function(a,b,c,d,e,f){d=void 0===d?!0:d;e=void 0===e?!1:e;f=void 0===f?!0:f;var g=this,h,k,l,m,n,p,q,r,t,u,v,w,x,
|
|
1341
|
-
null:h},m=function(){return l()?l().getConfiguration():g.config_},Infinity!=g.maxHwRes_.width||Infinity!=g.maxHwRes_.height||g.config_.ignoreHardwareResolution?
|
|
1342
|
-
D.nextAddress)return D.yield(p.filterManifest(A),2);if(4!=D.nextAddress){
|
|
1343
|
-
isLowLatencyMode:function(){return m().streaming.lowLatencyMode},updateDuration:function(){g.streamingEngine_&&h.hasBeenAttached()&&g.streamingEngine_.updateDuration()},newDrmInfo:function(A){var
|
|
1344
|
-
getBandwidthEstimate:function(){return g.abrManager_.getBandwidthEstimate()},onMetadata:function(A,
|
|
1345
|
-
function(
|
|
1346
|
-
goog.asserts.assert(g.video_,"Must have video"),g.adManager_.onDASHInterstitialMetadata(g,g.video_,
|
|
1347
|
-
function(){g.onKeyStatus_(A)})},onExpirationUpdated:function(A,
|
|
1348
|
-
x=function(){return g.createDrmEngine(v)};
|
|
1349
|
+
shaka.Player.prototype.makePreloadManager_=function(a,b,c,d,e,f){d=void 0===d?!0:d;e=void 0===e?!1:e;f=void 0===f?!0:f;var g=this,h,k,l,m,n,p,q,r,t,u,v,w,x,z;return $jscomp.asyncExecutePromiseGeneratorProgram(function(B){if(1==B.nextAddress)return goog.asserts.assert(g.networkingEngine_,"Must have net engine"),h=null,k=shaka.util.ObjectUtils.cloneObject(g.config_),e&&(k.manifest.disableVideo=!0),l=function(){goog.asserts.assert(h,"Must have preload manager");return h.hasBeenAttached()&&h.isDestroyed()?
|
|
1350
|
+
null:h},m=function(){return l()?l().getConfiguration():g.config_},Infinity!=g.maxHwRes_.width||Infinity!=g.maxHwRes_.height||g.config_.ignoreHardwareResolution?B.jumpTo(2):B.yield(shaka.util.Platform.detectMaxHardwareResolution(),3);2!=B.nextAddress&&(n=B.yieldResult,g.maxHwRes_.width=n.width,g.maxHwRes_.height=n.height);p=new shaka.media.ManifestFilterer(k,g.maxHwRes_,null);q={networkingEngine:g.networkingEngine_,filter:function(A){var y,C;return $jscomp.asyncExecutePromiseGeneratorProgram(function(D){if(1==
|
|
1351
|
+
D.nextAddress)return D.yield(p.filterManifest(A),2);if(4!=D.nextAddress){y=D.yieldResult;if(!y)return D.jumpTo(0);C=shaka.Player.makeEvent_(shaka.util.FakeEvent.EventName.TracksChanged);return D.yield(Promise.resolve(),4)}h.dispatchEvent(C);D.jumpToEnd()})},makeTextStreamsForClosedCaptions:function(A){return g.makeTextStreamsForClosedCaptions_(A)},onTimelineRegionAdded:function(A){h.getRegionTimeline().addRegion(A)},onEvent:function(A){return h.dispatchEvent(A)},onError:function(A){return h.onError(A)},
|
|
1352
|
+
isLowLatencyMode:function(){return m().streaming.lowLatencyMode},updateDuration:function(){g.streamingEngine_&&h.hasBeenAttached()&&g.streamingEngine_.updateDuration()},newDrmInfo:function(A){var y=h.getDrmEngine(),C=y?y.getDrmInfo():null;C&&y.getMediaKeys()&&p.processDrmInfos(C.keySystem,A)},onManifestUpdated:function(){var A=shaka.util.FakeEvent.EventName.ManifestUpdated,y=(new Map).set("isLive",g.isLive());h.dispatchEvent(shaka.Player.makeEvent_(A,y));h.addQueuedOperation(!1,function(){if(g.adManager_)g.adManager_.onManifestUpdated(g.isLive())})},
|
|
1353
|
+
getBandwidthEstimate:function(){return g.abrManager_.getBandwidthEstimate()},onMetadata:function(A,y,C,D){var E=A;"com.apple.hls.interstitial"==A&&(E="com.apple.quicktime.HLS",A={startTime:y,endTime:C,values:D},g.adManager_&&(goog.asserts.assert(g.video_,"Must have video"),g.adManager_.onHLSInterstitialMetadata(g,g.video_,A)));D=$jscomp.makeIterator(D);A=D.next();for(var F={};!A.done;F={payload$jscomp$6:void 0},A=D.next())F.payload$jscomp$6=A.value,"ID"!=F.payload$jscomp$6.name&&h.addQueuedOperation(!1,
|
|
1354
|
+
function(H){return function(){g.dispatchMetadataEvent_(y,C,E,H.payload$jscomp$6)}}(F))},disableStream:function(A){return g.disableStream(A,g.config_.streaming.maxDisabledTime)},addFont:function(A,y){return g.addFont(A,y)}};r=new shaka.media.RegionTimeline(function(){return g.seekRange()});r.addEventListener("regionadd",function(A){var y=A.region;g.onRegionEvent_(shaka.util.FakeEvent.EventName.TimelineRegionAdded,y,h);h.addQueuedOperation(!1,function(){g.adManager_&&(g.adManager_.onDashTimedMetadata(y),
|
|
1355
|
+
goog.asserts.assert(g.video_,"Must have video"),g.adManager_.onDASHInterstitialMetadata(g,g.video_,y))})});t=null;k.streaming.observeQualityChanges&&(t=new shaka.media.QualityObserver(function(){return g.getBufferedInfo()}),t.addEventListener("qualitychange",function(A){g.onMediaQualityChange_(A.quality,A.position)}),t.addEventListener("audiotrackchange",function(A){g.onMediaQualityChange_(A.quality,A.position,!0)}));u=!0;v={netEngine:g.networkingEngine_,onError:function(A){return h.onError(A)},onKeyStatus:function(A){h.addQueuedOperation(!0,
|
|
1356
|
+
function(){g.onKeyStatus_(A)})},onExpirationUpdated:function(A,y){var C=shaka.Player.makeEvent_(shaka.util.FakeEvent.EventName.ExpirationUpdated);h.dispatchEvent(C);if((C=h.getParser())&&C.onExpirationUpdated)C.onExpirationUpdated(A,y)},onEvent:function(A){h.dispatchEvent(A);A.type==shaka.util.FakeEvent.EventName.DrmSessionUpdate&&u&&(u=!1,A=Date.now()/1E3-h.getStartTimeOfDRM(),(g.stats_||h.getStats()).setDrmTime(A),g.lcevcDec_&&g.lcevcDec_.hideCanvas())}};w=g.createNetworkingEngine(l);g.networkingEngine_.copyFiltersInto(w);
|
|
1357
|
+
x=function(){return g.createDrmEngine(v)};z={config:k,manifestPlayerInterface:q,regionTimeline:r,qualityObserver:t,createDrmEngine:x,manifestFilterer:p,networkingEngine:w,allowPrefetch:d,allowMakeAbrManager:f};h=new shaka.media.PreloadManager(a,c,b,z);return B.return(h)})};
|
|
1349
1358
|
shaka.Player.prototype.guessMimeType_=function(a){var b=this,c,d;return $jscomp.asyncExecutePromiseGeneratorProgram(function(e){if(1==e.nextAddress)return goog.asserts.assert(b.networkingEngine_,"Should have a net engine!"),c=b.config_.manifest.retryParameters,e.yield(shaka.net.NetworkingUtils.getMimeType(a,b.networkingEngine_,c),2);d=e.yieldResult;"application/x-mpegurl"==d&&shaka.util.Platform.isApple()&&(d="application/vnd.apple.mpegurl");return e.return(d)})};
|
|
1350
1359
|
shaka.Player.prototype.shouldUseSrcEquals_=function(a,b){a=shaka.util.Platform;var c=shaka.util.MimeUtils;if(!a.supportsMediaSource())return!0;if(b){var d=""!=(this.video_||a.anyMediaElement()).canPlayType(b);if(!d)return!1;var e=shaka.media.ManifestParser.isSupported(b);if(!e)return!0;goog.asserts.assert(d&&e,"Both native and MSE playback should be possible!");if(c.isHlsType(b))return a.isApple()&&(this.config_.drm.servers["com.apple.fps"]||this.config_.drm.servers["com.apple.fps.1_0"])?this.config_.streaming.useNativeHlsForFairPlay:
|
|
1351
1360
|
this.config_.streaming.preferNativeHls;if(c.isDashType(b))return this.config_.streaming.preferNativeDash}return!1};shaka.Player.prototype.createTextDisplayer_=function(){var a=this.config_.textDisplayFactory;a!==this.lastTextFactory_&&(this.textDisplayer_=a(),this.textDisplayer_.configure?this.textDisplayer_.configure(this.config_.textDisplayer):shaka.Deprecate.deprecateFeature(5,"Text displayer w/ configure",'Text displayer should have a "configure" method!'),this.lastTextFactory_=a,this.textDisplayer_.setTextVisibility(this.isTextVisible_))};
|
|
@@ -1356,16 +1365,16 @@ shaka.Player.prototype.addBasicMediaListeners_=function(a,b){var c=this,d=functi
|
|
|
1356
1365
|
this.loadEventManager_.listen(a.remote,"disconnect",function(){return $jscomp.asyncExecutePromiseGeneratorProgram(function(e){if(1==e.nextAddress)return c.streamingEngine_&&"disconnected"==a.remote.state?e.yield(c.streamingEngine_.resetMediaSource(),2):e.jumpTo(2);c.onTracksChanged_();e.jumpToEnd()})}));a.audioTracks&&(this.loadEventManager_.listen(a.audioTracks,"addtrack",function(){return c.onTracksChanged_()}),this.loadEventManager_.listen(a.audioTracks,"removetrack",function(){return c.onTracksChanged_()}),
|
|
1357
1366
|
this.loadEventManager_.listen(a.audioTracks,"change",function(){return c.onTracksChanged_()}));a.textTracks&&(this.loadEventManager_.listen(a.textTracks,"addtrack",function(e){if(e.track)switch(e=e.track,goog.asserts.assert(e instanceof TextTrack,"Wrong track type!"),e.kind){case "metadata":c.processTimedMetadataSrcEquals_(e);break;case "chapters":c.activateChaptersTrack_(e);break;default:c.onTracksChanged_()}}),this.loadEventManager_.listen(a.textTracks,"removetrack",function(){return c.onTracksChanged_()}),
|
|
1358
1367
|
this.loadEventManager_.listen(a.textTracks,"change",function(){return c.onTracksChanged_()}));"none"!=a.preload&&this.loadEventManager_.listenOnce(a,"loadedmetadata",function(){var e=Date.now()/1E3-b;c.stats_.setLoadLatency(e)})};
|
|
1359
|
-
shaka.Player.prototype.loadInner_=function(a,b,c){var d=this,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,
|
|
1368
|
+
shaka.Player.prototype.loadInner_=function(a,b,c){var d=this,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,z,B,A,y,C,D;return $jscomp.asyncExecutePromiseGeneratorProgram(function(E){switch(E.nextAddress){case 1:goog.asserts.assert(d.video_,"We should have a media element by now."),goog.asserts.assert(d.manifest_,"The manifest should already be parsed."),goog.asserts.assert(d.assetUri_,"We should have an asset uri by now."),goog.asserts.assert(d.abrManager_,"We should have an abr manager by now."),d.makeStateChangeEvent_("load"),
|
|
1360
1369
|
e=d.video_,d.playRateController_=new shaka.media.PlayRateController({getRate:function(){return e.playbackRate},getDefaultRate:function(){return e.defaultPlaybackRate},setRate:function(F){e.playbackRate=F},movePlayhead:function(F){e.currentTime+=F}}),d.addBasicMediaListeners_(e,a),d.setupLcevc_(d.config_),d.currentTextLanguage_=d.config_.preferredTextLanguage,d.currentTextRole_=d.config_.preferredTextRole,d.currentTextForced_=d.config_.preferForcedSubs,shaka.Player.applyPlayRange_(d.manifest_.presentationTimeline,
|
|
1361
|
-
d.config_.playRangeStart,d.config_.playRangeEnd),d.abrManager_.init(function(F,
|
|
1370
|
+
d.config_.playRangeStart,d.config_.playRangeEnd),d.abrManager_.init(function(F,H,J){return d.switch_(F,H,J)}),d.abrManager_.setMediaElement(e),d.abrManager_.setCmsdManager(d.cmsdManager_),d.streamingEngine_=d.createStreamingEngine(),d.streamingEngine_.configure(d.config_.streaming),d.loadMode_=shaka.Player.LoadMode.MEDIA_SOURCE,d.dispatchEvent(shaka.Player.makeEvent_(shaka.util.FakeEvent.EventName.Streaming)),f=b;case 2:h=d.streamingEngine_.getCurrentVariant();h||f||(f=d.chooseVariant_(),goog.asserts.assert(f,
|
|
1362
1371
|
"Must choose an initial variant!"));k=[];g=h||f;l=$jscomp.makeIterator([g.video,g.audio]);for(m=l.next();!m.done;m=l.next())(n=m.value)&&!n.segmentIndex&&k.push(n.createSegmentIndex());if(!(0<k.length)){E.jumpTo(4);break}return E.yield(Promise.all(k),4);case 4:if(!g||0!=g.disabledUntilTime){E.jumpTo(2);break}if(d.parser_&&d.parser_.onInitialVariantChosen)d.parser_.onInitialVariantChosen(g);d.manifest_.isLowLatency&&(d.config_.streaming.lowLatencyMode?d.configure(d.lowLatencyConfig_):shaka.log.alwaysWarn("Low-latency live stream detected, but low-latency streaming mode is not enabled in Shaka Player. Set streaming.lowLatencyMode configuration to true, and see https://bit.ly/3clctcj for details."));
|
|
1363
1372
|
d.cmcdManager_&&(d.cmcdManager_.setLowLatency(d.manifest_.isLowLatency&&d.config_.streaming.lowLatencyMode),d.cmcdManager_.setStartTimeOfLoad(1E3*a));shaka.Player.applyPlayRange_(d.manifest_.presentationTimeline,d.config_.playRangeStart,d.config_.playRangeEnd);d.streamingEngine_.applyPlayRange(d.config_.playRangeStart,d.config_.playRangeEnd);p=function(F){d.playhead_=d.createPlayhead(F);d.playheadObservers_=d.createPlayheadObserversForMSE_(F);d.startBufferManagement_(e,d.config_.streaming.rebufferingGoal)};
|
|
1364
1373
|
d.config_.streaming.startAtSegmentBoundary||(q=d.startTime_,null==q&&d.manifest_.startTime&&(q=d.manifest_.startTime),p(q));if(h){E.jumpTo(7);break}goog.asserts.assert(f,"Must have chosen an initial variant!");if(!d.config_.streaming.startAtSegmentBoundary){E.jumpTo(8);break}r=d.manifest_.presentationTimeline;t=d.startTime_||d.video_.currentTime;null==d.startTime_&&d.manifest_.startTime&&(t=d.manifest_.startTime);u=r.getSeekRangeStart();v=r.getSeekRangeEnd();t<u?t=u:t>v&&(t=v);return E.yield(d.adjustStartTime_(f,
|
|
1365
|
-
t),9);case 9:w=E.yieldResult,p(w);case 8:d.switchVariant_(f,!0,!1,0);case 7:return d.playhead_.ready(),x=d.getTextTracks().find(function(F){return F.active}),x||((
|
|
1366
|
-
|
|
1367
|
-
d.loadEventManager_.listen(e,"timeupdate",
|
|
1368
|
-
4)}d.preloadNextUrl_=
|
|
1374
|
+
t),9);case 9:w=E.yieldResult,p(w);case 8:d.switchVariant_(f,!0,!1,0);case 7:return d.playhead_.ready(),x=d.getTextTracks().find(function(F){return F.active}),x||((z=d.chooseTextStream_())&&d.addTextStreamToSwitchHistory_(z,!0),f&&d.setInitialTextState_(f,z),z&&d.shouldStreamText_()&&(d.streamingEngine_.switchTextStream(z),d.setTextDisplayerLanguage_())),E.yield(d.streamingEngine_.start(c),10);case 10:d.config_.abr.enabled&&(d.abrManager_.enable(),d.onAbrStatusChanged_());d.onTracksChanged_();d.updateAbrManagerVariants_();
|
|
1375
|
+
B=d.manifest_.variants.some(function(F){return F.primary});d.config_.preferredAudioLanguage||B||shaka.log.warning("No preferred audio language set. We have chosen an arbitrary language initially");if((A=d.isLive())&&(d.config_.streaming.liveSync&&d.config_.streaming.liveSync.enabled||d.manifest_.serviceDescription||d.config_.streaming.liveSync.panicMode)||d.config_.streaming.vodDynamicPlaybackRate)y=function(){return d.onTimeUpdate_()},d.loadEventManager_.listen(e,"timeupdate",y);A||(C=function(){return d.onVideoProgress_()},
|
|
1376
|
+
d.loadEventManager_.listen(e,"timeupdate",C),d.onVideoProgress_(),d.manifest_.nextUrl&&(0<d.config_.streaming.preloadNextUrlWindow&&(D=function(){var F;return $jscomp.asyncExecutePromiseGeneratorProgram(function(H){if(1==H.nextAddress){F=d.seekRange().end-d.video_.currentTime;if(isNaN(F)||!(F<=d.config_.streaming.preloadNextUrlWindow))return H.jumpTo(0);d.loadEventManager_.unlisten(e,"timeupdate",D);goog.asserts.assert(d.manifest_.nextUrl,"this.manifest_.nextUrl should be valid.");return H.yield(d.preload(d.manifest_.nextUrl),
|
|
1377
|
+
4)}d.preloadNextUrl_=H.yieldResult;H.jumpToEnd()})},d.loadEventManager_.listen(e,"timeupdate",D)),d.loadEventManager_.listen(e,"ended",function(){d.load(d.preloadNextUrl_||d.manifest_.nextUrl)})));if(d.adManager_)d.adManager_.onManifestUpdated(A);d.fullyLoaded_=!0;E.jumpToEnd()}})};
|
|
1369
1378
|
shaka.Player.prototype.initializeSrcEqualsDrmInner_=function(a){var b=this,c,d,e,f,g;return $jscomp.asyncExecutePromiseGeneratorProgram(function(h){return 1==h.nextAddress?(c=shaka.util.ManifestParserUtils.ContentType,goog.asserts.assert(b.networkingEngine_,"|onInitializeSrcEqualsDrm_| should never be called after |destroy|"),goog.asserts.assert(b.config_,"|onInitializeSrcEqualsDrm_| should never be called after |destroy|"),d=Date.now()/1E3,e=!0,b.drmEngine_=b.createDrmEngine({netEngine:b.networkingEngine_,
|
|
1370
1379
|
onError:function(k){b.onError_(k)},onKeyStatus:function(k){},onExpirationUpdated:function(k,l){k=shaka.Player.makeEvent_(shaka.util.FakeEvent.EventName.ExpirationUpdated);b.dispatchEvent(k)},onEvent:function(k){b.dispatchEvent(k);k.type==shaka.util.FakeEvent.EventName.DrmSessionUpdate&&e&&(e=!1,k=Date.now()/1E3-d,b.stats_.setDrmTime(k))}}),b.drmEngine_.configure(b.config_.drm),f={id:0,language:"und",disabledUntilTime:0,primary:!1,audio:null,video:null,bandwidth:100,allowedByApplication:!0,allowedByKeySystem:!0,
|
|
1371
1380
|
decodingInfos:[]},g={id:0,originalId:null,groupId:null,createSegmentIndex:function(){return Promise.resolve()},segmentIndex:null,mimeType:a?shaka.util.MimeUtils.getBasicType(a):"",codecs:a?shaka.util.MimeUtils.getCodecs(a):"",encrypted:!0,drmInfos:[],keyIds:new Set,language:"und",originalLanguage:null,label:null,type:c.VIDEO,primary:!1,trickModeVideo:null,emsgSchemeIdUris:null,roles:[],forced:!1,channelsCount:null,audioSamplingRate:null,spatialAudio:!1,closedCaptions:null,accessibilityPurpose:null,
|
|
@@ -1375,9 +1384,9 @@ c.playRateController_=new shaka.media.PlayRateController({getRate:function(){ret
|
|
|
1375
1384
|
v.mode});u&&(u.mode="hidden")},c.loadEventManager_.listen(d,"enterpictureinpicture",function(){return g()}),c.loadEventManager_.listen(d,"leavepictureinpicture",function(){return h()}),d.remote?(c.loadEventManager_.listen(d.remote,"connect",function(){return h()}),c.loadEventManager_.listen(d.remote,"connecting",function(){return h()}),c.loadEventManager_.listen(d.remote,"disconnect",function(){return h()})):"webkitCurrentPlaybackTargetIsWireless"in d&&c.loadEventManager_.listen(d,"webkitcurrentplaybacktargetiswirelesschanged",
|
|
1376
1385
|
function(){return h()}),k=d,k.webkitSupportsFullscreen&&c.loadEventManager_.listen(k,"webkitpresentationmodechanged",function(){"inline"!=k.webkitPresentationMode?g():h()}));c.addBasicMediaListeners_(d,a);l=c.cmcdManager_.appendSrcData(c.assetUri_,b);!l.includes("#t=")&&(0<c.config_.playRangeStart||isFinite(c.config_.playRangeEnd))&&(l+="#t=",0<c.config_.playRangeStart&&(l+=c.config_.playRangeStart),isFinite(c.config_.playRangeEnd)&&(l+=","+c.config_.playRangeEnd));if(!c.mediaSourceEngine_){t.jumpTo(2);
|
|
1377
1386
|
break}return t.yield(c.mediaSourceEngine_.destroy(),3);case 3:c.mediaSourceEngine_=null;case 2:return shaka.util.Dom.removeAllChildren(d),d.src=l,(shaka.util.Platform.isTizen()||shaka.util.Platform.isWebOS())&&d.load(),"none"!=d.preload&&!d.autoplay&&shaka.util.MimeUtils.isHlsType(b)&&shaka.util.Platform.safariVersion()&&d.load(),c.loadMode_=shaka.Player.LoadMode.SRC_EQUALS,c.dispatchEvent(shaka.Player.makeEvent_(shaka.util.FakeEvent.EventName.Streaming)),m=new shaka.util.PublicPromise,shaka.util.MediaReadyState.waitForReadyState(d,
|
|
1378
|
-
HTMLMediaElement.HAVE_METADATA,c.loadEventManager_,function(){c.playhead_.ready();m.resolve()}),shaka.util.MediaReadyState.waitForReadyState(d,HTMLMediaElement.HAVE_CURRENT_DATA,c.loadEventManager_,function(){var u,v,w,x,
|
|
1379
|
-
|
|
1380
|
-
(v?(
|
|
1387
|
+
HTMLMediaElement.HAVE_METADATA,c.loadEventManager_,function(){c.playhead_.ready();m.resolve()}),shaka.util.MediaReadyState.waitForReadyState(d,HTMLMediaElement.HAVE_CURRENT_DATA,c.loadEventManager_,function(){var u,v,w,x,z;return $jscomp.asyncExecutePromiseGeneratorProgram(function(B){if(1==B.nextAddress)return c.setupPreferredAudioOnSrc_(),u=c.getFilteredTextTracks_(),u.find(function(A){return"disabled"!=A.mode})?(0<u.length&&(c.isTextVisible_=!0,c.textDisplayer_.setTextVisibility(!0)),B.jumpTo(2)):
|
|
1388
|
+
B.yield(new Promise(function(A){c.loadEventManager_.listenOnce(d.textTracks,"change",A);(new shaka.util.Timer(A)).tickAfter(1)}),2);if(e)return B.return();c.getFilteredTextTracks_().length&&(c.textDisplayer_.enableTextDisplayer?c.textDisplayer_.enableTextDisplayer():shaka.Deprecate.deprecateFeature(5,"Text displayer w/ enableTextDisplayer",'Text displayer should have a "enableTextDisplayer" method!'));v=!1;w=$jscomp.makeIterator(u);for(x=w.next();!x.done;x=w.next())z=x.value,"disabled"!==z.mode&&
|
|
1389
|
+
(v?(z.mode="disabled",shaka.log.alwaysWarn("Found more than one enabled text track, disabling it",z)):(c.enableNativeTrack_(z),v=!0));c.setupPreferredTextOnSrc_();B.jumpToEnd()})}),d.error?m.reject(c.videoErrorToShakaError_()):"none"==d.preload&&(shaka.log.alwaysWarn('With <video preload="none">, the browser will not load anything until play() is called. We are unable to measure load latency in a meaningful way, and we cannot provide track info yet. Please do not use preload="none" with Shaka Player.'),
|
|
1381
1390
|
m.resolve()),c.loadEventManager_.listenOnce(d,"error",function(){m.reject(c.videoErrorToShakaError_())}),t.yield(shaka.util.Functional.promiseWithTimeout(c.config_.streaming.loadTimeout,m),4);case 4:if((n=c.isLive())&&(c.config_.streaming.liveSync&&c.config_.streaming.liveSync.enabled||c.config_.streaming.liveSync.panicMode)||c.config_.streaming.vodDynamicPlaybackRate)p=function(){return c.onTimeUpdate_()},c.loadEventManager_.listen(d,"timeupdate",p);n||(q=function(){return c.onVideoProgress_()},
|
|
1382
1391
|
c.loadEventManager_.listen(d,"timeupdate",q),c.onVideoProgress_());c.adManager_&&(c.adManager_.onManifestUpdated(n),n&&(r=c.seekRange().end,c.loadEventManager_.listen(d,"progress",function(){var u=c.seekRange().end;r!=u&&(c.adManager_.onManifestUpdated(c.isLive()),r=u)})));c.fullyLoaded_=!0;t.jumpToEnd()}})};shaka.Player.prototype.setupPreferredAudioOnSrc_=function(){var a=this.config_.preferredAudioLanguage;""!=a&&this.selectAudioLanguage(a,this.config_.preferredVariantRole)};
|
|
1383
1392
|
shaka.Player.prototype.setupPreferredTextOnSrc_=function(){var a=this.config_.preferredTextLanguage;""!=a&&this.selectTextLanguage(a,this.config_.preferredTextRole,this.config_.preferForcedSubs)};
|
|
@@ -1401,7 +1410,7 @@ this.bufferObserver_.update(b,a)&&this.updateBufferState_()};shaka.Player.protot
|
|
|
1401
1410
|
shaka.Player.prototype.createCmcd_=function(){var a=this;return new shaka.util.CmcdManager({getBandwidthEstimate:function(){return a.abrManager_?a.abrManager_.getBandwidthEstimate():NaN},getBufferedInfo:function(){return a.getBufferedInfo()},getCurrentTime:function(){return a.video_?a.video_.currentTime:0},getPlaybackRate:function(){return a.getPlaybackRate()},getNetworkingEngine:function(){return a.getNetworkingEngine()},getVariantTracks:function(){return a.getVariantTracks()},isLive:function(){return a.isLive()},
|
|
1402
1411
|
getLiveLatency:function(){return a.getLiveLatency()}},this.config_.cmcd)};shaka.Player.prototype.createCmsd_=function(){return new shaka.util.CmsdManager(this.config_.cmsd)};
|
|
1403
1412
|
shaka.Player.prototype.createStreamingEngine=function(){var a=this;goog.asserts.assert(this.abrManager_&&this.mediaSourceEngine_&&this.manifest_,"Must not be destroyed");return new shaka.media.StreamingEngine(this.manifest_,{getPresentationTime:function(){return a.playhead_?a.playhead_.getTime():0},getBandwidthEstimate:function(){return a.abrManager_.getBandwidthEstimate()},getPlaybackRate:function(){return a.getPlaybackRate()},mediaSourceEngine:this.mediaSourceEngine_,netEngine:this.networkingEngine_,
|
|
1404
|
-
onError:function(b){return a.onError_(b)},onEvent:function(b){return a.dispatchEvent(b)},onSegmentAppended:function(b,c){a.onSegmentAppended_(b.startTime,b.endTime,c.type,
|
|
1413
|
+
onError:function(b){return a.onError_(b)},onEvent:function(b){return a.dispatchEvent(b)},onSegmentAppended:function(b,c,d){a.onSegmentAppended_(b.startTime,b.endTime,c.type,d)},onInitSegmentAppended:function(b,c){(c=c.getMediaQuality())&&a.qualityObserver_&&a.qualityObserver_.addMediaQualityChange(c,b)},beforeAppendSegment:function(b,c){return a.drmEngine_.parseInbandPssh(b,c)},disableStream:function(b,c){return a.disableStream(b,c)}})};
|
|
1405
1414
|
shaka.Player.prototype.configure=function(a,b){var c=shaka.util.Platform;goog.asserts.assert(this.config_,"Config must not be null!");goog.asserts.assert("object"==typeof a||2==arguments.length,"String configs should have values!");2==arguments.length&&"string"==typeof a&&(a=shaka.util.ConfigUtils.convertToConfigObject(a,b));goog.asserts.assert("object"==typeof a,"Should be an object!");a.streaming&&"forceTransmuxTS"in a.streaming&&(shaka.Deprecate.deprecateFeature(5,"streaming.forceTransmuxTS configuration",
|
|
1406
1415
|
"Please Use mediaSource.forceTransmux instead."),a.mediaSource.mediaSource=a.streaming.forceTransmuxTS,delete a.streaming.forceTransmuxTS);a.streaming&&"forceTransmux"in a.streaming&&(shaka.Deprecate.deprecateFeature(5,"streaming.forceTransmux configuration","Please Use mediaSource.forceTransmux instead."),a.mediaSource.mediaSource=a.streaming.forceTransmux,delete a.streaming.forceTransmux);a.streaming&&"useNativeHlsOnSafari"in a.streaming&&(shaka.Deprecate.deprecateFeature(5,"streaming.useNativeHlsOnSafari configuration",
|
|
1407
1416
|
"Please Use streaming.useNativeHlsForFairPlay or streaming.preferNativeHls instead."),a.streaming.preferNativeHls=a.streaming.useNativeHlsOnSafari&&c.isApple(),delete a.streaming.useNativeHlsOnSafari);a.streaming&&"boolean"==typeof a.streaming.liveSync&&(shaka.Deprecate.deprecateFeature(5,"streaming.liveSync","Please Use streaming.liveSync.enabled instead."),c=a.streaming.liveSync,a.streaming.liveSync={},a.streaming.liveSync.enabled=c);if(a.streaming&&!(a.streaming.liveSync&&"targetLatency"in a.streaming.liveSync)&&
|
|
@@ -1432,8 +1441,7 @@ shaka.Player.prototype.seekRange=function(){if(this.manifest_&&!this.isRemotePla
|
|
|
1432
1441
|
1),c);return{start:b,end:a}}return{start:0,end:0}};shaka.Player.prototype.goToLive=function(){this.isLive()?this.video_.currentTime=this.seekRange().end:shaka.log.warning("goToLive is for live streams!")};shaka.Player.prototype.isFullyLoaded=function(){return this.fullyLoaded_};shaka.Player.prototype.keySystem=function(){return shaka.drm.DrmUtils.keySystem(this.drmInfo())};shaka.Player.prototype.drmInfo=function(){return this.drmEngine_?this.drmEngine_.getDrmInfo():null};
|
|
1433
1442
|
shaka.Player.prototype.getDrmEngine=function(){return this.drmEngine_};shaka.Player.prototype.getExpiration=function(){return this.drmEngine_?this.drmEngine_.getExpiration():Infinity};shaka.Player.prototype.getActiveSessionsMetadata=function(){return this.drmEngine_?this.drmEngine_.getActiveSessionsMetadata():[]};shaka.Player.prototype.getKeyStatuses=function(){return this.drmEngine_?this.drmEngine_.getKeyStatuses():{}};
|
|
1434
1443
|
shaka.Player.prototype.isBuffering=function(){var a=shaka.media.BufferingObserver.State;return this.bufferObserver_?this.bufferObserver_.getState()==a.STARVING:!1};shaka.Player.prototype.getPlaybackRate=function(){return this.video_?this.playRateController_?this.playRateController_.getRealRate():1:0};
|
|
1435
|
-
shaka.Player.prototype.trickPlay=function(a,b){
|
|
1436
|
-
function(){var d=c.video_.currentTime,e=c.seekRange(),f=c.config_.streaming.safeSeekOffset;0<a?Math.floor(d)>=Math.floor(e.end)&&c.cancelTrickPlay():Math.floor(d)<=Math.floor(e.start+f)&&c.cancelTrickPlay()}))};
|
|
1444
|
+
shaka.Player.prototype.trickPlay=function(a,b){b=void 0===b?!0:b;goog.asserts.assert(0!=a,"Should never set a trick play rate of 0!");0==a?shaka.log.alwaysWarn("A trick play rate of 0 is unsupported!"):(this.playRateController_.set(a),this.loadMode_==shaka.Player.LoadMode.MEDIA_SOURCE&&(this.abrManager_.playbackRateChanged(a),this.streamingEngine_.setTrickPlay(b&&1<Math.abs(a))),this.setupTrickPlayEventListeners_(a))};
|
|
1437
1445
|
shaka.Player.prototype.cancelTrickPlay=function(){var a=this.playRateController_.getDefaultRate();this.loadMode_==shaka.Player.LoadMode.SRC_EQUALS&&this.playRateController_.set(a);this.loadMode_==shaka.Player.LoadMode.MEDIA_SOURCE&&(this.playRateController_.set(a),this.abrManager_.playbackRateChanged(a),this.streamingEngine_.setTrickPlay(!1));this.trickPlayEventManager_.removeAll()};
|
|
1438
1446
|
shaka.Player.prototype.getVariantTracks=function(){if(this.manifest_&&!this.isRemotePlayback()){for(var a=this.streamingEngine_?this.streamingEngine_.getCurrentVariant():null,b=[],c=0,d=$jscomp.makeIterator(this.manifest_.variants),e=d.next();!e.done;e=d.next())if(e=e.value,shaka.util.StreamUtils.isPlayable(e)){var f=shaka.util.StreamUtils.variantToTrack(e);f.active=e==a;f.active||1==c||null==a||e.video!=a.video||e.audio!=a.audio||(f.active=!0);f.active&&c++;b.push(f)}goog.asserts.assert(1>=c,"It should only have one active track");
|
|
1439
1447
|
return b}return this.video_&&this.video_.audioTracks?Array.from(this.video_.audioTracks).map(function(g){return shaka.util.StreamUtils.html5AudioTrackToTrack(g)}):[]};
|
|
@@ -1442,19 +1450,19 @@ shaka.Player.prototype.getImageTracks=function(){var a=shaka.util.StreamUtils,b=
|
|
|
1442
1450
|
shaka.Player.prototype.getAllThumbnails=function(a){var b=this,c,d,e,f;return $jscomp.asyncExecutePromiseGeneratorProgram(function(g){if(1==g.nextAddress){if(b.loadMode_!=shaka.Player.LoadMode.MEDIA_SOURCE&&b.loadMode_!=shaka.Player.LoadMode.SRC_EQUALS)return g.return(null);c=b.externalSrcEqualsThumbnailsStreams_;b.manifest_&&(c=b.manifest_.imageStreams);return(d=c.find(function(h){return h.id==a}))?d.segmentIndex?g.jumpTo(2):g.yield(d.createSegmentIndex(),2):g.return(null)}if(4!=g.nextAddress)return e=
|
|
1443
1451
|
[],d.segmentIndex.forEachTopLevelReference(function(h){var k=b.parseTilesLayout_(h.getTilesLayout()||d.tilesLayout);if(k){k=k.rows*k.columns;for(var l=h.trueEndTime-h.startTime,m=0;m<k;m++)e.push(b.getThumbnails(a,h.startTime+l*m/k))}}),g.yield(Promise.all(e),4);f=g.yieldResult;return g.return(f.filter(function(h){return h}))})};
|
|
1444
1452
|
shaka.Player.prototype.parseTilesLayout_=function(a){if(!a)return null;var b=/(\d+)x(\d+)/.exec(a);if(!b)return shaka.log.warning("Tiles layout does not contain a valid format (columns x rows)"),null;a=parseInt(b[1],10);b=parseInt(b[2],10);return{columns:a,rows:b}};
|
|
1445
|
-
shaka.Player.prototype.getThumbnails=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,
|
|
1446
|
-
e.segmentIndex.find(b);if(null==f)return
|
|
1453
|
+
shaka.Player.prototype.getThumbnails=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,z;return $jscomp.asyncExecutePromiseGeneratorProgram(function(B){if(1==B.nextAddress){if(c.loadMode_!=shaka.Player.LoadMode.MEDIA_SOURCE&&c.loadMode_!=shaka.Player.LoadMode.SRC_EQUALS)return B.return(null);d=c.externalSrcEqualsThumbnailsStreams_;c.manifest_&&(d=c.manifest_.imageStreams);return(e=d.find(function(A){return A.id==a}))?e.segmentIndex?B.jumpTo(2):B.yield(e.createSegmentIndex(),2):B.return(null)}f=
|
|
1454
|
+
e.segmentIndex.find(b);if(null==f)return B.return(null);g=e.segmentIndex.get(f);h=c.parseTilesLayout_(g.getTilesLayout()||e.tilesLayout);if(!h)return B.return(null);k=e.width||0;l=e.height||0;m=k/h.columns;n=l/h.rows;p=h.columns*h.rows;q=g.trueEndTime-g.startTime;r=g.getTileDuration()||q/p;t=g.startTime;v=u=0;1<p&&(w=Math.floor((b-g.startTime)/r),t=g.startTime+w*r,u=w%h.columns*m,v=Math.floor(w/h.columns)*n);x=!1;if(z=g.getThumbnailSprite())x=!0,n=z.height,u=z.positionX,v=z.positionY,m=z.width;return B.return({segment:g,
|
|
1447
1455
|
imageHeight:l,imageWidth:k,height:n,positionX:u,positionY:v,startTime:t,duration:r,uris:g.getUris(),width:m,sprite:x})})};
|
|
1448
1456
|
shaka.Player.prototype.selectTextTrack=function(a){var b=this,c=function(){var d=b.manifest_.textStreams.find(function(e){return e.id==a.id});d?d==b.streamingEngine_.getCurrentTextStream()?shaka.log.debug("Text track already selected."):(b.addTextStreamToSwitchHistory_(d,!1),b.streamingEngine_.switchTextStream(d),b.onTextChanged_(),b.setTextDisplayerLanguage_(),b.currentTextLanguage_=d.language):b.isRemotePlayback()||shaka.log.error("No stream with id",a.id)};if(this.manifest_&&this.playhead_&&(c(),
|
|
1449
1457
|
!this.isRemotePlayback()))return;(function(){if(b.video_&&b.video_.textTracks){var d=b.getFilteredTextTracks_(),e=d.find(function(f){return"disabled"!==f.mode});(d=d.find(function(f){return shaka.util.StreamUtils.html5TrackId(f)===a.id}))?(e!==d&&(e&&(e.mode="disabled",b.loadEventManager_.unlisten(e,"cuechange"),b.textDisplayer_.remove(0,Infinity)),d&&b.enableNativeTrack_(d)),b.onTextChanged_(),b.setTextDisplayerLanguage_()):shaka.log.error("No track with id",a.id)}})()};
|
|
1450
1458
|
shaka.Player.prototype.enableNativeTrack_=function(a){var b=this;this.loadEventManager_.listen(a,"cuechange",function(){b.textDisplayer_.remove(0,Math.max(0,b.video_.currentTime-b.config_.streaming.bufferBehind));var c=Array.from(a.activeCues||[]).map(shaka.text.Utils.mapNativeCueToShakaCue).filter(shaka.util.Functional.isNotNull);b.textDisplayer_.append(c)});a.mode=document.pictureInPictureElement?"showing":"hidden"};
|
|
1451
|
-
shaka.Player.prototype.selectVariantTrack=function(a,b,c){var d=this;b=void 0===b?!1:b;c=void 0===c?0:c;var e=function(){var f=d.manifest_.variants.find(function(h){return h.id==a.id});if(f)if(shaka.util.StreamUtils.isPlayable(f)){var g=d.streamingEngine_.getCurrentVariant();d.config_.abr.enabled&&(g.video!=f.video||g.audio&&f.audio&&g.audio.language==f.audio.language&&g.audio.channelsCount==f.audio.channelsCount)&&shaka.log.alwaysWarn("Changing tracks while abr manager is enabled will likely result in the selected track being overridden. Consider disabling abr before calling selectVariantTrack().");
|
|
1459
|
+
shaka.Player.prototype.selectVariantTrack=function(a,b,c){var d=this;b=void 0===b?!1:b;c=void 0===c?0:c;var e=function(){var f=d.manifest_.variants.find(function(h){return h.id==a.id});if(f)if(shaka.util.StreamUtils.isPlayable(f)){var g=d.streamingEngine_.getCurrentVariant();d.config_.abr.enabled&&(g.video!=f.video||g.audio&&f.audio&&g.audio.language==f.audio.language&&g.audio.channelsCount==f.audio.channelsCount&&g.audio.label==f.audio.label)&&shaka.log.alwaysWarn("Changing tracks while abr manager is enabled will likely result in the selected track being overridden. Consider disabling abr before calling selectVariantTrack().");
|
|
1452
1460
|
d.isRemotePlayback()?d.switchVariant_(f,!1,!1,0):d.switchVariant_(f,!1,b||!1,c||0);d.currentAdaptationSetCriteria_=new shaka.media.ExampleBasedCriteria(f,d.config_.mediaSource.codecSwitchingStrategy,d.config_.adaptationSetCriteriaFactory);d.updateAbrManagerVariants_()}else shaka.log.error("Unable to switch to restricted track",a.id);else d.isRemotePlayback()||shaka.log.error("No variant with id",a.id)};if(this.manifest_&&this.playhead_&&(e(),!this.isRemotePlayback()))return;(function(){if(d.video_&&
|
|
1453
1461
|
d.video_.audioTracks){var f=Array.from(d.video_.audioTracks);f=$jscomp.makeIterator(f);for(var g=f.next();!g.done;g=f.next())if(g=g.value,shaka.util.StreamUtils.html5TrackId(g)==a.id){d.switchHtml5Track_(g);break}}})()};shaka.Player.prototype.getAudioLanguagesAndRoles=function(){return shaka.Player.getLanguageAndRolesFrom_(this.getVariantTracks())};shaka.Player.prototype.getTextLanguagesAndRoles=function(){return shaka.Player.getLanguageAndRolesFrom_(this.getTextTracks())};
|
|
1454
1462
|
shaka.Player.prototype.getAudioLanguages=function(){return Array.from(shaka.Player.getLanguagesFrom_(this.getVariantTracks()))};shaka.Player.prototype.getTextLanguages=function(){return Array.from(shaka.Player.getLanguagesFrom_(this.getTextTracks()))};
|
|
1455
|
-
shaka.Player.prototype.selectAudioLanguage=function(a,b,c,d,e,f){var
|
|
1456
|
-
r.video?
|
|
1457
|
-
|
|
1463
|
+
shaka.Player.prototype.selectAudioLanguage=function(a,b,c,d,e,f,g){var h=this;c=void 0===c?0:c;d=void 0===d?0:d;e=void 0===e?"":e;f=void 0===f?!1:f;g=void 0===g?"":g;var k=function(){h.currentAdaptationSetCriteria_=h.config_.adaptationSetCriteriaFactory();h.currentAdaptationSetCriteria_.configure({language:a,role:b||"",channelCount:c||0,hdrLevel:"",spatialAudio:f||!1,videoLayout:"",audioLabel:g||"",videoLabel:"",codecSwitchingStrategy:h.config_.mediaSource.codecSwitchingStrategy,audioCodec:e||""});
|
|
1464
|
+
var l=function(r,t){return r.video||t.video?r.video&&t.video?Math.abs((r.video.height||0)-(t.video.height||0))+Math.abs((r.video.width||0)-(t.video.width||0)):Infinity:0},m=h.streamingEngine_.getCurrentVariant(),n=h.currentAdaptationSetCriteria_.create(h.manifest_.variants),p=null;n=$jscomp.makeIterator(n.values());for(var q=n.next();!q.done;q=n.next())q=q.value,shaka.util.StreamUtils.isPlayable(q)&&(!p||l(p,m)>l(q,m))&&(p=q);p==m?shaka.log.debug("Audio already selected."):p?(l=shaka.util.StreamUtils.variantToTrack(p),
|
|
1465
|
+
h.selectVariantTrack(l,!0,d||0)):h.chooseVariantAndSwitch_()};if(this.manifest_&&this.playhead_&&(k(),!this.isRemotePlayback()))return;(function(){if(h.video_&&h.video_.audioTracks){var l=shaka.util.StreamUtils.filterStreamsByLanguageAndRole(h.getVariantTracks(),a,b||"",!1)[0];l&&h.selectVariantTrack(l)}})()};
|
|
1458
1466
|
shaka.Player.prototype.selectTextLanguage=function(a,b,c){var d=this;c=void 0===c?!1:c;var e=function(){d.currentTextLanguage_=a;d.currentTextRole_=b||"";d.currentTextForced_=c||!1;var f=d.chooseTextStream_();f&&(f==d.streamingEngine_.getCurrentTextStream()?shaka.log.debug("Text track already selected."):(d.addTextStreamToSwitchHistory_(f,!1),d.shouldStreamText_()&&(d.streamingEngine_.switchTextStream(f),d.onTextChanged_(),d.setTextDisplayerLanguage_())))};if(this.manifest_&&this.playhead_&&(e(),
|
|
1459
1467
|
!this.isRemotePlayback()))return;(function(){var f=shaka.util.StreamUtils.filterStreamsByLanguageAndRole(d.getTextTracks(),a,b||"",c||!1)[0];f&&d.selectTextTrack(f)})()};
|
|
1460
1468
|
shaka.Player.prototype.selectVariantsByLabel=function(a,b,c){var d=this;b=void 0===b?!0:b;c=void 0===c?0:c;var e=function(){for(var f=null,g=$jscomp.makeIterator(d.manifest_.variants),h=g.next();!h.done;h=g.next())if(h=h.value,h.audio.label==a){f=h;break}null==f?shaka.log.warning("No variants were found with label: "+a+". Ignoring the request to switch."):(d.currentAdaptationSetCriteria_=d.config_.adaptationSetCriteriaFactory(),d.currentAdaptationSetCriteria_.configure({language:f.language,role:"",
|
|
@@ -1470,24 +1478,24 @@ null):new Date(b.getTime()+1E3*a);shaka.log.warning("No way to get playhead time
|
|
|
1470
1478
|
shaka.Player.prototype.getPresentationStartTimeAsDate=function(){if(this.manifest_&&!this.isRemotePlayback()){var a=this.manifest_.presentationTimeline;a=a.getInitialProgramDateTime()||a.getPresentationStartTime();goog.asserts.assert(null!=a,"Presentation start time should not be null!");return new Date(1E3*a)}if(this.video_&&this.video_.getStartDate)return a=this.video_.getStartDate(),isNaN(a.getTime())?(shaka.log.warning("EXT-X-PROGRAM-DATETIME required to get presentation start time as Date!"),
|
|
1471
1479
|
null):a;shaka.log.warning("No way to get presentation start time as Date!");return null};shaka.Player.prototype.getSegmentAvailabilityDuration=function(){if(!this.isLive())return shaka.log.warning("getSegmentAvailabilityDuration is for live streams!"),null;if(this.manifest_)return this.manifest_.presentationTimeline.getSegmentAvailabilityDuration();shaka.log.warning("No way to get segment segment availability duration!");return null};
|
|
1472
1480
|
shaka.Player.prototype.getBufferedInfo=function(){if(this.loadMode_==shaka.Player.LoadMode.MEDIA_SOURCE)return this.mediaSourceEngine_.getBufferedInfo();var a={total:[],audio:[],video:[],text:[]};this.loadMode_==shaka.Player.LoadMode.SRC_EQUALS&&(a.total=shaka.media.TimeRangesUtils.getBufferedInfo(this.video_.buffered));return a};
|
|
1473
|
-
shaka.Player.prototype.getLiveLatency=function(){if(!this.video_)return null;var a=this.getPresentationStartTimeAsDate().getTime()+1E3*this.video_.currentTime;return Date.now()-a};
|
|
1481
|
+
shaka.Player.prototype.getLiveLatency=function(){if(!this.video_||!this.video_.currentTime)return null;var a=this.getPresentationStartTimeAsDate().getTime()+1E3*this.video_.currentTime;return Math.floor(Date.now()-a)};
|
|
1474
1482
|
shaka.Player.prototype.getStats=function(){if(this.loadMode_!=shaka.Player.LoadMode.MEDIA_SOURCE&&this.loadMode_!=shaka.Player.LoadMode.SRC_EQUALS)return shaka.util.Stats.getEmptyBlob();this.updateStateHistory_();goog.asserts.assert(this.video_,"If we have stats, we should have video_");var a=this.video_,b=a.currentTime/a.duration;isNaN(b)||this.isLive()||this.stats_.setCompletionPercent(Math.round(100*b));this.playhead_&&(this.stats_.setGapsJumped(this.playhead_.getGapsJumped()),this.stats_.setStallsDetected(this.playhead_.getStallsDetected()));
|
|
1475
1483
|
a.getVideoPlaybackQuality&&(b=a.getVideoPlaybackQuality(),this.stats_.setDroppedFrames(Number(b.droppedVideoFrames),Number(b.totalVideoFrames)),this.stats_.setCorruptedFrames(Number(b.corruptedVideoFrames)));b=this.drmEngine_?this.drmEngine_.getLicenseTime():NaN;this.stats_.setLicenseTime(b);if(this.loadMode_==shaka.Player.LoadMode.MEDIA_SOURCE){b=this.streamingEngine_.getCurrentVariant();var c=this.streamingEngine_.getCurrentTextStream();if(b){var d=this.playRateController_?this.playRateController_.getRealRate():
|
|
1476
1484
|
1,e=d*b.bandwidth;c&&c.bandwidth&&(e+=d*c.bandwidth);this.stats_.setCurrentStreamBandwidth(e)}b&&b.video&&this.stats_.setResolution(b.video.width||NaN,b.video.height||NaN);this.isLive()&&(b=this.getLiveLatency()||0,this.stats_.setLiveLatency(b/1E3));this.manifest_&&(this.stats_.setManifestPeriodCount(this.manifest_.periodCount),this.stats_.setManifestGapCount(this.manifest_.gapCount),this.manifest_.presentationTimeline&&(b=this.manifest_.presentationTimeline.getMaxSegmentDuration(),this.stats_.setMaxSegmentDuration(b)));
|
|
1477
1485
|
b=this.abrManager_.getBandwidthEstimate();this.stats_.setBandwidthEstimate(b)}this.loadMode_==shaka.Player.LoadMode.SRC_EQUALS&&(this.stats_.addBytesDownloaded(NaN),this.stats_.setResolution(a.videoWidth||NaN,a.videoHeight||NaN));return this.stats_.getBlob()};
|
|
1478
|
-
shaka.Player.prototype.addTextTrackAsync=function(a,b,c,d,e,f,g){g=void 0===g?!1:g;var h=this,k,l,m,n,p,q,r,t,u,v,w,x,
|
|
1486
|
+
shaka.Player.prototype.addTextTrackAsync=function(a,b,c,d,e,f,g){g=void 0===g?!1:g;var h=this,k,l,m,n,p,q,r,t,u,v,w,x,z,B;return $jscomp.asyncExecutePromiseGeneratorProgram(function(A){switch(A.nextAddress){case 1:if(h.loadMode_!=shaka.Player.LoadMode.MEDIA_SOURCE&&h.loadMode_!=shaka.Player.LoadMode.SRC_EQUALS)throw shaka.log.error("Must call load() and wait for it to resolve before adding text tracks."),new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.PLAYER,shaka.util.Error.Code.CONTENT_NOT_LOADED);
|
|
1479
1487
|
"subtitles"!=c&&"captions"!=c&&shaka.log.alwaysWarn("Using a kind value different of `subtitles` or `captions` can cause unwanted issues.");if(d){A.jumpTo(2);break}return A.yield(h.getTextMimetype_(a),3);case 3:d=A.yieldResult;case 2:k=[];h.adManager_&&(k=h.adManager_.getCuePoints());if(h.loadMode_!=shaka.Player.LoadMode.SRC_EQUALS){A.jumpTo(4);break}g&&(c="forced");return A.yield(h.addSrcTrackElement_(a,b,c,d,f||"",k),5);case 5:l=shaka.util.LanguageUtils;m=l.normalize(b);n=h.getTextTracks();if(p=
|
|
1480
|
-
n.find(function(
|
|
1488
|
+
n.find(function(y){return l.normalize(y.language)==m&&y.label==(f||"")&&y.kind==c}))return h.onTracksChanged_(),A.return(p);shaka.log.error("Cannot add this text when loaded with src=");throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.TEXT,shaka.util.Error.Code.CANNOT_ADD_EXTERNAL_TEXT_TO_SRC_EQUALS);case 4:q=shaka.util.ManifestParserUtils.ContentType;r=h.seekRange();t=r.end-r.start;h.manifest_&&(t=h.manifest_.presentationTimeline.getDuration());if(Infinity==
|
|
1481
1489
|
t)throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.CANNOT_ADD_EXTERNAL_TEXT_TO_LIVE_STREAM);if(!k.length){A.jumpTo(6);break}goog.asserts.assert(h.networkingEngine_,"Need networking engine.");return A.yield(h.getTextData_(a,h.networkingEngine_,h.config_.streaming.retryParameters),7);case 7:u=A.yieldResult,v=h.convertToWebVTT_(u,d,k),w=new Blob([v],{type:"text/vtt"}),a=shaka.media.MediaSourceEngine.createObjectURL(w),d="text/vtt";
|
|
1482
1490
|
case 6:x={id:h.nextExternalStreamId_++,originalId:null,groupId:null,createSegmentIndex:function(){return Promise.resolve()},segmentIndex:shaka.media.SegmentIndex.forSingleSegment(0,t,[a]),mimeType:d||"",codecs:e||"",kind:c,encrypted:!1,drmInfos:[],keyIds:new Set,language:b,originalLanguage:b,label:f||null,type:q.TEXT,primary:!1,trickModeVideo:null,emsgSchemeIdUris:null,roles:[],forced:!!g,channelsCount:null,audioSamplingRate:null,spatialAudio:!1,closedCaptions:null,accessibilityPurpose:null,external:!0,
|
|
1483
|
-
fastSwitching:!1,fullMimeTypes:new Set([shaka.util.MimeUtils.getFullType(d||"",e||"")]),isAudioMuxedInVideo:!1};
|
|
1484
|
-
shaka.Player.prototype.addThumbnailsTrack=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,
|
|
1485
|
-
if(b){
|
|
1486
|
-
shaka.util.Error.Code.CANNOT_ADD_EXTERNAL_THUMBNAILS_TO_LIVE_STREAM);goog.asserts.assert(c.networkingEngine_,"Need networking engine.");return
|
|
1491
|
+
fastSwitching:!1,fullMimeTypes:new Set([shaka.util.MimeUtils.getFullType(d||"",e||"")]),isAudioMuxedInVideo:!1};z=shaka.util.MimeUtils.getFullType(x.mimeType,x.codecs);B=shaka.text.TextEngine.isTypeSupported(z);if(!B)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.TEXT,shaka.util.Error.Code.MISSING_TEXT_PLUGIN,d);h.manifest_.textStreams.push(x);h.onTracksChanged_();return A.return(shaka.util.StreamUtils.textStreamToTrack(x))}})};
|
|
1492
|
+
shaka.Player.prototype.addThumbnailsTrack=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,z;return $jscomp.asyncExecutePromiseGeneratorProgram(function(B){switch(B.nextAddress){case 1:if(c.loadMode_!=shaka.Player.LoadMode.MEDIA_SOURCE&&c.loadMode_!=shaka.Player.LoadMode.SRC_EQUALS)throw shaka.log.error("Must call load() and wait for it to resolve before adding image tracks."),new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.PLAYER,shaka.util.Error.Code.CONTENT_NOT_LOADED);
|
|
1493
|
+
if(b){B.jumpTo(2);break}return B.yield(c.getTextMimetype_(a),3);case 3:b=B.yieldResult;case 2:if("text/vtt"!=b)throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.TEXT,shaka.util.Error.Code.UNSUPPORTED_EXTERNAL_THUMBNAILS_URI,a);d=shaka.util.ManifestParserUtils.ContentType;e=c.seekRange();f=e.end-e.start;c.manifest_&&(f=c.manifest_.presentationTimeline.getDuration());if(Infinity==f)throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.MANIFEST,
|
|
1494
|
+
shaka.util.Error.Code.CANNOT_ADD_EXTERNAL_THUMBNAILS_TO_LIVE_STREAM);goog.asserts.assert(c.networkingEngine_,"Need networking engine.");return B.yield(c.getTextData_(a,c.networkingEngine_,c.config_.streaming.retryParameters),4);case 4:g=B.yieldResult;h=shaka.text.TextEngine.findParser(b);if(!h)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.TEXT,shaka.util.Error.Code.MISSING_TEXT_PLUGIN,b);k=h();l={periodStart:0,segmentStart:0,segmentEnd:f,vttOffset:0};m=shaka.util.BufferUtils.toUint8(g);
|
|
1487
1495
|
n=k.parseMedia(m,l,a,[]);p=[];q=$jscomp.makeIterator(n);r=q.next();for(t={};!r.done;t={uris$jscomp$5:void 0,cue$jscomp$39:void 0},r=q.next())t.cue$jscomp$39=r.value,t.uris$jscomp$5=null,u=function(A){return function(){null==A.uris$jscomp$5&&(A.uris$jscomp$5=shaka.util.ManifestParserUtils.resolveUris([a],[A.cue$jscomp$39.payload]));return A.uris$jscomp$5||[]}}(t),v=new shaka.media.SegmentReference(t.cue$jscomp$39.startTime,t.cue$jscomp$39.endTime,u,0,null,null,0,0,Infinity),t.cue$jscomp$39.payload.includes("#xywh")&&
|
|
1488
|
-
(w=t.cue$jscomp$39.payload.split("#xywh=")[1].split(","),4===w.length&&v.setThumbnailSprite({height:parseInt(w[3],10),positionX:parseInt(w[0],10),positionY:parseInt(w[1],10),width:parseInt(w[2],10)})),p.push(v);x=b;if(!p.length){
|
|
1496
|
+
(w=t.cue$jscomp$39.payload.split("#xywh=")[1].split(","),4===w.length&&v.setThumbnailSprite({height:parseInt(w[3],10),positionX:parseInt(w[0],10),positionY:parseInt(w[1],10),width:parseInt(w[2],10)})),p.push(v);x=b;if(!p.length){B.jumpTo(5);break}return B.yield(shaka.net.NetworkingUtils.getMimeType(p[0].getUris()[0],c.networkingEngine_,c.config_.manifest.retryParameters),6);case 6:x=B.yieldResult;case 5:return z={id:c.nextExternalStreamId_++,originalId:null,groupId:null,createSegmentIndex:function(){return Promise.resolve()},
|
|
1489
1497
|
segmentIndex:new shaka.media.SegmentIndex(p),mimeType:x||"",codecs:"",kind:"",encrypted:!1,drmInfos:[],keyIds:new Set,language:"und",originalLanguage:null,label:null,type:d.IMAGE,primary:!1,trickModeVideo:null,emsgSchemeIdUris:null,roles:[],forced:!1,channelsCount:null,audioSamplingRate:null,spatialAudio:!1,closedCaptions:null,tilesLayout:"1x1",accessibilityPurpose:null,external:!0,fastSwitching:!1,fullMimeTypes:new Set([shaka.util.MimeUtils.getFullType(x||"","")]),isAudioMuxedInVideo:!1},c.loadMode_==
|
|
1490
|
-
shaka.Player.LoadMode.SRC_EQUALS?c.externalSrcEqualsThumbnailsStreams_.push(
|
|
1498
|
+
shaka.Player.LoadMode.SRC_EQUALS?c.externalSrcEqualsThumbnailsStreams_.push(z):c.manifest_.imageStreams.push(z),c.onTracksChanged_(),B.return(shaka.util.StreamUtils.imageStreamToTrack(z))}})};
|
|
1491
1499
|
shaka.Player.prototype.addChaptersTrack=function(a,b,c){var d=this,e,f,g,h;return $jscomp.asyncExecutePromiseGeneratorProgram(function(k){switch(k.nextAddress){case 1:if(d.loadMode_!=shaka.Player.LoadMode.MEDIA_SOURCE&&d.loadMode_!=shaka.Player.LoadMode.SRC_EQUALS)throw shaka.log.error("Must call load() and wait for it to resolve before adding chapters tracks."),new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.PLAYER,shaka.util.Error.Code.CONTENT_NOT_LOADED);if(c){k.jumpTo(2);
|
|
1492
1500
|
break}return k.yield(d.getTextMimetype_(a),3);case 3:c=k.yieldResult;case 2:return e=[],d.adManager_&&(e=d.adManager_.getCuePoints()),k.yield(d.addSrcTrackElement_(a,b,"chapters",c,"",e),4);case 4:f=k.yieldResult;g=d.getChaptersTracks();h=g.find(function(l){return l.language==b});if(!h){k.jumpTo(5);break}return k.yield(new Promise(function(l,m){d.loadEventManager_.listenOnce(f,"load",l);d.loadEventManager_.listenOnce(f,"error",function(n){m(new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,
|
|
1493
1501
|
shaka.util.Error.Category.TEXT,shaka.util.Error.Code.CHAPTERS_TRACK_FAILED))})}),6);case 6:return d.onTracksChanged_(),k.return(h);case 5:throw shaka.log.error("Cannot add this text when loaded with src="),new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.TEXT,shaka.util.Error.Code.CANNOT_ADD_EXTERNAL_TEXT_TO_SRC_EQUALS);}})};
|
|
@@ -1511,7 +1519,8 @@ shaka.Player.prototype.adjustStartTime_=function(a,b){var c,d,e,f,g;return $jsco
|
|
|
1511
1519
|
"Segment should start before target time!");return q.return(p)})},h.yield(e(c,b),2);if(3!=h.nextAddress)return f=h.yieldResult,h.yield(e(d,b),3);g=h.yieldResult;return null!=g&&null!=f?h.return(Math.max(g,f)):null!=g?h.return(g):null!=f?h.return(f):h.return(b)})};
|
|
1512
1520
|
shaka.Player.prototype.updateBufferState_=function(){var a=this.isBuffering();shaka.log.v2("Player changing buffering state to",a);if(this.stats_&&this.bufferObserver_&&this.playhead_){0==this.config_.streaming.rebufferingGoal?this.playRateController_.setBuffering(!1):this.playRateController_.setBuffering(a);this.cmcdManager_&&this.cmcdManager_.setBuffering(a);this.updateStateHistory_();var b=this.config_.streaming.liveSync.dynamicTargetLatency.maxAttempts;if(this.config_.streaming.liveSync.dynamicTargetLatency.enabled&&
|
|
1513
1521
|
a&&this.rebufferingCount_<b){b=this.config_.streaming.liveSync.dynamicTargetLatency.maxLatency;var c=this.config_.streaming.liveSync.targetLatencyTolerance,d=this.config_.streaming.liveSync.dynamicTargetLatency.rebufferIncrement;this.currentTargetLatency_&&(this.currentTargetLatency_=Math.min(this.currentTargetLatency_+ ++this.rebufferingCount_*d,b-c))}}b=shaka.util.FakeEvent.EventName.Buffering;a=(new Map).set("buffering",a);this.dispatchEvent(shaka.Player.makeEvent_(b,a))};
|
|
1514
|
-
shaka.Player.prototype.onRateChange_=function(){var a=this.video_.playbackRate;0!=a&&(this.playRateController_&&this.playRateController_.set(a),a=shaka.Player.makeEvent_(shaka.util.FakeEvent.EventName.RateChange),this.dispatchEvent(a))};
|
|
1522
|
+
shaka.Player.prototype.onRateChange_=function(){var a=this.video_.playbackRate;0!=a&&(this.playRateController_&&(this.playRateController_.set(a),this.loadMode_==shaka.Player.LoadMode.MEDIA_SOURCE&&this.abrManager_.playbackRateChanged(a),this.setupTrickPlayEventListeners_(a)),a=shaka.Player.makeEvent_(shaka.util.FakeEvent.EventName.RateChange),this.dispatchEvent(a))};
|
|
1523
|
+
shaka.Player.prototype.setupTrickPlayEventListeners_=function(a){var b=this;this.trickPlayEventManager_.removeAll();this.isLive()&&this.trickPlayEventManager_.listen(this.video_,"timeupdate",function(){var c=b.video_.currentTime,d=b.seekRange(),e=b.config_.streaming.safeSeekOffset;0<a?Math.floor(c)>=Math.floor(d.end)&&b.cancelTrickPlay():Math.floor(c)<=Math.floor(d.start+e)&&b.cancelTrickPlay()})};
|
|
1515
1524
|
shaka.Player.prototype.updateStateHistory_=function(){if(this.stats_&&this.bufferObserver_){var a=shaka.media.BufferingObserver.State,b=this.stats_.getStateHistory(),c="playing";this.bufferObserver_.getState()==a.STARVING?c="buffering":this.isEnded()?c="ended":this.video_.paused&&(c="paused");b.update(c)&&(a=shaka.util.FakeEvent.EventName.StateChanged,c=(new Map).set("newstate",c),this.dispatchEvent(shaka.Player.makeEvent_(a,c)))}};
|
|
1516
1525
|
shaka.Player.prototype.onTimeUpdate_=function(){var a=this.video_.playbackRate,b=this.isLive();if(this.config_.streaming.vodDynamicPlaybackRate&&!b){var c=this.config_.streaming.vodDynamicPlaybackRateLowBufferRate,d=this.getBufferFullness(),e=this.config_.streaming.vodDynamicPlaybackRateBufferRatio;d<=e?a!=c&&(shaka.log.debug("Buffer fullness ratio ("+d+") is less than the vodDynamicPlaybackRateBufferRatio ("+e+"). Updating playbackRate to "+c),this.trickPlay(c,!1)):1==d&&a!==this.playRateController_.getDefaultRate()&&
|
|
1517
1526
|
(shaka.log.debug("Buffer is full. Cancel trick play."),this.cancelTrickPlay())}if(b&&(b=this.seekRange(),Number.isFinite(b.end)&&!(this.video_.currentTime<b.start||this.video_.paused))){c=this.config_.streaming.liveSync.targetLatencyTolerance;d=this.config_.streaming.liveSync.dynamicTargetLatency.enabled;e=this.config_.streaming.liveSync.dynamicTargetLatency.stabilityThreshold;if(this.config_.streaming.liveSync&&this.config_.streaming.liveSync.enabled){var f=this.config_.streaming.liveSync.targetLatency;
|
|
@@ -1552,10 +1561,10 @@ shaka.util.FakeEvent.EventName.MediaQualityChanged,b))};
|
|
|
1552
1561
|
shaka.Player.prototype.videoErrorToShakaError_=function(a){a=void 0===a?!0:a;goog.asserts.assert(this.video_.error,"Video error expected, but missing!");if(!this.video_.error)return a?new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MEDIA,shaka.util.Error.Code.VIDEO_ERROR):null;var b=this.video_.error.code;if(!a&&1==b)return null;if(a=this.video_.error.msExtendedCode)0>a&&(a+=Math.pow(2,32)),a=a.toString(16);return new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
|
|
1553
1562
|
shaka.util.Error.Category.MEDIA,shaka.util.Error.Code.VIDEO_ERROR,b,a,this.video_.error.message)};shaka.Player.prototype.onVideoError_=function(a){if(a=this.videoErrorToShakaError_(!1))this.onError_(a)};
|
|
1554
1563
|
shaka.Player.prototype.onKeyStatus_=function(a){goog.asserts.assert(this.streamingEngine_,"Cannot be called in src= mode");var b=shaka.Player.makeEvent_(shaka.util.FakeEvent.EventName.KeyStatusChanged);this.dispatchEvent(b);var c=Object.keys(a);0==c.length&&shaka.log.warning("Got a key status event without any key statuses, so we don't know the real key statuses. If we don't have all the keys, you'll need to set restrictions so we don't select those tracks.");1==c.length&&""==c[0]&&(c=["00"],a={"00":a[""]});
|
|
1555
|
-
(b=1==c.length&&"00"==c[0])&&shaka.log.warning("Got a synthetic key status event, so we don't know the real key statuses. If we don't have all the keys, you'll need to set restrictions so we don't select those tracks.");var d=shaka.media.ManifestFilterer.restrictedStatuses,e=!1;goog.asserts.assert(this.drmEngine_,"drmEngine should be non-null here.");if(c.length){c
|
|
1556
|
-
g=$jscomp.makeIterator(
|
|
1557
|
-
(
|
|
1558
|
-
shaka.Player.applyPlayRange_=function(a,b,c){0<b&&(a.isLive()?shaka.log.warning("|playRangeStart| has been configured for live content. Ignoring the setting."):a.setUserSeekStart(b));b=a.getDuration();c<b&&(a.isLive()?shaka.log.warning("|playRangeEnd| has been configured for live content. Ignoring the setting."):a.setDuration(c))};
|
|
1564
|
+
(b=1==c.length&&"00"==c[0])&&shaka.log.warning("Got a synthetic key status event, so we don't know the real key statuses. If we don't have all the keys, you'll need to set restrictions so we don't select those tracks.");var d=shaka.media.ManifestFilterer.restrictedStatuses,e=!1;goog.asserts.assert(this.drmEngine_,"drmEngine should be non-null here.");if(c.length){c=this.keySystem();for(var f=shaka.util.MapUtils.asMap(this.config_.drm.clearKeys),g=$jscomp.makeIterator(this.manifest_.variants),h=g.next();!h.done;h=
|
|
1565
|
+
g.next()){h=h.value;var k=shaka.util.StreamUtils.getVariantStreams(h);k=$jscomp.makeIterator(k);for(var l=k.next();!l.done;l=k.next()){var m=l.value;l=h.allowedByKeySystem;if(m.keyIds.size)if(m.drmInfos.length&&!f.size){m=$jscomp.makeIterator(m.drmInfos);for(var n=m.next();!n.done;n=m.next())if(n=n.value,n.keyIds.size&&n.keySystem==c){h.allowedByKeySystem=!0;n=$jscomp.makeIterator(n.keyIds);for(var p=n.next();!p.done;p=n.next())if(p=p.value,(p=a[b?"00":p])||this.drmEngine_.hasManifestInitData())h.allowedByKeySystem=
|
|
1566
|
+
h.allowedByKeySystem&&!!p&&!d.includes(p)}}else for(h.allowedByKeySystem=!0,m=$jscomp.makeIterator(m.keyIds),n=m.next();!n.done;n=m.next())if(n=n.value,(n=a[b?"00":n])||this.drmEngine_.hasManifestInitData())h.allowedByKeySystem=h.allowedByKeySystem&&!!n&&!d.includes(n);l!=h.allowedByKeySystem&&(e=!0)}}}if(e&&(this.onTracksChanged_(),!this.updateAbrManagerVariants_()))return;(a=this.streamingEngine_.getCurrentVariant())&&!a.allowedByKeySystem&&(shaka.log.debug("Choosing new streams after key status changed"),
|
|
1567
|
+
this.chooseVariantAndSwitch_())};shaka.Player.prototype.shouldStreamText_=function(){return this.config_.streaming.alwaysStreamText||this.isTextTrackVisible()};shaka.Player.applyPlayRange_=function(a,b,c){0<b&&(a.isLive()?shaka.log.warning("|playRangeStart| has been configured for live content. Ignoring the setting."):a.setUserSeekStart(b));b=a.getDuration();c<b&&(a.isLive()?shaka.log.warning("|playRangeEnd| has been configured for live content. Ignoring the setting."):a.setDuration(c))};
|
|
1559
1568
|
shaka.Player.prototype.delayDispatchEvent_=function(a){var b=this;return $jscomp.asyncExecutePromiseGeneratorProgram(function(c){if(1==c.nextAddress)return c.yield(Promise.resolve(),2);b.loadMode_!=shaka.Player.LoadMode.DESTROYED&&b.dispatchEvent(a);c.jumpToEnd()})};shaka.Player.getLanguagesFrom_=function(a){var b=new Set;a=$jscomp.makeIterator(a);for(var c=a.next();!c.done;c=a.next())c=c.value,c.language?b.add(shaka.util.LanguageUtils.normalize(c.language)):b.add("und");return b};
|
|
1560
1569
|
shaka.Player.getLanguageAndRolesFrom_=function(a){var b=new Map,c=new Map;a=$jscomp.makeIterator(a);for(var d=a.next();!d.done;d=a.next()){d=d.value;var e="und",f=[];d.language&&(e=shaka.util.LanguageUtils.normalize(d.language));(f="variant"==d.type?d.audioRoles:d.roles)&&f.length||(f=[""]);b.has(e)||b.set(e,new Set);f=$jscomp.makeIterator(f);for(var g=f.next();!g.done;g=f.next())g=g.value,b.get(e).add(g),d.label&&(c.has(e)||c.set(e,new Map),c.get(e).set(g,d.label))}var h=[];b.forEach(function(k,
|
|
1561
1570
|
l){k=$jscomp.makeIterator(k);for(var m=k.next();!m.done;m=k.next()){m=m.value;var n=null;c.has(l)&&c.get(l).has(m)&&(n=c.get(l).get(m));h.push({language:l,role:m,label:n})}});return h};
|
|
@@ -1578,7 +1587,7 @@ goog.exportProperty(shaka.Player.prototype,"getNonDefaultConfiguration",shaka.Pl
|
|
|
1578
1587
|
goog.exportProperty(shaka.Player.prototype,"configure",shaka.Player.prototype.configure);goog.exportProperty(shaka.Player.prototype,"releaseAllMutexes",shaka.Player.prototype.releaseAllMutexes);goog.exportProperty(shaka.Player.prototype,"destroyAllPreloads",shaka.Player.prototype.destroyAllPreloads);goog.exportProperty(shaka.Player.prototype,"preload",shaka.Player.prototype.preload);goog.exportProperty(shaka.Player.prototype,"detachAndSavePreload",shaka.Player.prototype.detachAndSavePreload);
|
|
1579
1588
|
goog.exportProperty(shaka.Player.prototype,"unloadAndSavePreload",shaka.Player.prototype.unloadAndSavePreload);goog.exportProperty(shaka.Player.prototype,"load",shaka.Player.prototype.load);goog.exportProperty(shaka.Player.prototype,"updateStartTime",shaka.Player.prototype.updateStartTime);goog.exportProperty(shaka.Player.prototype,"unload",shaka.Player.prototype.unload);goog.exportProperty(shaka.Player.prototype,"detach",shaka.Player.prototype.detach);
|
|
1580
1589
|
goog.exportProperty(shaka.Player.prototype,"attachCanvas",shaka.Player.prototype.attachCanvas);goog.exportProperty(shaka.Player.prototype,"attach",shaka.Player.prototype.attach);goog.exportProperty(shaka.Player,"probeSupport",shaka.Player.probeSupport);goog.exportProperty(shaka.Player,"isBrowserSupported",shaka.Player.isBrowserSupported);goog.exportProperty(shaka.Player,"setAdManagerFactory",shaka.Player.setAdManagerFactory);goog.exportProperty(shaka.Player,"registerSupportPlugin",shaka.Player.registerSupportPlugin);
|
|
1581
|
-
goog.exportProperty(shaka.Player.prototype,"destroy",shaka.Player.prototype.destroy);shaka.Player.LoadMode={DESTROYED:0,NOT_LOADED:1,MEDIA_SOURCE:2,SRC_EQUALS:3};goog.exportProperty(shaka.Player,"LoadMode",shaka.Player.LoadMode);shaka.Player.TYPICAL_BUFFERING_THRESHOLD_=.5;shaka.Player.version="v4.13.
|
|
1590
|
+
goog.exportProperty(shaka.Player.prototype,"destroy",shaka.Player.prototype.destroy);shaka.Player.LoadMode={DESTROYED:0,NOT_LOADED:1,MEDIA_SOURCE:2,SRC_EQUALS:3};goog.exportProperty(shaka.Player,"LoadMode",shaka.Player.LoadMode);shaka.Player.TYPICAL_BUFFERING_THRESHOLD_=.5;shaka.Player.version="v4.13.2-debug";goog.exportProperty(shaka.Player,"version",shaka.Player.version);shaka.Deprecate.init(shaka.Player.version);shaka.Player.supportPlugins_=new Map;shaka.Player.adManagerFactory_=null;
|
|
1582
1591
|
shaka.Player.TextTrackLabel="Shaka Player TextTrack";shaka.ads={};shaka.ads.AdsStats=function(){this.loadTimes_=[];this.errors_=this.skipped_=this.playedCompletely_=this.started_=0};shaka.ads.AdsStats.prototype.addLoadTime=function(a){this.loadTimes_.push(a)};shaka.ads.AdsStats.prototype.incrementStarted=function(){this.started_++};shaka.ads.AdsStats.prototype.incrementPlayedCompletely=function(){this.playedCompletely_++};shaka.ads.AdsStats.prototype.incrementSkipped=function(){this.skipped_++};shaka.ads.AdsStats.prototype.incrementErrors=function(){this.errors_++};
|
|
1583
1592
|
shaka.ads.AdsStats.prototype.getAverageLoadTime_=function(){return this.loadTimes_.length?this.loadTimes_.reduce(function(a,b){return a+b},0)/this.loadTimes_.length:0};shaka.ads.AdsStats.prototype.getBlob=function(){return{loadTimes:this.loadTimes_,averageLoadTime:this.getAverageLoadTime_(),started:this.started_,playedCompletely:this.playedCompletely_,skipped:this.skipped_,errors:this.errors_}};shaka.ads.ClientSideAd=function(a,b,c){var d=this;this.ad_=a;this.manager_=b;this.video_=c;this.isPaused_=!1;this.volume_=this.manager_.getVolume();this.eventManager_=new shaka.util.EventManager;this.eventManager_.listen(this.manager_,google.ima.AdEvent.Type.PAUSED,function(){d.isPaused_=!0});this.eventManager_.listen(this.manager_,google.ima.AdEvent.Type.RESUMED,function(){d.isPaused_=!1})};shaka.ads.ClientSideAd.prototype.needsSkipUI=function(){return!1};
|
|
1584
1593
|
shaka.ads.ClientSideAd.prototype.isClientRendering=function(){return!0};shaka.ads.ClientSideAd.prototype.isUsingAnotherMediaElement=function(){return!0};shaka.ads.ClientSideAd.prototype.getDuration=function(){return this.ad_.getDuration()};shaka.ads.ClientSideAd.prototype.getMinSuggestedDuration=function(){return this.ad_.getMinSuggestedDuration()};shaka.ads.ClientSideAd.prototype.getRemainingTime=function(){return this.manager_.getRemainingTime()};shaka.ads.ClientSideAd.prototype.isPaused=function(){return this.isPaused_};
|
|
@@ -1693,24 +1702,24 @@ shaka.ads.InterstitialAdManager.prototype.setupStaticAd_=function(a,b,c,d){var e
|
|
|
1693
1702
|
c-d);p?(e.adEventManager_.removeAll(),e.setupAd_(p,b,++c,Date.now(),d)):e.playingAd_=!1},l=new shaka.ads.InterstitialStaticAd(a,b,c);this.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_STARTED,(new Map).set("ad",l)));"iframe"==g?h.src=a.uri:(h.src=a.uri,h.onerror=function(p){e.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_ERROR,(new Map).set("originalEvent",p)));k()});l=f.viewport;var m=f.topLeft;f=f.size;0==l.x&&0==l.y?(h.width=a.overlay.size.x,h.height=a.overlay.size.y,h.style.bottom=
|
|
1694
1703
|
"10%",h.style.left="0",h.style.right="0",h.style.width="100%",a.overlay.size.y||"iframe"!=g||(h.style.height="auto")):(h.style.height=f.y/l.y*100+"%",h.style.left=m.x/l.x*100+"%",h.style.top=m.y/l.y*100+"%",h.style.width=f.x/l.x*100+"%");this.adContainer_.appendChild(h);var n=Date.now();this.playoutLimitTimer_&&this.playoutLimitTimer_.stop();this.playoutLimitTimer_=new shaka.util.Timer(function(){a.playoutLimit&&(Date.now()-n)/1E3>a.playoutLimit?(e.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_COMPLETE)),
|
|
1695
1704
|
k()):a.endTime&&e.baseVideo_.currentTime>a.endTime?(e.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_COMPLETE)),k()):e.baseVideo_.currentTime<a.startTime&&(e.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_SKIPPED)),k())});a.playoutLimit&&!a.endTime?this.playoutLimitTimer_.tickAfter(a.playoutLimit):a.endTime&&this.playoutLimitTimer_.tickEvery(.025)};
|
|
1696
|
-
shaka.ads.InterstitialAdManager.prototype.setupVideoAd_=function(a,b,c,d,e){var f=this,g,h,k,l,m,n,p,q,r,t,u,v,w,x,
|
|
1697
|
-
D.nextAddress)return"detach"!=
|
|
1705
|
+
shaka.ads.InterstitialAdManager.prototype.setupVideoAd_=function(a,b,c,d,e){var f=this,g,h,k,l,m,n,p,q,r,t,u,v,w,x,z,B,A;return $jscomp.asyncExecutePromiseGeneratorProgram(function(y){switch(y.nextAddress){case 1:goog.asserts.assert(f.video_,"Must have video");g=Date.now();f.playingAd_=!0;if(!f.usingBaseVideo_||1!=c){y.jumpTo(2);break}f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_CONTENT_PAUSE_REQUESTED,(new Map).set("saveLivePosition",!0)));h=new shaka.util.PublicPromise;k=function(C){return $jscomp.asyncExecutePromiseGeneratorProgram(function(D){if(1==
|
|
1706
|
+
D.nextAddress)return"detach"!=C.state?D.jumpTo(0):shaka.util.Platform.isSmartTV()?D.yield(new Promise(function(E){return(new shaka.util.Timer(E)).tickAfter(.1)}),3):D.jumpTo(3);h.resolve();f.adEventManager_.unlisten(f.basePlayer_,"onstatechange",k);D.jumpToEnd()})};f.adEventManager_.listen(f.basePlayer_,"onstatechange",k);return y.yield(h,2);case 2:f.usingBaseVideo_||(f.video_.style.display="",a.overlay?(f.video_.loop=a.loop,l=a.overlay.viewport,m=a.overlay.topLeft,n=a.overlay.size,f.video_.style.height=
|
|
1698
1707
|
n.y/l.y*100+"%",f.video_.style.left=m.x/l.x*100+"%",f.video_.style.top=m.y/l.y*100+"%",f.video_.style.width=n.x/l.x*100+"%"):(f.baseVideo_.pause(),null!=a.resumeOffset&&0!=a.resumeOffset&&(f.baseVideo_.currentTime+=a.resumeOffset),f.video_.loop=!1,f.video_.style.height="100%",f.video_.style.left="0",f.video_.style.top="0",f.video_.style.width="100%"));p=!1;q=function(){if(!f.usingBaseVideo_&&!a.overlay&&null==a.resumeOffset)if(a.timelineRange&&a.endTime&&Infinity!=a.endTime)f.baseVideo_.currentTime!=
|
|
1699
|
-
a.endTime&&(f.baseVideo_.currentTime=a.endTime);else{var
|
|
1708
|
+
a.endTime&&(f.baseVideo_.currentTime=a.endTime);else{var C=Date.now();f.baseVideo_.currentTime+=(C-d)/1E3;d=C}};r=function(C){var D,E;return $jscomp.asyncExecutePromiseGeneratorProgram(function(F){if(1==F.nextAddress){q();D=f.getCurrentInterstitial_(a.pre,c-e);if(C&&a.groupId)for(;D&&D.groupId==a.groupId;)c++,D=f.getCurrentInterstitial_(a.pre,c-e);f.playoutLimitTimer_&&(!a.groupId||D&&D.groupId!=a.groupId)&&(f.playoutLimitTimer_.stop(),f.playoutLimitTimer_=null);if(D&&!D.overlay)return F.jumpTo(2);
|
|
1700
1709
|
a.post&&(f.lastTime_=null,f.lastPlayedAd_=null);return f.usingBaseVideo_?F.yield(f.player_.detach(),4):F.yield(f.player_.unload(),4)}2!=F.nextAddress&&(f.usingBaseVideo_&&(E=a.resumeOffset,null==E&&(E=a.timelineRange&&a.endTime&&Infinity!=a.endTime?a.endTime-(f.lastTime_||0):(Date.now()-d)/1E3),f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_CONTENT_RESUME_REQUESTED,(new Map).set("offset",E)))),f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_STOPPED)),f.adEventManager_.removeAll(),f.playingAd_=
|
|
1701
|
-
!1,f.usingBaseVideo_?f.cuepointsChanged_():(f.video_.style.display="none",q(),f.baseVideo_.ended||f.baseVideo_.play()));f.determineIfUsingBaseVideo_();D&&(f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_STOPPED)),f.adEventManager_.removeAll(),f.setupAd_(D,b,++c,d,e));F.jumpToEnd()})};t=function(
|
|
1702
|
-
0)})};u=function(){return $jscomp.asyncExecutePromiseGeneratorProgram(function(
|
|
1703
|
-
b,c,!f.usingBaseVideo_);f.usingBaseVideo_||(v.setMuted(f.baseVideo_.muted),v.setVolume(f.baseVideo_.volume));f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_STARTED,(new Map).set("ad",v)));if(w=v.canSkipNow())f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_SKIP_STATE_CHANGED));f.adEventManager_.listenOnce(f.player_,"error",t);f.adEventManager_.listen(f.video_,"timeupdate",function(){if(f.video_.duration){var
|
|
1704
|
-
w=
|
|
1705
|
-
"play",function(){f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_RESUMED))});f.adEventManager_.listen(f.video_,"pause",function(){var
|
|
1706
|
-
|
|
1707
|
-
10):
|
|
1708
|
-
shaka.ads.InterstitialAdManager.prototype.getInterstitialsInfo_=function(a){var b=this,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,
|
|
1709
|
-
h=null==f?Math.floor(10*a.startTime)/10:a.startTime;(k=a.endTime)&&Infinity!=a.endTime&&"number"==typeof a.endTime&&(k=null==f?Math.floor(10*a.endTime)/10:a.endTime);l=a.values.find(function(
|
|
1710
|
-
u=parseFloat(w),isNaN(q)&&(u=null);x=null;if(
|
|
1711
|
-
!
|
|
1712
|
-
|
|
1713
|
-
timelineRange:K,loop:!1,overlay:null});
|
|
1710
|
+
!1,f.usingBaseVideo_?f.cuepointsChanged_():(f.video_.style.display="none",q(),f.baseVideo_.ended||f.baseVideo_.play()));f.determineIfUsingBaseVideo_();D&&(f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_STOPPED)),f.adEventManager_.removeAll(),f.setupAd_(D,b,++c,d,e));F.jumpToEnd()})};t=function(C){return $jscomp.asyncExecutePromiseGeneratorProgram(function(D){if(p)return D.return();p=!0;f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_ERROR,(new Map).set("originalEvent",C)));return D.yield(r(!1),
|
|
1711
|
+
0)})};u=function(){return $jscomp.asyncExecutePromiseGeneratorProgram(function(C){if(1==C.nextAddress){if(p)return C.return();p=!0;return C.yield(r(!1),2)}f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_COMPLETE));C.jumpToEnd()})};f.lastOnSkip_=function(){return $jscomp.asyncExecutePromiseGeneratorProgram(function(C){if(p)return C.return();p=!0;f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_SKIPPED));return C.yield(r(!0),0)})};v=new shaka.ads.InterstitialAd(f.video_,a,f.lastOnSkip_,
|
|
1712
|
+
b,c,!f.usingBaseVideo_);f.usingBaseVideo_||(v.setMuted(f.baseVideo_.muted),v.setVolume(f.baseVideo_.volume));f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_STARTED,(new Map).set("ad",v)));if(w=v.canSkipNow())f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_SKIP_STATE_CHANGED));f.adEventManager_.listenOnce(f.player_,"error",t);f.adEventManager_.listen(f.video_,"timeupdate",function(){if(f.video_.duration){var C=v.canSkipNow();if(w!=C&&0<v.getRemainingTime()&&0<v.getDuration())f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_SKIP_STATE_CHANGED));
|
|
1713
|
+
w=C}});f.adEventManager_.listenOnce(f.player_,"firstquartile",function(){q();f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_FIRST_QUARTILE))});f.adEventManager_.listenOnce(f.player_,"midpoint",function(){q();f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_MIDPOINT))});f.adEventManager_.listenOnce(f.player_,"thirdquartile",function(){q();f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_THIRD_QUARTILE))});f.adEventManager_.listenOnce(f.player_,"complete",u);f.adEventManager_.listen(f.video_,
|
|
1714
|
+
"play",function(){f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_RESUMED))});f.adEventManager_.listen(f.video_,"pause",function(){var C=f.player_.getConfiguration();if(f.video_.currentTime>=C.playRangeEnd)u();else f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_PAUSED))});f.adEventManager_.listen(f.video_,"volumechange",function(){if(f.video_.muted)f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_MUTED));else f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_VOLUME_CHANGED))});
|
|
1715
|
+
y.setCatchFinallyBlocks(4);f.updatePlayerConfig_();a.startTime&&a.endTime&&Infinity!=a.endTime&&a.startTime!=a.endTime&&(x=a.endTime-a.startTime,0<x&&f.player_.configure("playRangeEnd",x));a.playoutLimit&&!f.playoutLimitTimer_&&(f.playoutLimitTimer_=(new shaka.util.Timer(function(){f.lastOnSkip_()})).tickAfter(a.playoutLimit),f.player_.configure("playRangeEnd",a.playoutLimit));return y.yield(f.player_.attach(f.video_),6);case 6:return f.preloadManagerInterstitials_.has(a)?y.yield(f.preloadManagerInterstitials_.get(a),
|
|
1716
|
+
10):y.yield(f.player_.load(a.uri,null,a.mimeType||void 0),8);case 10:return z=y.yieldResult,f.preloadManagerInterstitials_.delete(a),z?y.yield(f.player_.load(z),8):y.yield(f.player_.load(a.uri,null,a.mimeType||void 0),8);case 8:B=(Date.now()-g)/1E3;f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.ADS_LOADED,(new Map).set("loadTime",B)));f.usingBaseVideo_&&f.baseVideo_.play();y.leaveTryBlock(0);break;case 4:A=y.enterCatchBlock();if(!f.playingAd_)return y.return();t(A);y.jumpToEnd()}})};
|
|
1717
|
+
shaka.ads.InterstitialAdManager.prototype.getInterstitialsInfo_=function(a){var b=this,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,z,B,A,y,C,D,E,F,H,J,K,L,G,M,I,N,P,O,W,Q,S,V,R,T,X;return $jscomp.asyncExecutePromiseGeneratorProgram(function(Y){switch(Y.nextAddress){case 1:c=[];if(!a)return Y.return(c);d=a.values.find(function(U){return"X-ASSET-URI"==U.key});e=a.values.find(function(U){return"X-ASSET-LIST"==U.key});if(!d&&!e)return Y.return(c);f=null;if(g=a.values.find(function(U){return"ID"==U.key}))f=g.data;
|
|
1718
|
+
h=null==f?Math.floor(10*a.startTime)/10:a.startTime;(k=a.endTime)&&Infinity!=a.endTime&&"number"==typeof a.endTime&&(k=null==f?Math.floor(10*a.endTime)/10:a.endTime);l=a.values.find(function(U){return"X-RESTRICT"==U.key});n=m=!0;l&&l.data&&(p=l.data,m=!p.includes("SKIP"),n=!p.includes("JUMP"));q=m?0:null;if(r=a.values.find(function(U){return"X-ENABLE-SKIP-AFTER"==U.key}))t=r.data,q=parseFloat(t),isNaN(q)&&(q=m?0:null);u=null;if(v=a.values.find(function(U){return"X-ENABLE-SKIP-FOR"==U.key}))w=v.data,
|
|
1719
|
+
u=parseFloat(w),isNaN(q)&&(u=null);x=null;if(z=a.values.find(function(U){return"X-RESUME-OFFSET"==U.key}))B=z.data,x=parseFloat(B),isNaN(x)&&(x=null);A=null;if(y=a.values.find(function(U){return"X-PLAYOUT-LIMIT"==U.key}))C=y.data,A=parseFloat(C),isNaN(A)&&(A=null);F=E=D=!1;if(H=a.values.find(function(U){return"CUE"==U.key}))J=H.data,D=J.includes("ONCE"),E=J.includes("PRE"),F=J.includes("POST");K=!1;(L=a.values.find(function(U){return"X-TIMELINE-OCCUPIES"==U.key}))?(G=L.data,K=G.includes("RANGE")):
|
|
1720
|
+
!z&&b.basePlayer_.isLive()&&(K=!E&&!F);if(d){M=d.data;if(!M)return Y.return(c);c.push({id:f,groupId:null,startTime:h,endTime:k,uri:M,mimeType:null,isSkippable:m,skipOffset:q,skipFor:u,canJump:n,resumeOffset:x,playoutLimit:A,once:D,pre:E,post:F,timelineRange:K,loop:!1,overlay:null});Y.jumpTo(2);break}if(!e){Y.jumpTo(2);break}I=e.data;if(!I)return Y.return(c);Y.setCatchFinallyBlocks(4);N=shaka.net.NetworkingEngine;P={type:N.AdvancedRequestType.INTERSTITIAL_ASSET_LIST};return Y.yield(b.makeAdRequest_(I,
|
|
1721
|
+
P),6);case 6:O=Y.yieldResult;W=shaka.util.StringUtils.fromUTF8(O);Q=JSON.parse(W);if(S=Q["SKIP-CONTROL"])V=S["ENABLE-SKIP-AFTER"],"number"==typeof V&&(q=parseFloat(V),isNaN(V)&&(q=m?0:null)),R=S["ENABLE-SKIP-FOR"],"number"==typeof R&&(u=parseFloat(R),isNaN(R)&&(u=null));for(T=0;T<Q.ASSETS.length;T++)X=Q.ASSETS[T],X.URI&&c.push({id:f+"_shaka_asset_"+T,groupId:f,startTime:h,endTime:k,uri:X.URI,mimeType:null,isSkippable:m,skipOffset:q,skipFor:u,canJump:n,resumeOffset:x,playoutLimit:A,once:D,pre:E,post:F,
|
|
1722
|
+
timelineRange:K,loop:!1,overlay:null});Y.leaveTryBlock(2);break;case 4:Y.enterCatchBlock();case 2:return Y.return(c)}})};
|
|
1714
1723
|
shaka.ads.InterstitialAdManager.prototype.cuepointsChanged_=function(){for(var a=[],b=$jscomp.makeIterator(this.interstitials_),c=b.next(),d={};!c.done;d={shakaCuePoint$jscomp$1:void 0},c=b.next())c=c.value,c.overlay||(d.shakaCuePoint$jscomp$1={start:c.startTime,end:null},c.pre?(d.shakaCuePoint$jscomp$1.start=0,d.shakaCuePoint$jscomp$1.end=null):c.post?(d.shakaCuePoint$jscomp$1.start=-1,d.shakaCuePoint$jscomp$1.end=null):c.timelineRange&&(d.shakaCuePoint$jscomp$1.end=c.endTime),a.find(function(e){return function(f){return e.shakaCuePoint$jscomp$1.start==
|
|
1715
1724
|
f.start&&e.shakaCuePoint$jscomp$1.end==f.end}}(d))||a.push(d.shakaCuePoint$jscomp$1));this.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.CUEPOINTS_CHANGED,(new Map).set("cuepoints",a)))};
|
|
1716
1725
|
shaka.ads.InterstitialAdManager.prototype.updatePlayerConfig_=function(){goog.asserts.assert(this.player_,"Must have player");goog.asserts.assert(this.basePlayer_,"Must have base player");this.player_.configure(this.basePlayer_.getNonDefaultConfiguration());this.player_.configure("ads.disableHLSInterstitial",!0);this.player_.configure("ads.disableDASHInterstitial",!0);var a=this.player_.getNetworkingEngine();goog.asserts.assert(a,"Need networking engine");this.basePlayer_.getNetworkingEngine().copyFiltersInto(a)};
|
|
@@ -1738,9 +1747,9 @@ shaka.ads.MediaTailorAdManager.prototype.getCuePoints=function(){for(var a=[],b=
|
|
|
1738
1747
|
shaka.ads.MediaTailorAdManager.prototype.requestSessionInfo_=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,t,u;return $jscomp.asyncExecutePromiseGeneratorProgram(function(v){if(1==v.nextAddress)return d=shaka.net.NetworkingEngine,e=d.RequestType.ADS,f={type:d.AdvancedRequestType.MEDIATAILOR_SESSION_INFO},g=d.makeRequest([a],d.defaultRetryParameters()),g.method="POST",b&&(h=JSON.stringify(b),g.body=shaka.util.StringUtils.toUTF8(h)),k=c.networkingEngine_.request(e,g,f),v.setCatchFinallyBlocks(2),
|
|
1739
1748
|
v.yield(k.promise,4);if(2!=v.nextAddress){l=v.yieldResult;m=shaka.util.StringUtils.fromUTF8(l.data);n=JSON.parse(m);if(n.manifestUrl&&n.trackingUrl)p=new goog.Uri(a),q=new goog.Uri(n.trackingUrl),c.trackingUrl_=p.resolve(q).toString(),r=Date.now()/1E3,t=r-c.streamRequestStartTime_,c.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.ADS_LOADED,(new Map).set("loadTime",t))),u=new goog.Uri(n.manifestUrl),c.streamPromise_.resolve(p.resolve(u).toString()),c.streamPromise_=null;else throw Error("Insufficient data from MediaTailor.");
|
|
1740
1749
|
return v.leaveTryBlock(0)}v.enterCatchBlock();if(!c.backupUrl_.length)return c.streamPromise_.reject("MediaTailor request returned an error and there was no backup asset uri provided."),c.streamPromise_=null,v.return();shaka.log.warning("MediaTailor request returned an error. Falling back to the backup asset uri.");c.streamPromise_.resolve(c.backupUrl_);c.streamPromise_=null;v.jumpToEnd()})};
|
|
1741
|
-
shaka.ads.MediaTailorAdManager.prototype.requestTrackingInfo_=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,
|
|
1742
|
-
n=JSON.parse(m);if(0<n.avails.length){if(JSON.stringify(c.adBreaks_)!=JSON.stringify(n.avails)){c.adBreaks_=n.avails;p=$jscomp.makeIterator(c.adBreaks_);for(q=p.next();!q.done;q=p.next())for(r=q.value,t=$jscomp.makeIterator(r.nonLinearAdsList),u=t.next();!u.done;u=t.next())for(v=u.value,w=$jscomp.makeIterator(v.nonLinearAdList),x=w.next();!x.done;x=w.next())
|
|
1743
|
-
l)))}}else{if(c.adBreaks_.length)c.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.CUEPOINTS_CHANGED,(new Map).set("cuepoints",l)));c.onEnded_();c.adBreaks_=[]}b&&(c.isLive_||0<l.length)&&c.setupAdBreakListeners_();return
|
|
1750
|
+
shaka.ads.MediaTailorAdManager.prototype.requestTrackingInfo_=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,z;return $jscomp.asyncExecutePromiseGeneratorProgram(function(B){if(1==B.nextAddress)return d=shaka.net.NetworkingEngine,e=d.RequestType.ADS,f={type:d.AdvancedRequestType.MEDIATAILOR_TRACKING_INFO},g=d.makeRequest([a],d.defaultRetryParameters()),h=c.networkingEngine_.request(e,g,f),B.setCatchFinallyBlocks(2),B.yield(h.promise,4);if(2!=B.nextAddress){k=B.yieldResult;l=[];m=shaka.util.StringUtils.fromUTF8(k.data);
|
|
1751
|
+
n=JSON.parse(m);if(0<n.avails.length){if(JSON.stringify(c.adBreaks_)!=JSON.stringify(n.avails)){c.adBreaks_=n.avails;p=$jscomp.makeIterator(c.adBreaks_);for(q=p.next();!q.done;q=p.next())for(r=q.value,t=$jscomp.makeIterator(r.nonLinearAdsList),u=t.next();!u.done;u=t.next())for(v=u.value,w=$jscomp.makeIterator(v.nonLinearAdList),x=w.next();!x.done;x=w.next())z=x.value,c.requestStaticResource_(z);l=c.getCuePoints();c.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.CUEPOINTS_CHANGED,(new Map).set("cuepoints",
|
|
1752
|
+
l)))}}else{if(c.adBreaks_.length)c.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.CUEPOINTS_CHANGED,(new Map).set("cuepoints",l)));c.onEnded_();c.adBreaks_=[]}b&&(c.isLive_||0<l.length)&&c.setupAdBreakListeners_();return B.leaveTryBlock(0)}B.enterCatchBlock();B.jumpToEnd()})};
|
|
1744
1753
|
shaka.ads.MediaTailorAdManager.prototype.requestStaticResource_=function(a){var b=this,c,d,e,f,g,h,k,l,m,n,p;return $jscomp.asyncExecutePromiseGeneratorProgram(function(q){if(1==q.nextAddress){if(!a.staticResource)return q.return();c=b.getCacheKeyForNonLinear_(a);if(d=b.staticResources_.get(c))return q.return();e=shaka.net.NetworkingEngine;f=e.RequestType.ADS;g={type:e.AdvancedRequestType.MEDIATAILOR_STATIC_RESOURCE};h=e.makeRequest([a.staticResource],e.defaultRetryParameters());k=b.networkingEngine_.request(f,
|
|
1745
1754
|
h,g);q.setCatchFinallyBlocks(2);b.staticResources_.set(c,[]);return q.yield(k.promise,4)}if(2!=q.nextAddress)return l=q.yieldResult,m=shaka.util.StringUtils.fromUTF8(l.data),n=JSON.parse(m),p=n.apps,b.staticResources_.set(c,p),q.leaveTryBlock(0);q.enterCatchBlock();b.staticResources_.delete(c);q.jumpToEnd()})};
|
|
1746
1755
|
shaka.ads.MediaTailorAdManager.prototype.getCacheKeyForNonLinear_=function(a){return[a.adId,a.adParameters,a.adSystem,a.adTitle,a.creativeAdId,a.creativeId,a.creativeSequence,a.height,a.width,a.staticResource].join("")};
|
|
@@ -1838,11 +1847,11 @@ shaka.cast.CastUtils.unpackTimeRanges_=function(a){var b={__type__:"TimeRanges",
|
|
|
1838
1847
|
shaka.cast.CastUtils.unpackUint8Array_=function(a){return{__type__:"Uint8Array",entries:Array.from(a)}};shaka.cast.CastUtils.makeUint8Array_=function(a){return new Uint8Array(a.entries)};
|
|
1839
1848
|
shaka.cast.CastUtils.unpackError_=function(a){var b=new Set(["name","message","stack"]);for(c in a)b.add(c);var c=$jscomp.makeIterator(Object.getOwnPropertyNames(a));for(var d=c.next();!d.done;d=c.next())b.add(d.value);c={};b=$jscomp.makeIterator(b);for(d=b.next();!d.done;d=b.next())d=d.value,c[d]=a[d];return{__type__:"Error",contents:c}};shaka.cast.CastUtils.makeError_=function(a){a=a.contents;var b=Error(a.message),c;for(c in a)b[c]=a[c];return b};shaka.cast.CastUtils.VideoEvents="ended play playing pause pausing ratechange seeked seeking timeupdate volumechange".split(" ");
|
|
1840
1849
|
shaka.cast.CastUtils.VideoAttributes="buffered currentTime duration ended loop muted paused playbackRate seeking videoHeight videoWidth volume".split(" ");shaka.cast.CastUtils.VideoInitStateAttributes=["loop","playbackRate"];shaka.cast.CastUtils.VideoVoidMethods=["pause","play"];
|
|
1841
|
-
shaka.cast.CastUtils.PlayerGetterMethods=
|
|
1842
|
-
|
|
1843
|
-
shaka.cast.CastUtils.PlayerVoidMethods="addChaptersTrack addTextTrackAsync addThumbnailsTrack cancelTrickPlay configure configurationForLowLatency getChapters getChaptersTracks resetConfiguration retryStreaming selectAudioLanguage selectTextLanguage selectTextTrack selectVariantTrack selectVariantsByLabel setTextTrackVisibility trickPlay updateStartTime goToLive".split(" ");
|
|
1844
|
-
shaka.cast.CastUtils.SHAKA_MESSAGE_NAMESPACE="urn:x-cast:com.google.shaka.v2";shaka.cast.CastUtils.GENERIC_MESSAGE_NAMESPACE="urn:x-cast:com.google.cast.media";shaka.cast.CastSender=function(a,b,c,d,e,f,g){var h=this;this.receiverAppId_=a;this.androidReceiverCompatible_=g;this.statusChangeTimer_=new shaka.util.Timer(b);this.onFirstCastStateUpdate_=c;this.hasJoinedExistingSession_=!1;this.onRemoteEvent_=d;this.onResumeLocal_=e;this.onInitStateRequired_=f;this.isCasting_=this.apiReady_=!1;this.receiverName_="";this.appData_=null;this.onConnectionStatusChangedBound_=function(){return h.onConnectionStatusChanged_()};this.onMessageReceivedBound_=function(k,l){return h.onMessageReceived_(k,
|
|
1845
|
-
l)};this.cachedProperties_={video:{},player:{}};this.nextAsyncCallId_=0;this.asyncCallPromises_=
|
|
1850
|
+
shaka.cast.CastUtils.PlayerGetterMethods=(new Map).set("getAssetUri",2).set("getAudioLanguages",4).set("getAudioLanguagesAndRoles",4).set("getBufferFullness",1).set("getBufferedInfo",2).set("getExpiration",2).set("getKeyStatuses",2).set("getPlaybackRate",2).set("getTextLanguages",4).set("getTextLanguagesAndRoles",4).set("getImageTracks",2).set("getThumbnails",2).set("isAudioOnly",10).set("isBuffering",1).set("isInProgress",1).set("isLive",10).set("isTextTrackVisible",1).set("keySystem",10).set("seekRange",
|
|
1851
|
+
1).set("getLoadMode",10).set("getManifestType",10).set("isFullyLoaded",1).set("isEnded",1);shaka.cast.CastUtils.LargePlayerGetterMethods=(new Map).set("getConfiguration",4).set("getConfigurationForLowLatency",4).set("getStats",5).set("getTextTracks",2).set("getVariantTracks",2);shaka.cast.CastUtils.PlayerGetterMethodsThatRequireLive=(new Map).set("getPlayheadTimeAsDate",1).set("getPresentationStartTimeAsDate",20).set("getSegmentAvailabilityDuration",20);
|
|
1852
|
+
shaka.cast.CastUtils.PlayerInitState=[["getConfiguration","configure","getConfigurationForLowLatency","configurationForLowLatency"]];shaka.cast.CastUtils.PlayerInitAfterLoadState=[["isTextTrackVisible","setTextTrackVisibility"]];shaka.cast.CastUtils.PlayerVoidMethods="addChaptersTrack addTextTrackAsync addThumbnailsTrack cancelTrickPlay configure configurationForLowLatency getChapters getChaptersTracks resetConfiguration retryStreaming selectAudioLanguage selectTextLanguage selectTextTrack selectVariantTrack selectVariantsByLabel setTextTrackVisibility trickPlay updateStartTime goToLive".split(" ");
|
|
1853
|
+
shaka.cast.CastUtils.PlayerPromiseMethods=["attach","attachCanvas","detach","load","unload"];shaka.cast.CastUtils.SHAKA_MESSAGE_NAMESPACE="urn:x-cast:com.google.shaka.v2";shaka.cast.CastUtils.GENERIC_MESSAGE_NAMESPACE="urn:x-cast:com.google.cast.media";shaka.cast.CastSender=function(a,b,c,d,e,f,g){var h=this;this.receiverAppId_=a;this.androidReceiverCompatible_=g;this.statusChangeTimer_=new shaka.util.Timer(b);this.onFirstCastStateUpdate_=c;this.hasJoinedExistingSession_=!1;this.onRemoteEvent_=d;this.onResumeLocal_=e;this.onInitStateRequired_=f;this.isCasting_=this.apiReady_=!1;this.receiverName_="";this.appData_=null;this.onConnectionStatusChangedBound_=function(){return h.onConnectionStatusChanged_()};this.onMessageReceivedBound_=function(k,l){return h.onMessageReceived_(k,
|
|
1854
|
+
l)};this.cachedProperties_={video:{},player:{}};this.nextAsyncCallId_=0;this.asyncCallPromises_=new Map;this.castPromise_=null;shaka.cast.CastSender.instances_.add(this)};
|
|
1846
1855
|
shaka.cast.CastSender.prototype.destroy=function(){shaka.cast.CastSender.instances_.delete(this);this.rejectAllPromises_();shaka.cast.CastSender.session_&&this.removeListeners_();this.statusChangeTimer_&&(this.statusChangeTimer_.stop(),this.statusChangeTimer_=null);this.onResumeLocal_=this.onRemoteEvent_=null;this.isCasting_=this.apiReady_=!1;this.onMessageReceivedBound_=this.onConnectionStatusChangedBound_=this.castPromise_=this.asyncCallPromises_=this.cachedProperties_=this.appData_=null;return Promise.resolve()};
|
|
1847
1856
|
shaka.cast.CastSender.prototype.apiReady=function(){return this.apiReady_};shaka.cast.CastSender.prototype.hasReceivers=function(){return shaka.cast.CastSender.hasReceivers_};shaka.cast.CastSender.prototype.isCasting=function(){return this.isCasting_};shaka.cast.CastSender.prototype.receiverName=function(){return this.receiverName_};shaka.cast.CastSender.prototype.hasRemoteProperties=function(){return 0!=Object.keys(this.cachedProperties_.video).length};
|
|
1848
1857
|
shaka.cast.CastSender.prototype.init=function(){var a=shaka.cast.CastSender;if(this.receiverAppId_.length)if(window.chrome&&chrome.cast&&chrome.cast.isAvailable){this.apiReady_=!0;this.statusChangeTimer_.tickNow();var b=new chrome.cast.SessionRequest(this.receiverAppId_,[],null,this.androidReceiverCompatible_,null);b=new chrome.cast.ApiConfig(b,function(c){return a.onExistingSessionJoined_(c)},function(c){return a.onReceiverStatusChanged_(c)},"origin_scoped");chrome.cast.initialize(b,function(){shaka.log.debug("CastSender: init")},
|
|
@@ -1851,29 +1860,30 @@ a.onGCastApiAvailable_)};shaka.cast.CastSender.prototype.setAppData=function(a){
|
|
|
1851
1860
|
shaka.cast.CastSender.prototype.cast=function(){var a=this;return $jscomp.asyncExecutePromiseGeneratorProgram(function(b){if(!a.apiReady_)throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.CAST,shaka.util.Error.Code.CAST_API_UNAVAILABLE);if(!shaka.cast.CastSender.hasReceivers_)throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.CAST,shaka.util.Error.Code.NO_CAST_RECEIVERS);if(a.isCasting_)throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,
|
|
1852
1861
|
shaka.util.Error.Category.CAST,shaka.util.Error.Code.ALREADY_CASTING);a.castPromise_=new shaka.util.PublicPromise;chrome.cast.requestSession(function(c){return a.onSessionInitiated_(c)},function(c){return a.onConnectionError_(c)});return b.yield(a.castPromise_,0)})};shaka.cast.CastSender.prototype.showDisconnectDialog=function(){var a=this;this.isCasting_&&chrome.cast.requestSession(function(b){return a.onSessionInitiated_(b)},function(b){return a.onConnectionError_(b)})};
|
|
1853
1862
|
shaka.cast.CastSender.prototype.forceDisconnect=function(){if(this.isCasting_){this.rejectAllPromises_();if(shaka.cast.CastSender.session_){this.removeListeners_();try{shaka.cast.CastSender.session_.stop(function(){},function(){})}catch(a){}shaka.cast.CastSender.session_=null}this.onConnectionStatusChanged_()}};
|
|
1854
|
-
shaka.cast.CastSender.prototype.get=function(a,b){var c=this;goog.asserts.assert("video"==a||"player"==a,"Unexpected target name");var d=shaka.cast.CastUtils;if("video"==a){if(d.VideoVoidMethods.includes(b))return function(){var f=$jscomp.getRestArguments.apply(0,arguments);return c.remoteCall_.apply(c,[a,b].concat($jscomp.arrayFromIterable(f)))}}else if("player"==a){if(d.PlayerGetterMethodsThatRequireLive
|
|
1855
|
-
if(!e)return function(){}}if(d.PlayerVoidMethods.includes(b))return function(){var f=$jscomp.getRestArguments.apply(0,arguments);return c.remoteCall_.apply(c,[a,b].concat($jscomp.arrayFromIterable(f)))};if(d.PlayerPromiseMethods.includes(b))return function(){var f=$jscomp.getRestArguments.apply(0,arguments);return c.remoteAsyncCall_.apply(c,[a,b].concat($jscomp.arrayFromIterable(f)))};if(d.PlayerGetterMethods
|
|
1863
|
+
shaka.cast.CastSender.prototype.get=function(a,b){var c=this;goog.asserts.assert("video"==a||"player"==a,"Unexpected target name");var d=shaka.cast.CastUtils;if("video"==a){if(d.VideoVoidMethods.includes(b))return function(){var f=$jscomp.getRestArguments.apply(0,arguments);return c.remoteCall_.apply(c,[a,b].concat($jscomp.arrayFromIterable(f)))}}else if("player"==a){if(d.PlayerGetterMethodsThatRequireLive.has(b)){var e=this.get("player","isLive")();goog.asserts.assert(e,b+" should be called on a live stream!");
|
|
1864
|
+
if(!e)return function(){}}if(d.PlayerVoidMethods.includes(b))return function(){var f=$jscomp.getRestArguments.apply(0,arguments);return c.remoteCall_.apply(c,[a,b].concat($jscomp.arrayFromIterable(f)))};if(d.PlayerPromiseMethods.includes(b))return function(){var f=$jscomp.getRestArguments.apply(0,arguments);return c.remoteAsyncCall_.apply(c,[a,b].concat($jscomp.arrayFromIterable(f)))};if(d.PlayerGetterMethods.has(b)||d.LargePlayerGetterMethods.has(b))return function(){return c.propertyGetter_(a,b)}}return this.propertyGetter_(a,
|
|
1856
1865
|
b)};shaka.cast.CastSender.prototype.set=function(a,b,c){goog.asserts.assert("video"==a||"player"==a,"Unexpected target name");this.cachedProperties_[a][b]=c;this.sendMessage_({type:"set",targetName:a,property:b,value:c})};shaka.cast.CastSender.prototype.onSessionInitiated_=function(a){shaka.log.debug("CastSender: onSessionInitiated");var b=this.onInitStateRequired_();this.onSessionCreated_(a);this.sendMessage_({type:"init",initState:b,appData:this.appData_});this.castPromise_.resolve()};
|
|
1857
1866
|
shaka.cast.CastSender.prototype.onConnectionError_=function(a){var b=shaka.util.Error.Code.UNEXPECTED_CAST_ERROR;switch(a.code){case "cancel":b=shaka.util.Error.Code.CAST_CANCELED_BY_USER;break;case "timeout":b=shaka.util.Error.Code.CAST_CONNECTION_TIMED_OUT;break;case "receiver_unavailable":b=shaka.util.Error.Code.CAST_RECEIVER_APP_UNAVAILABLE}this.castPromise_.reject(new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.CAST,b,a))};
|
|
1858
1867
|
shaka.cast.CastSender.prototype.propertyGetter_=function(a,b){goog.asserts.assert("video"==a||"player"==a,"Unexpected target name");return this.cachedProperties_[a][b]};shaka.cast.CastSender.prototype.remoteCall_=function(a,b){var c=$jscomp.getRestArguments.apply(2,arguments);goog.asserts.assert("video"==a||"player"==a,"Unexpected target name");this.sendMessage_({type:"call",targetName:a,methodName:b,args:c})};
|
|
1859
|
-
shaka.cast.CastSender.prototype.remoteAsyncCall_=function(a,b){var c=$jscomp.getRestArguments.apply(2,arguments);goog.asserts.assert("video"==a||"player"==a,"Unexpected target name");var d=new shaka.util.PublicPromise,e=this.nextAsyncCallId_.toString();this.nextAsyncCallId_++;this.asyncCallPromises_
|
|
1868
|
+
shaka.cast.CastSender.prototype.remoteAsyncCall_=function(a,b){var c=$jscomp.getRestArguments.apply(2,arguments);goog.asserts.assert("video"==a||"player"==a,"Unexpected target name");var d=new shaka.util.PublicPromise,e=this.nextAsyncCallId_.toString();this.nextAsyncCallId_++;this.asyncCallPromises_.set(e,d);try{this.sendMessage_({type:"asyncCall",targetName:a,methodName:b,args:c,id:e})}catch(f){d.reject(f)}return d};
|
|
1860
1869
|
shaka.cast.CastSender.onExistingSessionJoined_=function(a){for(var b=$jscomp.makeIterator(shaka.cast.CastSender.instances_),c=b.next();!c.done;c=b.next())c.value.onExistingSessionJoined_(a)};shaka.cast.CastSender.prototype.onExistingSessionJoined_=function(a){shaka.log.debug("CastSender: onExistingSessionJoined");this.castPromise_=new shaka.util.PublicPromise;this.hasJoinedExistingSession_=!0;this.onSessionInitiated_(a)};
|
|
1861
1870
|
shaka.cast.CastSender.onReceiverStatusChanged_=function(a){for(var b=$jscomp.makeIterator(shaka.cast.CastSender.instances_),c=b.next();!c.done;c=b.next())c.value.onReceiverStatusChanged_(a)};shaka.cast.CastSender.prototype.onReceiverStatusChanged_=function(a){shaka.log.debug("CastSender: receiver status",a);shaka.cast.CastSender.hasReceivers_="available"==a;this.statusChangeTimer_.tickNow()};
|
|
1862
1871
|
shaka.cast.CastSender.prototype.onSessionCreated_=function(a){shaka.cast.CastSender.session_=a;a.addUpdateListener(this.onConnectionStatusChangedBound_);a.addMessageListener(shaka.cast.CastUtils.SHAKA_MESSAGE_NAMESPACE,this.onMessageReceivedBound_);this.onConnectionStatusChanged_()};
|
|
1863
1872
|
shaka.cast.CastSender.prototype.removeListeners_=function(){var a=shaka.cast.CastSender.session_;a.removeUpdateListener(this.onConnectionStatusChangedBound_);a.removeMessageListener(shaka.cast.CastUtils.SHAKA_MESSAGE_NAMESPACE,this.onMessageReceivedBound_)};
|
|
1864
1873
|
shaka.cast.CastSender.prototype.onConnectionStatusChanged_=function(){var a=shaka.cast.CastSender.session_?"connected"==shaka.cast.CastSender.session_.status:!1;shaka.log.debug("CastSender: connection status",a);if(this.isCasting_&&!a){this.onResumeLocal_();for(var b in this.cachedProperties_)this.cachedProperties_[b]={};this.rejectAllPromises_()}this.receiverName_=(this.isCasting_=a)?shaka.cast.CastSender.session_.receiver.friendlyName:"";this.statusChangeTimer_.tickNow()};
|
|
1865
|
-
shaka.cast.CastSender.prototype.rejectAllPromises_=function(){for(var a
|
|
1874
|
+
shaka.cast.CastSender.prototype.rejectAllPromises_=function(){if(this.asyncCallPromises_)for(var a=$jscomp.makeIterator(this.asyncCallPromises_.keys()),b=a.next();!b.done;b=a.next()){b=b.value;var c=this.asyncCallPromises_.get(b);this.asyncCallPromises_.delete(b);c.reject(new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.PLAYER,shaka.util.Error.Code.LOAD_INTERRUPTED))}};
|
|
1866
1875
|
shaka.cast.CastSender.prototype.onMessageReceived_=function(a,b){a=shaka.cast.CastUtils.deserialize(b);shaka.log.v2("CastSender: message",a);switch(a.type){case "event":var c=a.targetName,d=shaka.util.FakeEvent.fromRealEvent(a.event);this.onRemoteEvent_(c,d);break;case "update":c=a.update;for(d in c){a=this.cachedProperties_[d]||{};for(var e in c[d])a[e]=c[d][e]}this.hasJoinedExistingSession_&&(this.onFirstCastStateUpdate_(),this.hasJoinedExistingSession_=!1);break;case "asyncComplete":if(d=a.id,
|
|
1867
|
-
e=a.error,a=this.asyncCallPromises_
|
|
1876
|
+
e=a.error,a=this.asyncCallPromises_.get(d),this.asyncCallPromises_.delete(d),goog.asserts.assert(a,"Unexpected async id"),a)if(e){d=new shaka.util.Error(e.severity,e.category,e.code);for(c in e)d[c]=e[c];a.reject(d)}else a.resolve()}};
|
|
1868
1877
|
shaka.cast.CastSender.prototype.sendMessage_=function(a){a=shaka.cast.CastUtils.serialize(a);var b=shaka.cast.CastSender.session_;try{b.sendMessage(shaka.cast.CastUtils.SHAKA_MESSAGE_NAMESPACE,a,function(){},shaka.log.error)}catch(c){throw shaka.log.error("Cast session sendMessage threw",c),a=new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.CAST,shaka.util.Error.Code.CAST_CONNECTION_TIMED_OUT,c),b=new shaka.util.FakeEvent("error",(new Map).set("detail",a)),this.onRemoteEvent_("player",
|
|
1869
1878
|
b),this.forceDisconnect(),a;}};shaka.cast.CastSender.STATUS_DELAY=.02;shaka.cast.CastSender.hasReceivers_=!1;shaka.cast.CastSender.session_=null;shaka.cast.CastSender.__onGCastApiAvailable_=null;shaka.cast.CastSender.instances_=new Set;shaka.cast.CastSender.onSdkLoaded_=function(a){if(a){a=$jscomp.makeIterator(shaka.cast.CastSender.instances_);for(var b=a.next();!b.done;b=a.next())b.value.init()}};
|
|
1870
|
-
shaka.cast.CastSender.onGCastApiAvailable_=function(a){shaka.cast.CastSender.__onGCastApiAvailable_?window.__onGCastApiAvailable=shaka.cast.CastSender.__onGCastApiAvailable_:delete window.__onGCastApiAvailable;shaka.cast.CastSender.__onGCastApiAvailable_=null;shaka.cast.CastSender.onSdkLoaded_(a);"function"===typeof window.__onGCastApiAvailable&&window.__onGCastApiAvailable(a)};shaka.cast.CastProxy=function(a,b,c,d){d=void 0===d?!1:d;shaka.util.FakeEventTarget.call(this);var e=this;this.localVideo_=a;this.localPlayer_=b;this.eventManager_=this.playerEventTarget_=this.videoEventTarget_=this.playerProxy_=this.videoProxy_=null;this.receiverAppId_=c;this.androidReceiverCompatible_=d;this.compiledToExternNames_=new Map;this.sender_=new shaka.cast.CastSender(c,function(){return e.onCastStatusChanged_()},function(){return e.onFirstCastStateUpdate_()},
|
|
1871
|
-
g)},function(){return e.onResumeLocal_()},function(){return e.getInitState_()},d)
|
|
1879
|
+
shaka.cast.CastSender.onGCastApiAvailable_=function(a){shaka.cast.CastSender.__onGCastApiAvailable_?window.__onGCastApiAvailable=shaka.cast.CastSender.__onGCastApiAvailable_:delete window.__onGCastApiAvailable;shaka.cast.CastSender.__onGCastApiAvailable_=null;shaka.cast.CastSender.onSdkLoaded_(a);"function"===typeof window.__onGCastApiAvailable&&window.__onGCastApiAvailable(a)};shaka.cast.CastProxy=function(a,b,c,d){d=void 0===d?!1:d;shaka.util.FakeEventTarget.call(this);var e=this;this.localVideo_=a;this.localPlayer_=b;this.eventManager_=this.playerEventTarget_=this.videoEventTarget_=this.playerProxy_=this.videoProxy_=null;this.receiverAppId_=c;this.androidReceiverCompatible_=d;this.compiledToExternNames_=new Map;this.sender_=null;window.chrome?(this.sender_=new shaka.cast.CastSender(c,function(){return e.onCastStatusChanged_()},function(){return e.onFirstCastStateUpdate_()},
|
|
1880
|
+
function(f,g){return e.onRemoteEvent_(f,g)},function(){return e.onResumeLocal_()},function(){return e.getInitState_()},d),this.init_()):this.initWithoutSender_()};$jscomp.inherits(shaka.cast.CastProxy,shaka.util.FakeEventTarget);
|
|
1872
1881
|
shaka.cast.CastProxy.prototype.destroy=function(a){a&&this.sender_.forceDisconnect();this.eventManager_&&(this.eventManager_.release(),this.eventManager_=null);a=[];this.localPlayer_&&(a.push(this.localPlayer_.destroy()),this.localPlayer_=null);this.sender_&&(a.push(this.sender_.destroy()),this.sender_=null);this.playerProxy_=this.videoProxy_=this.localVideo_=null;shaka.util.FakeEventTarget.prototype.release.call(this);return Promise.all(a)};shaka.cast.CastProxy.prototype.getVideo=function(){return this.videoProxy_};
|
|
1873
|
-
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()};
|
|
1874
|
-
shaka.cast.CastProxy.prototype.cast=function(){var a=this;return $jscomp.asyncExecutePromiseGeneratorProgram(function(b){return 1==b.nextAddress?b.yield(a.sender_.cast(),2):a.localPlayer_?b.yield(a.localPlayer_.unload(),0):b.return()})};shaka.cast.CastProxy.prototype.setAppData=function(a){this.sender_.setAppData(a)};shaka.cast.CastProxy.prototype.suggestDisconnect=function(){this.sender_
|
|
1875
|
-
shaka.cast.CastProxy.prototype.
|
|
1876
|
-
function(
|
|
1882
|
+
shaka.cast.CastProxy.prototype.getPlayer=function(){return this.playerProxy_};shaka.cast.CastProxy.prototype.canCast=function(){return this.sender_?this.sender_.apiReady()&&this.sender_.hasReceivers():!1};shaka.cast.CastProxy.prototype.isCasting=function(){return this.sender_?this.sender_.isCasting():!1};shaka.cast.CastProxy.prototype.receiverName=function(){return this.sender_?this.sender_.receiverName():""};
|
|
1883
|
+
shaka.cast.CastProxy.prototype.cast=function(){var a=this;return $jscomp.asyncExecutePromiseGeneratorProgram(function(b){return 1==b.nextAddress?a.sender_?b.yield(a.sender_.cast(),2):b.return():a.localPlayer_?b.yield(a.localPlayer_.unload(),0):b.return()})};shaka.cast.CastProxy.prototype.setAppData=function(a){this.sender_&&this.sender_.setAppData(a)};shaka.cast.CastProxy.prototype.suggestDisconnect=function(){this.sender_&&this.sender_.showDisconnectDialog()};
|
|
1884
|
+
shaka.cast.CastProxy.prototype.forceDisconnect=function(){this.sender_&&this.sender_.forceDisconnect()};
|
|
1885
|
+
shaka.cast.CastProxy.prototype.changeReceiverId=function(a,b){b=void 0===b?!1:b;var c=this;return $jscomp.asyncExecutePromiseGeneratorProgram(function(d){if(1==d.nextAddress){if(a==c.receiverAppId_&&b==c.androidReceiverCompatible_)return d.return();c.receiverAppId_=a;c.androidReceiverCompatible_=b;if(!c.sender_)return d.return();c.sender_.forceDisconnect();return d.yield(c.sender_.destroy(),2)}c.sender_=null;c.sender_=new shaka.cast.CastSender(a,function(){return c.onCastStatusChanged_()},function(){return c.onFirstCastStateUpdate_()},
|
|
1886
|
+
function(e,f){return c.onRemoteEvent_(e,f)},function(){return c.onResumeLocal_()},function(){return c.getInitState_()},b);c.sender_.init();d.jumpToEnd()})};shaka.cast.CastProxy.prototype.initWithoutSender_=function(){this.videoProxy_=this.localVideo_;this.playerProxy_=this.localPlayer_};
|
|
1877
1887
|
shaka.cast.CastProxy.prototype.init_=function(){var a=this;this.sender_.init();this.eventManager_=new shaka.util.EventManager;for(var b=$jscomp.makeIterator(shaka.cast.CastUtils.VideoEvents),c=b.next();!c.done;c=b.next())this.eventManager_.listen(this.localVideo_,c.value,function(f){return a.videoProxyLocalEvent_(f)});for(var d in shaka.util.FakeEvent.EventName)this.eventManager_.listen(this.localPlayer_,shaka.util.FakeEvent.EventName[d],function(f){return a.playerProxyLocalEvent_(f)});this.videoProxy_=
|
|
1878
1888
|
{};b={};for(var e in this.localVideo_)b={k$jscomp$12:b.k$jscomp$12},b.k$jscomp$12=e,Object.defineProperty(this.videoProxy_,b.k$jscomp$12,{configurable:!1,enumerable:!0,get:function(f){return function(){return a.videoProxyGet_(f.k$jscomp$12)}}(b),set:function(f){return function(g){a.videoProxySet_(f.k$jscomp$12,g)}}(b)});this.playerProxy_={};this.iterateOverPlayerMethods_(function(f,g){goog.asserts.assert(a.playerProxy_,"Must have player proxy!");Object.defineProperty(a.playerProxy_,f,{configurable:!1,
|
|
1879
1889
|
enumerable:!0,get:function(){return a.playerProxyGet_(f)}})});COMPILED&&this.mapCompiledToUncompiledPlayerMethodNames_();this.videoEventTarget_=new shaka.util.FakeEventTarget;this.videoEventTarget_.dispatchTarget=this.videoProxy_;this.playerEventTarget_=new shaka.util.FakeEventTarget;this.playerEventTarget_.dispatchTarget=this.playerProxy_};
|
|
@@ -1890,7 +1900,7 @@ shaka.cast.CastProxy.prototype.videoProxyGet_=function(a){var b=this;if("addEven
|
|
|
1890
1900
|
shaka.cast.CastProxy.prototype.playerProxyGet_=function(a){var b=this;this.compiledToExternNames_.has(a)&&(a=this.compiledToExternNames_.get(a));if("addEventListener"==a)return function(d,e,f){return b.playerEventTarget_.addEventListener(d,e,f)};if("removeEventListener"==a)return function(d,e,f){return b.playerEventTarget_.removeEventListener(d,e,f)};if("getMediaElement"==a)return function(){return b.videoProxy_};if("getSharedConfiguration"==a)return shaka.log.warning("Can't share configuration across a network. Returning copy."),
|
|
1891
1901
|
this.sender_.get("player","getConfiguration");if("getNetworkingEngine"==a)return this.sender_.isCasting()&&shaka.log.warning("NOTE: getNetworkingEngine() is always local!"),function(){return b.localPlayer_.getNetworkingEngine()};if("getDrmEngine"==a)return this.sender_.isCasting()&&shaka.log.warning("NOTE: getDrmEngine() is always local!"),function(){return b.localPlayer_.getDrmEngine()};if("getAdManager"==a)return this.sender_.isCasting()&&shaka.log.warning("NOTE: getAdManager() is always local!"),
|
|
1892
1902
|
function(){return b.localPlayer_.getAdManager()};if("setVideoContainer"==a)return this.sender_.isCasting()&&shaka.log.warning("NOTE: setVideoContainer() is always local!"),function(d){return b.localPlayer_.setVideoContainer(d)};if(this.sender_.isCasting()){if("getManifest"==a||"drmInfo"==a)return function(){shaka.log.alwaysWarn(a+"() does not work while casting!");return null};if("attach"==a||"detach"==a)return function(){shaka.log.alwaysWarn(a+"() does not work while casting!");return Promise.resolve()}}if(this.sender_.isCasting()&&
|
|
1893
|
-
!this.sender_.hasRemoteProperties()&&(shaka.cast.CastUtils.PlayerGetterMethods
|
|
1903
|
+
!this.sender_.hasRemoteProperties()&&(shaka.cast.CastUtils.PlayerGetterMethods.has(a)||shaka.cast.CastUtils.LargePlayerGetterMethods.has(a))){var c=this.localPlayer_[a];goog.asserts.assert("function"==typeof c,"only methods on Player");return c.bind(this.localPlayer_)}return this.sender_.isCasting()?this.sender_.get("player",a):(c=this.localPlayer_[a],goog.asserts.assert("function"==typeof c,"only methods on Player"),c.bind(this.localPlayer_))};
|
|
1894
1904
|
shaka.cast.CastProxy.prototype.playerProxyLocalEvent_=function(a){this.sender_.isCasting()||this.playerEventTarget_.dispatchEvent(a)};shaka.cast.CastProxy.prototype.onRemoteEvent_=function(a,b){goog.asserts.assert(this.sender_.isCasting(),"Should only receive remote events while casting");this.sender_.isCasting()&&("video"==a?this.videoEventTarget_.dispatchEvent(b):"player"==a&&this.playerEventTarget_.dispatchEvent(b))};goog.exportSymbol("shaka.cast.CastProxy",shaka.cast.CastProxy);
|
|
1895
1905
|
goog.exportProperty(shaka.cast.CastProxy.prototype,"changeReceiverId",shaka.cast.CastProxy.prototype.changeReceiverId);goog.exportProperty(shaka.cast.CastProxy.prototype,"forceDisconnect",shaka.cast.CastProxy.prototype.forceDisconnect);goog.exportProperty(shaka.cast.CastProxy.prototype,"suggestDisconnect",shaka.cast.CastProxy.prototype.suggestDisconnect);goog.exportProperty(shaka.cast.CastProxy.prototype,"setAppData",shaka.cast.CastProxy.prototype.setAppData);
|
|
1896
1906
|
goog.exportProperty(shaka.cast.CastProxy.prototype,"cast",shaka.cast.CastProxy.prototype.cast);goog.exportProperty(shaka.cast.CastProxy.prototype,"receiverName",shaka.cast.CastProxy.prototype.receiverName);goog.exportProperty(shaka.cast.CastProxy.prototype,"isCasting",shaka.cast.CastProxy.prototype.isCasting);goog.exportProperty(shaka.cast.CastProxy.prototype,"canCast",shaka.cast.CastProxy.prototype.canCast);goog.exportProperty(shaka.cast.CastProxy.prototype,"getPlayer",shaka.cast.CastProxy.prototype.getPlayer);
|
|
@@ -1908,9 +1918,9 @@ shaka.cast.CastReceiver.prototype.onCastStatusChanged_=function(){var a=this,b;r
|
|
|
1908
1918
|
shaka.cast.CastReceiver.prototype.initState_=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q;return $jscomp.asyncExecutePromiseGeneratorProgram(function(r){switch(r.nextAddress){case 1:for(d in a.player)e=a.player[d],c.player_[d](e);c.appDataCallback_(b);f=c.video_.autoplay;return a.manifest?(c.video_.autoplay=!1,r.setCatchFinallyBlocks(5),r.yield(c.player_.load(a.manifest,a.startTime),7)):r.yield(Promise.resolve(),3);case 7:r.leaveTryBlock(3);break;case 5:return g=r.enterCatchBlock(),goog.asserts.assert(g instanceof
|
|
1909
1919
|
shaka.util.Error,"Wrong error type! Error: "+g),h=shaka.util.FakeEvent.EventName.Error,k=(new Map).set("detail",g),l=new shaka.util.FakeEvent(h,k),c.player_&&c.player_.dispatchEvent(l),r.return();case 3:if(!c.player_)return r.return();for(m in a.video)n=a.video[m],c.video_[m]=n;for(p in a.playerAfterLoad)q=a.playerAfterLoad[p],c.player_[p](q);c.video_.autoplay=f;a.manifest&&(c.video_.play(),c.sendMediaStatus_());r.jumpToEnd()}})};
|
|
1910
1920
|
shaka.cast.CastReceiver.prototype.proxyEvent_=function(a,b){this.player_&&(this.pollAttributes_(),this.sendMessage_({type:"event",targetName:a,event:b},this.shakaBus_))};
|
|
1911
|
-
shaka.cast.CastReceiver.prototype.pollAttributes_=function(){this.pollTimer_.tickAfter(shaka.cast.CastReceiver.POLL_INTERVAL);for(var
|
|
1912
|
-
|
|
1913
|
-
|
|
1921
|
+
shaka.cast.CastReceiver.prototype.pollAttributes_=function(){var a=this;this.pollTimer_.tickAfter(shaka.cast.CastReceiver.POLL_INTERVAL);for(var b={video:{},player:{}},c=$jscomp.makeIterator(shaka.cast.CastUtils.VideoAttributes),d=c.next();!d.done;d=c.next())d=d.value,b.video[d]=this.video_[d];this.player_.isLive()&&shaka.cast.CastUtils.PlayerGetterMethodsThatRequireLive.forEach(function(e,f){0==a.updateNumber_%e&&(b.player[f]=a.player_[f]())});shaka.cast.CastUtils.PlayerGetterMethods.forEach(function(e,
|
|
1922
|
+
f){0==a.updateNumber_%e&&(b.player[f]=a.player_[f]())});if(c=cast.receiver.CastReceiverManager.getInstance().getSystemVolume())b.video.volume=c.level,b.video.muted=c.muted;this.sendMessage_({type:"update",update:b},this.shakaBus_);shaka.cast.CastUtils.LargePlayerGetterMethods.forEach(function(e,f){0==a.updateNumber_%e&&(e={player:{}},e.player[f]=a.player_[f](),a.sendMessage_({type:"update",update:e},a.shakaBus_))});this.startUpdatingUpdateNumber_&&(this.updateNumber_+=1);this.maybeSendMediaInfoMessage_()};
|
|
1923
|
+
shaka.cast.CastReceiver.prototype.maybeSendMediaInfoMessage_=function(){return this.initialStatusUpdatePending_&&(this.video_.duration||this.player_.isLive())?(this.sendMediaInfoMessage_(),this.initialStatusUpdatePending_=!1,!0):!1};
|
|
1914
1924
|
shaka.cast.CastReceiver.prototype.sendMediaInfoMessage_=function(a){a=void 0===a?0:a;var b={contentId:this.player_.getAssetUri(),streamType:this.player_.isLive()?"LIVE":"BUFFERED",contentType:""};this.player_.isLive()||(b.duration=this.video_.duration);this.metadata_&&(b.metadata=this.metadata_);this.sendMediaStatus_(a,b)};
|
|
1915
1925
|
shaka.cast.CastReceiver.prototype.fakeVolumeChangeEvent_=function(){var a=cast.receiver.CastReceiverManager.getInstance().getSystemVolume();goog.asserts.assert(a,"System volume should not be null!");a&&this.sendMessage_({type:"update",update:{video:{volume:a.level,muted:a.muted}}},this.shakaBus_);this.sendMessage_({type:"event",targetName:"video",event:{type:"volumechange"}},this.shakaBus_)};
|
|
1916
1926
|
shaka.cast.CastReceiver.prototype.onShakaMessage_=function(a){var b=this,c=shaka.cast.CastUtils.deserialize(a.data);shaka.log.debug("CastReceiver: message",c);switch(c.type){case "init":this.updateNumber_=0;this.startUpdatingUpdateNumber_=!1;this.initialStatusUpdatePending_=!0;this.initState_(c.initState,c.appData);this.pollAttributes_();break;case "appData":this.appDataCallback_(c.appData);break;case "set":var d=c.targetName,e=c.property;c=c.value;if("video"==d)if(a=cast.receiver.CastReceiverManager.getInstance(),
|
|
@@ -1925,7 +1935,7 @@ shaka.cast.CastReceiver.prototype.sendMediaStatus_=function(a,b){a=void 0===a?0:
|
|
|
1925
1935
|
goog.exportProperty(shaka.cast.CastReceiver.prototype,"destroy",shaka.cast.CastReceiver.prototype.destroy);goog.exportProperty(shaka.cast.CastReceiver.prototype,"setContentArtist",shaka.cast.CastReceiver.prototype.setContentArtist);goog.exportProperty(shaka.cast.CastReceiver.prototype,"setContentImage",shaka.cast.CastReceiver.prototype.setContentImage);goog.exportProperty(shaka.cast.CastReceiver.prototype,"setContentTitle",shaka.cast.CastReceiver.prototype.setContentTitle);
|
|
1926
1936
|
goog.exportProperty(shaka.cast.CastReceiver.prototype,"clearContentMetadata",shaka.cast.CastReceiver.prototype.clearContentMetadata);goog.exportProperty(shaka.cast.CastReceiver.prototype,"setContentMetadata",shaka.cast.CastReceiver.prototype.setContentMetadata);goog.exportProperty(shaka.cast.CastReceiver.prototype,"isIdle",shaka.cast.CastReceiver.prototype.isIdle);goog.exportProperty(shaka.cast.CastReceiver.prototype,"isConnected",shaka.cast.CastReceiver.prototype.isConnected);
|
|
1927
1937
|
shaka.cast.CastReceiver.POLL_INTERVAL=.5;shaka.cast.CastReceiver.IDLE_INTERVAL=5;shaka.cast.CastReceiver.PLAY_STATE={IDLE:"IDLE",PLAYING:"PLAYING",BUFFERING:"BUFFERING",PAUSED:"PAUSED"};shaka.cea.CeaUtils=function(){};
|
|
1928
|
-
shaka.cea.CeaUtils.getParsedCaption=function(a,b,c,d,e){if(d>=e)return null;for(var f=-1,g=-1,h=0;h<c.length;h++)if(c[h].some(function(
|
|
1938
|
+
shaka.cea.CeaUtils.getParsedCaption=function(a,b,c,d,e){if(d>=e)return null;for(var f=-1,g=-1,h=0;h<c.length;h++)if(c[h].some(function(z){return null!=z&&""!=z.getChar().trim()})){f=h;break}for(h=c.length-1;0<=h;h--)if(c[h].some(function(z){return null!=z&&""!=z.getChar().trim()})){g=h;break}if(-1===f||-1===g)return null;for(var k=h=!1,l=shaka.cea.CeaUtils.DEFAULT_TXT_COLOR,m=shaka.cea.CeaUtils.DEFAULT_BG_COLOR,n=shaka.cea.CeaUtils.createStyledCue(d,e,h,k,l,m);f<=g;f++){for(var p=c[f],q=-1,r=-1,t=
|
|
1929
1939
|
0;t<p.length;t++)if(null!=p[t]&&""!==p[t].getChar().trim()){q=t;break}for(t=p.length-1;0<=t;t--)if(null!=p[t]&&""!==p[t].getChar().trim()){r=t;break}if(-1===q||-1===r)p=shaka.cea.CeaUtils.createLineBreakCue(d,e),a.nestedCues.push(p);else{for(;q<=r;q++)if(t=p[q]){var u=t.isUnderlined(),v=t.isItalicized(),w=t.getTextColor(),x=t.getBackgroundColor();if(u!=h||v!=k||w!=l||x!=m)n.payload&&a.nestedCues.push(n),n=shaka.cea.CeaUtils.createStyledCue(d,e,u,v,w,x),h=u,k=v,l=w,m=x;n.payload+=t.getChar()}else n.payload+=
|
|
1930
1940
|
" ";n.payload&&a.nestedCues.push(n);f!==g&&(n=shaka.cea.CeaUtils.createLineBreakCue(d,e),a.nestedCues.push(n));n=shaka.cea.CeaUtils.createStyledCue(d,e,h,k,l,m)}}return a.nestedCues.length?{cue:a,stream:b}:null};shaka.cea.CeaUtils.createStyledCue=function(a,b,c,d,e,f){a=new shaka.text.Cue(a,b,"");c&&a.textDecoration.push(shaka.text.Cue.textDecoration.UNDERLINE);d&&(a.fontStyle=shaka.text.Cue.fontStyle.ITALIC);a.color=e;a.backgroundColor=f;return a};
|
|
1931
1941
|
shaka.cea.CeaUtils.createLineBreakCue=function(a,b){a=new shaka.text.Cue(a,b,"");a.lineBreak=!0;return a};shaka.cea.CeaUtils.StyledChar=function(a,b,c,d,e){this.character_=a;this.underline_=b;this.italics_=c;this.backgroundColor_=d;this.textColor_=e};shaka.cea.CeaUtils.StyledChar.prototype.getChar=function(){return this.character_};shaka.cea.CeaUtils.StyledChar.prototype.isUnderlined=function(){return this.underline_};shaka.cea.CeaUtils.StyledChar.prototype.isItalicized=function(){return this.italics_};
|
|
@@ -2016,9 +2026,9 @@ g=g.trackId;b.trackIdToTimescale_.has(g)&&(h.timescale=b.trackIdToTimescale_.get
|
|
|
2016
2026
|
new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.TEXT,shaka.util.Error.Code.INVALID_MP4_CEA);g.reader.seek(k);b.parseMdat_(g.reader,m.baseMediaDecodeTime,m.timescale,m.defaultSampleDuration,m.defaultSampleSize,h,m.parsedTRUNs,d)}}).parse(a,!1);return d};
|
|
2017
2027
|
shaka.cea.Mp4CeaParser.prototype.parseMdat_=function(a,b,c,d,e,f,g,h){var k=shaka.cea.Mp4CeaParser.BitstreamFormat,l=shaka.cea.CeaUtils,m=0,n=e,p=g.map(function(t){return t.sampleData});p=[].concat.apply([],$jscomp.arrayFromIterable(p));p.length&&(n=p[0].sampleSize||e);for(a.skip(f+g[0].dataOffset);a.hasMoreData();){f=a.readUint32();var q=a.readUint8(),r=null;r=!1;g=1;goog.asserts.assert(this.bitstreamFormat_!=k.UNKNOWN,"Bitstream format should have been checked before now!");switch(this.bitstreamFormat_){case k.H264:r=
|
|
2018
2028
|
q&31;r=r==l.H264_NALU_TYPE_SEI;break;case k.H265:g=2;a.skip(1);r=q>>1&63;r=r==l.H265_PREFIX_NALU_TYPE_SEI||r==l.H265_SUFFIX_NALU_TYPE_SEI;break;case k.H266:g=2;a.skip(1);r=q>>1&63;r=r==l.H266_PREFIX_NALU_TYPE_SEI||r==l.H266_SUFFIX_NALU_TYPE_SEI;break;default:return}if(r)for(q=0,m<p.length&&(q=p[m].sampleCompositionTimeOffset||0),q=(b+q)/c,g=$jscomp.makeIterator(this.seiProcessor_.process(a.readBytes(f-g))),r=g.next();!r.done;r=g.next())h.push({packet:r.value,pts:q});else try{a.skip(f-g)}catch(t){break}n-=
|
|
2019
|
-
f+4;0==n&&(b=m<p.length?b+(p[m].sampleDuration||d):b+d,m++,n=m<p.length?p[m].sampleSize||e:e)}};shaka.cea.Mp4CeaParser.prototype.setBitstreamFormat_=function(a){
|
|
2020
|
-
shaka.cea.Mp4CeaParser.CodecBitstreamMap_=
|
|
2021
|
-
dvc1
|
|
2029
|
+
f+4;0==n&&(b=m<p.length?b+(p[m].sampleDuration||d):b+d,m++,n=m<p.length?p[m].sampleSize||e:e)}};shaka.cea.Mp4CeaParser.prototype.setBitstreamFormat_=function(a){shaka.cea.Mp4CeaParser.CodecBitstreamMap_.has(a)&&(this.bitstreamFormat_=shaka.cea.Mp4CeaParser.CodecBitstreamMap_.get(a))};goog.exportSymbol("shaka.cea.Mp4CeaParser",shaka.cea.Mp4CeaParser);shaka.cea.Mp4CeaParser.BitstreamFormat={UNKNOWN:0,H264:1,H265:2,H266:3};
|
|
2030
|
+
shaka.cea.Mp4CeaParser.CodecBitstreamMap_=(new Map).set("avc1",shaka.cea.Mp4CeaParser.BitstreamFormat.H264).set("avc3",shaka.cea.Mp4CeaParser.BitstreamFormat.H264).set("dvav",shaka.cea.Mp4CeaParser.BitstreamFormat.H264).set("dva1",shaka.cea.Mp4CeaParser.BitstreamFormat.H264).set("hev1",shaka.cea.Mp4CeaParser.BitstreamFormat.H265).set("hvc1",shaka.cea.Mp4CeaParser.BitstreamFormat.H265).set("dvh1",shaka.cea.Mp4CeaParser.BitstreamFormat.H265).set("dvhe",shaka.cea.Mp4CeaParser.BitstreamFormat.H265).set("vvc1",
|
|
2031
|
+
shaka.cea.Mp4CeaParser.BitstreamFormat.H266).set("vvi1",shaka.cea.Mp4CeaParser.BitstreamFormat.H266).set("dvc1",shaka.cea.Mp4CeaParser.BitstreamFormat.H266).set("dvi1",shaka.cea.Mp4CeaParser.BitstreamFormat.H266);shaka.media.ClosedCaptionParser.registerParser("video/mp4",function(){return new shaka.cea.Mp4CeaParser});shaka.cea.TsCeaParser=function(){this.seiProcessor_=new shaka.cea.SeiProcessor;this.tsParser_=null};shaka.cea.TsCeaParser.prototype.init=function(a){};
|
|
2022
2032
|
shaka.cea.TsCeaParser.prototype.parse=function(a){var b=shaka.cea.CeaUtils;this.tsParser_?this.tsParser_.clearData():this.tsParser_=new shaka.util.TsParser;var c=[];a=shaka.util.BufferUtils.toUint8(a);if(!shaka.util.TsParser.probe(a))return c;a=this.tsParser_.parse(a);var d=a.getCodecs(),e=a.getVideoNalus();a=[];switch(d.video){case "avc":a.push(b.H264_NALU_TYPE_SEI);break;case "hvc":a.push(b.H265_PREFIX_NALU_TYPE_SEI),a.push(b.H265_SUFFIX_NALU_TYPE_SEI)}if(!a.length)return c;b=$jscomp.makeIterator(e);
|
|
2023
2033
|
for(d=b.next();!d.done;d=b.next())if(d=d.value,a.includes(d.type)&&null!=d.time){e=$jscomp.makeIterator(this.seiProcessor_.process(d.data));for(var f=e.next();!f.done;f=e.next())c.push({packet:f.value,pts:d.time})}return c};goog.exportSymbol("shaka.cea.TsCeaParser",shaka.cea.TsCeaParser);shaka.media.ClosedCaptionParser.registerParser("video/mp2t",function(){return new shaka.cea.TsCeaParser});shaka.drm.PlayReady=function(){};shaka.drm.PlayReady.parseMsProRecords_=function(a,b){for(var c=[];b<a.byteLength-1;){var d=a.getUint16(b,!0);b+=2;var e=a.getUint16(b,!0);b+=2;if(0!=(e&1)||e+b>a.byteLength)return shaka.log.warning("Malformed MS PRO object"),[];var f=shaka.util.BufferUtils.toUint8(a,b,e);c.push({type:d,value:f});b+=e}return c};
|
|
2024
2034
|
shaka.drm.PlayReady.parseMsPro_=function(a){var b=0,c=shaka.util.BufferUtils.toDataView(a),d=c.getUint32(b,!0);b+=4;return d!=a.byteLength?(shaka.log.warning("PlayReady Object with invalid length encountered."),[]):shaka.drm.PlayReady.parseMsProRecords_(c,b+2)};
|
|
@@ -2032,7 +2042,7 @@ shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.DASH_CONFLICTING_AES_12
|
|
|
2032
2042
|
!k&&(b||!h.length))for(a=[],b=$jscomp.makeIterator(Object.values(c)),c=b.next();!c.done;c=b.next())c=c.value,"org.w3.clearkey"!=c&&(c=e.createDrmInfo(c,m,g),a.push(c));if(e=Array.from(l)[0]||null)for(l=$jscomp.makeIterator(a),m=l.next();!m.done;m=l.next())for(m=$jscomp.makeIterator(m.value.initData),b=m.next();!b.done;b=m.next())b.value.keyId=e;return{defaultKeyId:e,defaultInit:g,drmInfos:a,aes128Info:k,firstRepresentation:!0}};
|
|
2033
2043
|
shaka.dash.ContentProtection.parseFromRepresentation=function(a,b,c,d){var e=shaka.dash.ContentProtection.parseFromAdaptationSet(a,c,d);if(b.firstRepresentation){a=1==b.drmInfos.length&&!b.drmInfos[0].keySystem;c=0==e.drmInfos.length;if(0==b.drmInfos.length||a&&!c)b.drmInfos=e.drmInfos;b.firstRepresentation=!1}else if(0<e.drmInfos.length&&(b.drmInfos=b.drmInfos.filter(function(f){return e.drmInfos.some(function(g){return g.keySystem==f.keySystem})}),0==b.drmInfos.length))throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
|
|
2034
2044
|
shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.DASH_NO_COMMON_KEY_SYSTEM);return e.defaultKeyId||b.defaultKeyId};
|
|
2035
|
-
shaka.dash.ContentProtection.getFairPlayLicenseUrl=function(a){if(shaka.util.Platform.isMediaKeysPolyfilled())throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.DASH_MSE_ENCRYPTED_LEGACY_APPLE_MEDIA_KEYS_NOT_SUPPORTED);if(a=shaka.util.TXml.findChildNS(a.node,shaka.dash.ContentProtection.DashIfNamespaceUri_,"Laurl"))if(a=shaka.util.TXml.getTextContents(a))return a;return""};
|
|
2045
|
+
shaka.dash.ContentProtection.getFairPlayLicenseUrl=function(a){if(shaka.util.Platform.isMediaKeysPolyfilled("apple"))throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.DASH_MSE_ENCRYPTED_LEGACY_APPLE_MEDIA_KEYS_NOT_SUPPORTED);if(a=shaka.util.TXml.findChildNS(a.node,shaka.dash.ContentProtection.DashIfNamespaceUri_,"Laurl"))if(a=shaka.util.TXml.getTextContents(a))return a;return""};
|
|
2036
2046
|
shaka.dash.ContentProtection.getWidevineLicenseUrl=function(a){var b=shaka.util.StringUtils,c=shaka.util.TXml.findChildNS(a.node,shaka.dash.ContentProtection.DashIfNamespaceUri_,"Laurl");return c&&(c=shaka.util.TXml.getTextContents(c))?c:(a=shaka.util.TXml.findChildNS(a.node,"urn:microsoft","laurl"))?b.htmlUnescape(a.attributes.licenseUrl)||"":""};
|
|
2037
2047
|
shaka.dash.ContentProtection.getClearKeyLicenseUrl=function(a){var b=shaka.util.TXml.findChildNS(a.node,shaka.dash.ContentProtection.DashIfNamespaceUri_,"Laurl");return b&&(b=shaka.util.TXml.getTextContents(b))?b:(a=shaka.util.TXml.findChildNS(a.node,shaka.dash.ContentProtection.ClearKeyNamespaceUri_,"Laurl"))&&"EME-1.0"===a.attributes.Lic_type&&a&&(a=shaka.util.TXml.getTextContents(a))?a:""};
|
|
2038
2048
|
shaka.dash.ContentProtection.getPlayReadyLicenseUrl=function(a){var b=shaka.util.TXml,c=b.findChildNS(a.node,shaka.dash.ContentProtection.DashIfNamespaceUri_,"Laurl");if(c&&(c=b.getTextContents(c)))return c;if((c=b.findChildNS(a.node,"urn:microsoft:playready","pro"))&&b.getTextContents(c))return shaka.drm.PlayReady.getLicenseUrl(c);if(a=b.findChildNS(a.node,shaka.dash.ContentProtection.CencNamespaceUri_,"pssh"))if(a=b.getTextContents(a))return a=shaka.util.Pssh.getPsshData(shaka.util.Uint8ArrayUtils.fromBase64(a)),
|
|
@@ -2049,9 +2059,9 @@ a=b.attributes.IV;b=shaka.util.StringUtils.htmlUnescape(b.attributes.keyUriTempl
|
|
|
2049
2059
|
shaka.dash.ContentProtection.licenseUrlParsers_=(new Map).set("com.apple.fps",shaka.dash.ContentProtection.getFairPlayLicenseUrl).set("com.widevine.alpha",shaka.dash.ContentProtection.getWidevineLicenseUrl).set("com.microsoft.playready",shaka.dash.ContentProtection.getPlayReadyLicenseUrl).set("com.microsoft.playready.recommendation",shaka.dash.ContentProtection.getPlayReadyLicenseUrl).set("com.microsoft.playready.software",shaka.dash.ContentProtection.getPlayReadyLicenseUrl).set("com.microsoft.playready.hardware",
|
|
2050
2060
|
shaka.dash.ContentProtection.getPlayReadyLicenseUrl).set("org.w3.clearkey",shaka.dash.ContentProtection.getClearKeyLicenseUrl);shaka.dash.ContentProtection.MP4Protection_="urn:mpeg:dash:mp4protection:2011";shaka.dash.ContentProtection.Aes128Protection_="urn:mpeg:dash:sea:2012";shaka.dash.ContentProtection.CencNamespaceUri_="urn:mpeg:cenc:2013";shaka.dash.ContentProtection.ClearKeyNamespaceUri_="http://dashif.org/guidelines/clearKey";shaka.dash.ContentProtection.ClearKeySchemeUri_="urn:uuid:e2719d58-a985-b3c9-781a-b030af78d30e";
|
|
2051
2061
|
shaka.dash.ContentProtection.DashIfNamespaceUri_="https://dashif.org/CPS";shaka.dash.MpdUtils=function(){};
|
|
2052
|
-
shaka.dash.MpdUtils.fillUriTemplate=function(a,b,c,d,e,f){var g=
|
|
2053
|
-
'"RepresentationID":',a),l=void 0);"Time"==k&&"bigint"!=typeof n&&(goog.asserts.assert("number"==typeof n,"Time value should be a number or bigint!"),.2<=Math.abs(n-Math.round(n))&&shaka.log.alwaysWarn("Calculated $Time$ values must be close to integers"),n=Math.round(n));switch(m){case void 0:case "d":case "i":case "u":h=n.toString();break;case "o":h=n.toString(8);break;case "x":h=n.toString(16);
|
|
2054
|
-
h=n.toString()}l=window.parseInt(l,10)||1;return Array(Math.max(0,l-h.length)+1).join("0")+h})};
|
|
2062
|
+
shaka.dash.MpdUtils.fillUriTemplate=function(a,b,c,d,e,f){var g=(new Map).set("RepresentationID",b).set("Number",c).set("SubNumber",d).set("Bandwidth",e).set("Time",f);return a.replace(/\$(RepresentationID|Number|SubNumber|Bandwidth|Time)?(?:%0([0-9]+)([diouxX]))?\$/g,function(h,k,l,m){if("$$"==h)return"$";var n=g.get(k);goog.asserts.assert(void 0!==n,"Unrecognized identifier");if(null==n)return shaka.log.warning("URL template does not have an available substitution for ",'identifier "'+k+'":',a),
|
|
2063
|
+
h;"RepresentationID"==k&&l&&(shaka.log.warning("URL template should not contain a width specifier for identifier",'"RepresentationID":',a),l=void 0);"Time"==k&&"bigint"!=typeof n&&(goog.asserts.assert("number"==typeof n,"Time value should be a number or bigint!"),.2<=Math.abs(n-Math.round(n))&&shaka.log.alwaysWarn("Calculated $Time$ values must be close to integers"),n=Math.round(n));switch(m){case void 0:case "d":case "i":case "u":h=n.toString();break;case "o":h=n.toString(8);break;case "x":h=n.toString(16);
|
|
2064
|
+
break;case "X":h=n.toString(16).toUpperCase();break;default:goog.asserts.assert(!1,"Unhandled format specifier"),h=n.toString()}l=window.parseInt(l,10)||1;return Array(Math.max(0,l-h.length)+1).join("0")+h})};
|
|
2055
2065
|
shaka.dash.MpdUtils.createTimeline=function(a,b,c,d,e){goog.asserts.assert(0<b&&Infinity>b,"timescale must be a positive, finite integer");goog.asserts.assert(0<d,"period duration must be a positive integer");for(var f=shaka.util.TXml,g=[],h=-c,k=0;k<a.length;++k){var l=a[k],m=a[k+1],n=f.parseAttr(l,"t",f.parseNonNegativeInt),p=f.parseAttr(l,"d",f.parseNonNegativeInt),q=f.parseAttr(l,"r",f.parseInt),r=f.parseAttr(l,"k",f.parseInt)||0;null!=n&&(n-=c);if(p){n=null!=n?n:h;q=q||0;if(0>q)if(m){m=f.parseAttr(m,
|
|
2056
2066
|
"t",f.parseNonNegativeInt);if(null==m){shaka.log.warning('An "S" element cannot have a negative repeat','if the next "S" element does not have a valid start time:','ignoring the remaining "S" elements.',l);break}else if(n>=m){shaka.log.warning('An "S" element cannot have a negative repeat if its start ','time exceeds the next "S" element\'s start time:','ignoring the remaining "S" elements.',l);break}q=Math.ceil((m-n)/p)-1}else{if(Infinity==d){shaka.log.warning('The last "S" element cannot have a negative repeat',
|
|
2057
2067
|
"if the Period has an infinite duration:",'ignoring the last "S" element.',l);break}else if(n/b>=d){shaka.log.warning('The last "S" element cannot have a negative repeat',"if its start time exceeds the Period's duration:",'ignoring the last "S" element.',l);break}q=Math.ceil((d*b-n)/p)-1}0<g.length&&n!=h&&(Math.abs((n-h)/b)>=shaka.util.ManifestParserUtils.GAP_OVERLAP_TOLERANCE_SECONDS&&shaka.log.warning("SegmentTimeline contains a large gap/overlap:","the content may have errors in it.",l),g[g.length-
|
|
@@ -2091,16 +2101,16 @@ shaka.dash.SegmentBase.createInitSegment=function(a,b,c){var d=shaka.util.TXml,e
|
|
|
2091
2101
|
f,d,null,null,c);c.codecs=a.representation.codecs;c.mimeType=a.representation.mimeType;return c};
|
|
2092
2102
|
shaka.dash.SegmentBase.createStreamInfo=function(a,b,c){goog.asserts.assert(a.representation.segmentBase,"Should only be called with SegmentBase");var d=shaka.dash.MpdUtils,e=shaka.dash.SegmentBase,f=shaka.util.TXml,g=Number(d.inheritAttribute(a,e.fromInheritance_,"presentationTimeOffset"))||0;d=d.inheritAttribute(a,e.fromInheritance_,"timescale");var h=1;d&&(h=f.parsePositiveInt(d)||1);var k=g/h||0,l=e.createInitSegment(a,e.fromInheritance_,c);e.checkSegmentIndexRangeSupport_(a,l);var m=shaka.util.ObjectUtils.shallowCloneObject(a);
|
|
2093
2103
|
return{generateSegmentIndex:function(){return e.generateSegmentIndex_(m,b,l,k)}}};
|
|
2094
|
-
shaka.dash.SegmentBase.generateSegmentIndexFromUris=function(a,b,c,d,e,f,g){var h,k,l,m,n,p,q,r,t,u,v,w,x,
|
|
2095
|
-
null;w=null;x=l-g;
|
|
2096
|
-
k&&q.fit(
|
|
2104
|
+
shaka.dash.SegmentBase.generateSegmentIndexFromUris=function(a,b,c,d,e,f,g){var h,k,l,m,n,p,q,r,t,u,v,w,x,z,B,A,y,C;return $jscomp.asyncExecutePromiseGeneratorProgram(function(D){if(1==D.nextAddress)return h=a.presentationTimeline,k=!a.dynamic||!a.periodInfo.isLastPeriod,l=a.periodInfo.start,m=a.periodInfo.duration,n=a.representation.mimeType.split("/")[1],p=b,q=null,r=[p(d,e,f,!1),"webm"==n?p(c.getUris(),c.startByte,c.endByte,!0):null],p=null,D.yield(Promise.all(r),2);t=D.yieldResult;u=t[0];v=t[1]||
|
|
2105
|
+
null;w=null;x=l-g;z=l;B=m?l+m:Infinity;"mp4"==n?w=shaka.media.Mp4SegmentIndexParser.parse(u,e,d,c,x,z,B):(goog.asserts.assert(v,"WebM requires init data"),w=shaka.media.WebmSegmentIndexParser.parse(u,v,d,c,x,z,B));A=$jscomp.makeIterator(w);for(y=A.next();!y.done;y=A.next())C=y.value,C.codecs=a.representation.codecs,C.mimeType=a.representation.mimeType,C.bandwidth=a.bandwidth;h.notifySegments(w);goog.asserts.assert(!q,"Should not call generateSegmentIndex twice");q=new shaka.media.SegmentIndex(w);
|
|
2106
|
+
k&&q.fit(z,B,!0);return D.return(q)})};shaka.dash.SegmentBase.fromInheritance_=function(a){return a.segmentBase};shaka.dash.SegmentBase.computeIndexRange_=function(a){var b=shaka.dash.MpdUtils,c=shaka.dash.SegmentBase,d=shaka.util.TXml,e=b.inheritChild(a,c.fromInheritance_,"RepresentationIndex");a=b.inheritAttribute(a,c.fromInheritance_,"indexRange");a=d.parseRange(a||"");e&&(a=d.parseAttr(e,"range",d.parseRange,a));return a};
|
|
2097
2107
|
shaka.dash.SegmentBase.computeIndexUris_=function(a){var b=shaka.util.ManifestParserUtils,c=shaka.util.StringUtils,d=shaka.dash.MpdUtils.inheritChild(a,shaka.dash.SegmentBase.fromInheritance_,"RepresentationIndex"),e=a.representation.getBaseUris();d&&(c=c.htmlUnescape(d.attributes.sourceURL))&&(e=b.resolveUris(e,[c],a.urlParams()));return e};
|
|
2098
2108
|
shaka.dash.SegmentBase.checkSegmentIndexRangeSupport_=function(a,b){var c=shaka.dash.SegmentBase;c.checkSegmentIndexSupport(a,b);if(!c.computeIndexRange_(a))throw shaka.log.error("SegmentBase does not contain sufficient segment information:","the SegmentBase does not contain @indexRange","or a RepresentationIndex element.",a.representation),new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.DASH_NO_SEGMENT_INFO);};
|
|
2099
2109
|
shaka.dash.SegmentBase.checkSegmentIndexSupport=function(a,b){var c=shaka.util.ManifestParserUtils.ContentType,d=a.representation.contentType,e=a.representation.mimeType.split("/")[1];if(d!=c.TEXT&&"mp4"!=e&&"webm"!=e)throw shaka.log.error("SegmentBase specifies an unsupported container type.",a.representation),new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.DASH_UNSUPPORTED_CONTAINER);if("webm"==e&&!b)throw shaka.log.error("SegmentBase does not contain sufficient segment information:",
|
|
2100
2110
|
"the SegmentBase uses a WebM container,","but does not contain an Initialization element.",a.representation),new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.DASH_WEBM_MISSING_INIT);};
|
|
2101
2111
|
shaka.dash.SegmentBase.generateSegmentIndex_=function(a,b,c,d){var e=shaka.dash.SegmentBase,f=e.computeIndexUris_(a);e=e.computeIndexRange_(a);goog.asserts.assert(e,"Index range should not be null!");return shaka.dash.SegmentBase.generateSegmentIndexFromUris(a,b,c,f,e.start,e.end,d)};
|
|
2102
2112
|
shaka.dash.SegmentBase.createQualityInfo=function(a){var b=a.representation;return{bandwidth:a.bandwidth,audioSamplingRate:b.audioSamplingRate,codecs:b.codecs,contentType:b.contentType,frameRate:b.frameRate||null,height:b.height||null,mimeType:b.mimeType,channelsCount:b.numChannels,pixelAspectRatio:b.pixelAspectRatio||null,width:b.width||null,label:a.adaptationSet.label||null,roles:a.roles||null,language:a.adaptationSet.language||null}};shaka.dash.SegmentList=function(){};
|
|
2103
|
-
shaka.dash.SegmentList.createStreamInfo=function(a,b,c){goog.asserts.assert(a.representation.segmentList,"Should only be called with SegmentList");var d=shaka.dash.SegmentList,e=shaka.dash.SegmentBase.createInitSegment(a,d.fromInheritance_,c),f=d.parseSegmentListInfo_(a);d.checkSegmentListInfo_(a,f);var g=null,h=null;a.period.id&&a.representation.id&&(h=b
|
|
2113
|
+
shaka.dash.SegmentList.createStreamInfo=function(a,b,c){goog.asserts.assert(a.representation.segmentList,"Should only be called with SegmentList");var d=shaka.dash.SegmentList,e=shaka.dash.SegmentBase.createInitSegment(a,d.fromInheritance_,c),f=d.parseSegmentListInfo_(a);d.checkSegmentListInfo_(a,f);var g=null,h=null;a.period.id&&a.representation.id&&(h=b.get(a.period.id+","+a.representation.id))&&(g=h.segmentIndex);var k=d.createSegmentReferences_(a.periodInfo.start,a.periodInfo.duration,f.startNumber,
|
|
2104
2114
|
a.representation.getBaseUris,f,e,c,a.representation.mimeType,a.representation.codecs,a.bandwidth,a.urlParams);b=!g;g?(c=a.presentationTimeline.getSegmentAvailabilityStart(),g.mergeAndEvict(k,c)):g=new shaka.media.SegmentIndex(k);a.presentationTimeline.notifySegments(k);a.dynamic&&a.periodInfo.isLastPeriod||g.fit(a.periodInfo.start,a.periodInfo.duration?a.periodInfo.start+a.periodInfo.duration:Infinity,b);h&&(h.segmentIndex=g);return{generateSegmentIndex:function(){g&&!g.isEmpty()||g.merge(k);return Promise.resolve(g)}}};
|
|
2105
2115
|
shaka.dash.SegmentList.fromInheritance_=function(a){return a.segmentList};
|
|
2106
2116
|
shaka.dash.SegmentList.parseSegmentListInfo_=function(a){var b=shaka.dash.SegmentList,c=shaka.dash.MpdUtils,d=b.parseMediaSegments_(a);a=c.parseSegmentInfo(a,b.fromInheritance_);b=a.startNumber;0==b&&(shaka.log.warning("SegmentList@startNumber must be > 0"),b=1);c=0;a.segmentDuration?c=a.segmentDuration*(b-1):a.timeline&&0<a.timeline.length&&(c=a.timeline[0].start);return{segmentDuration:a.segmentDuration,startTime:c,startNumber:b,scaledPresentationTimeOffset:a.scaledPresentationTimeOffset,timeline:a.timeline,
|
|
@@ -2109,29 +2119,29 @@ shaka.dash.SegmentList.checkSegmentListInfo_=function(a,b){if(!b.segmentDuration
|
|
|
2109
2119
|
!b.timeline&&1==b.mediaSegments.length)throw shaka.log.warning("SegmentList does not contain sufficient segment information:","the SegmentList specifies one segment,","but does not specify a segment duration, period duration,","or timeline.",a.representation),new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.DASH_NO_SEGMENT_INFO);if(b.timeline&&0==b.timeline.length)throw shaka.log.warning("SegmentList does not contain sufficient segment information:",
|
|
2110
2120
|
"the SegmentList has an empty timeline.",a.representation),new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.DASH_NO_SEGMENT_INFO);};
|
|
2111
2121
|
shaka.dash.SegmentList.createSegmentReferences_=function(a,b,c,d,e,f,g,h,k,l,m){var n=shaka.util.ManifestParserUtils;c=e.mediaSegments.length;e.timeline&&e.timeline.length!=e.mediaSegments.length&&(c=Math.min(e.timeline.length,e.mediaSegments.length),shaka.log.warning("The number of items in the segment timeline and the number of ","segment URLs do not match, truncating",e.mediaSegments.length,"to",c));for(var p=a-e.scaledPresentationTimeOffset,q=b?a+b:Infinity,r=[],t=e.startTime,u={},v=0;v<c;u={uris$jscomp$12:void 0,
|
|
2112
|
-
segment$jscomp$9:void 0},v++){u.segment$jscomp$9=e.mediaSegments[v];var w=t;t=void 0;null!=e.segmentDuration?t=w+e.segmentDuration:e.timeline?t=e.timeline[v].end:(goog.asserts.assert(1==e.mediaSegments.length&&b,"There should be exactly one segment with a Period duration."),t=w+b);u.uris$jscomp$12=null;var x=function(
|
|
2122
|
+
segment$jscomp$9:void 0},v++){u.segment$jscomp$9=e.mediaSegments[v];var w=t;t=void 0;null!=e.segmentDuration?t=w+e.segmentDuration:e.timeline?t=e.timeline[v].end:(goog.asserts.assert(1==e.mediaSegments.length&&b,"There should be exactly one segment with a Period duration."),t=w+b);u.uris$jscomp$12=null;var x=function(z){return function(){null==z.uris$jscomp$12&&(z.uris$jscomp$12=n.resolveUris(d(),[z.segment$jscomp$9.mediaUri],m()));return z.uris$jscomp$12}}(u);u=new shaka.media.SegmentReference(a+
|
|
2113
2123
|
w,a+t,x,u.segment$jscomp$9.start,u.segment$jscomp$9.end,f,p,a,q,[],"",null,null,shaka.media.SegmentReference.Status.AVAILABLE,g);u.codecs=k;u.mimeType=h;u.bandwidth=l;r.push(u)}return r};
|
|
2114
2124
|
shaka.dash.SegmentList.parseMediaSegments_=function(a){var b=[a.representation.segmentList,a.adaptationSet.segmentList,a.period.segmentList].filter(shaka.util.Functional.isNotNull),c=shaka.util.TXml,d=shaka.util.StringUtils;return b.map(function(e){return c.findChildren(e,"SegmentURL")}).reduce(function(e,f){return 0<e.length?e:f}).map(function(e){e.attributes.indexRange&&!a.indexRangeWarningGiven&&(a.indexRangeWarningGiven=!0,shaka.log.warning("We do not support the SegmentURL@indexRange attribute on SegmentList. We only use the SegmentList@duration attribute or SegmentTimeline, which must be accurate."));
|
|
2115
2125
|
var f=d.htmlUnescape(e.attributes.media);e=c.parseAttr(e,"mediaRange",c.parseRange,{start:0,end:null});return{mediaUri:f,start:e.start,end:e.end}})};shaka.dash.SegmentTemplate=function(){};
|
|
2116
2126
|
shaka.dash.SegmentTemplate.createStreamInfo=function(a,b,c,d,e,f,g,h,k){goog.asserts.assert(a.representation.segmentTemplate,"Should only be called with SegmentTemplate or segment info defined");var l=shaka.dash.MpdUtils,m=shaka.dash.SegmentTemplate,n=shaka.dash.TimelineSegmentIndex;k||a.representation.initialization||(a.representation.initialization=l.inheritAttribute(a,m.fromInheritance_,"initialization"));var p=a.representation.initialization?m.createInitSegment_(a,g):null,q=m.parseSegmentTemplateInfo_(a);
|
|
2117
|
-
m.checkSegmentTemplateInfo_(a,q);var r=shaka.util.ObjectUtils.shallowCloneObject(a);if(q.indexTemplate)return shaka.dash.SegmentBase.checkSegmentIndexSupport(a,p),{generateSegmentIndex:function(){return m.generateSegmentIndexFromIndexTemplate_(r,b,p,q)}};if(q.segmentDuration)return d||"image"===a.adaptationSet.contentType||"text"===a.adaptationSet.contentType||(c=a.periodInfo.start,n=a.period.id,d=a.periodInfo.duration,n=(n=null!=n&&f
|
|
2118
|
-
a.presentationTimeline.notifyPeriodDuration(c,n)),{generateSegmentIndex:function(){return m.generateSegmentIndexFromDuration_(r,q,e,p,f,g,h,a.representation.segmentSequenceCadence)}};var t=null;d=d=null;a.period.id&&a.representation.id&&(d=a.period.id+","+a.representation.id,d=c
|
|
2119
|
-
c.evict(n)):(shaka.log.debug("Creating TSI with end "+v),t=new n(q,a.representation.
|
|
2120
|
-
p);return Promise.resolve(t)}}};shaka.dash.SegmentTemplate.modifyTimepoints=function(a,b){var c=shaka.util.TXml;a=shaka.dash.MpdUtils.inheritChild(a,shaka.dash.SegmentTemplate.fromInheritance_,"SegmentTimeline");goog.asserts.assert(a,"timeline node not found");var d=c.findChildren(a,"S");goog.asserts.assert(d,"timepoints should exist");c.modifyNodes(d,b);a.children=d};
|
|
2127
|
+
m.checkSegmentTemplateInfo_(a,q);var r=shaka.util.ObjectUtils.shallowCloneObject(a);if(q.indexTemplate)return shaka.dash.SegmentBase.checkSegmentIndexSupport(a,p),{generateSegmentIndex:function(){return m.generateSegmentIndexFromIndexTemplate_(r,b,p,q)}};if(q.segmentDuration)return d||"image"===a.adaptationSet.contentType||"text"===a.adaptationSet.contentType||(c=a.periodInfo.start,n=a.period.id,d=a.periodInfo.duration,n=(n=null!=n&&f.get(n)||d)?c+n:Infinity,a.presentationTimeline.notifyMaxSegmentDuration(q.segmentDuration),
|
|
2128
|
+
a.presentationTimeline.notifyPeriodDuration(c,n)),{generateSegmentIndex:function(){return m.generateSegmentIndexFromDuration_(r,q,e,p,f,g,h,a.representation.segmentSequenceCadence)}};var t=null;d=d=null;a.period.id&&a.representation.id&&(d=a.period.id+","+a.representation.id,d=c.get(d))&&(t=d.segmentIndex);var u=a.periodInfo.start,v=a.periodInfo.duration?u+a.periodInfo.duration:Infinity;shaka.log.debug("New manifest "+u+" - "+v);t?(c=t,c.appendTemplateInfo(q,u,v,p),n=a.presentationTimeline.getSegmentAvailabilityStart(),
|
|
2129
|
+
c.evict(n)):(shaka.log.debug("Creating TSI with end "+v),t=new n(q,a.representation.originalId,a.bandwidth,a.representation.getBaseUris,a.urlParams,u,v,p,g,a.representation.segmentSequenceCadence));q.timeline&&"image"!==a.adaptationSet.contentType&&"text"!==a.adaptationSet.contentType&&(c=t.getTimeline(),a.presentationTimeline.notifyTimeRange(c,u));d&&a.dynamic&&(d.segmentIndex=t);return{generateSegmentIndex:function(){t instanceof shaka.dash.TimelineSegmentIndex&&t.isEmpty()&&t.appendTemplateInfo(q,
|
|
2130
|
+
u,v,p);return Promise.resolve(t)}}};shaka.dash.SegmentTemplate.modifyTimepoints=function(a,b){var c=shaka.util.TXml;a=shaka.dash.MpdUtils.inheritChild(a,shaka.dash.SegmentTemplate.fromInheritance_,"SegmentTimeline");goog.asserts.assert(a,"timeline node not found");var d=c.findChildren(a,"S");goog.asserts.assert(d,"timepoints should exist");c.modifyNodes(d,b);a.children=d};
|
|
2121
2131
|
shaka.dash.SegmentTemplate.removeTimepoints=function(a){a=shaka.dash.MpdUtils.inheritChild(a,shaka.dash.SegmentTemplate.fromInheritance_,"SegmentTimeline");goog.asserts.assert(a,"timeline node not found");a.children=[]};shaka.dash.SegmentTemplate.fromInheritance_=function(a){return a.segmentTemplate};
|
|
2122
2132
|
shaka.dash.SegmentTemplate.parseSegmentTemplateInfo_=function(a){var b=shaka.dash.SegmentTemplate,c=shaka.dash.MpdUtils,d=shaka.util.StringUtils,e=c.parseSegmentInfo(a,b.fromInheritance_),f=c.inheritAttribute(a,b.fromInheritance_,"media"),g=c.inheritAttribute(a,b.fromInheritance_,"index");b=c.inheritAttribute(a,b.fromInheritance_,"k");c=0;b&&(c=parseInt(b,10));return{unscaledSegmentDuration:e.unscaledSegmentDuration,segmentDuration:e.segmentDuration,timescale:e.timescale,startNumber:e.startNumber,
|
|
2123
2133
|
scaledPresentationTimeOffset:e.scaledPresentationTimeOffset,unscaledPresentationTimeOffset:e.unscaledPresentationTimeOffset,timeline:e.timeline,mediaTemplate:f&&d.htmlUnescape(f),indexTemplate:g,mimeType:a.representation.mimeType,codecs:a.representation.codecs,bandwidth:a.bandwidth,numChunks:c}};
|
|
2124
2134
|
shaka.dash.SegmentTemplate.checkSegmentTemplateInfo_=function(a,b){var c=b.indexTemplate?1:0;c+=b.timeline?1:0;c+=b.segmentDuration?1:0;if(0==c)throw shaka.log.error("SegmentTemplate does not contain any segment information:","the SegmentTemplate must contain either an index URL template","a SegmentTimeline, or a segment duration.",a.representation),new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.DASH_NO_SEGMENT_INFO);1!=c&&(shaka.log.warning("SegmentTemplate contains multiple segment information sources:",
|
|
2125
2135
|
"the SegmentTemplate should only contain an index URL template,","a SegmentTimeline or a segment duration.",a.representation),b.indexTemplate?(shaka.log.info("Using the index URL template by default."),b.timeline=null):(goog.asserts.assert(b.timeline,"There should be a timeline"),shaka.log.info("Using the SegmentTimeline by default.")),b.unscaledSegmentDuration=null,b.segmentDuration=null);if(!b.indexTemplate&&!b.mediaTemplate)throw shaka.log.error("SegmentTemplate does not contain sufficient segment information:",
|
|
2126
2136
|
"the SegmentTemplate's media URL template is missing.",a.representation),new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.DASH_NO_SEGMENT_INFO);};
|
|
2127
|
-
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.
|
|
2128
|
-
shaka.dash.SegmentTemplate.generateSegmentIndexFromDuration_=function(a,b,c,d,e,f,g,h){goog.asserts.assert(b.mediaTemplate,"There should be a media template with duration");var k=shaka.dash.MpdUtils,l=shaka.util.ManifestParserUtils,m=a.presentationTimeline,n=a.periodInfo.start,p=a.period.id,q=a.periodInfo.duration,r=function(){var K=null!=p&&e
|
|
2129
|
-
a.bandwidth||null,x=a.representation.id,
|
|
2130
|
-
n});K=[Math.ceil(K[0]/t),Math.ceil(K[1]/t)-1];a.representation.availabilityTimeOffset&&K[1]++;return K.map(function(
|
|
2131
|
-
|
|
2132
|
-
0==h?0<
|
|
2133
|
-
|
|
2134
|
-
shaka.dash.SegmentTemplate.createInitSegment_=function(a,b){var c=shaka.dash.MpdUtils,d=shaka.util.ManifestParserUtils,e=shaka.dash.SegmentTemplate,f=a.representation.initialization;f||(f=c.inheritAttribute(a,e.fromInheritance_,"initialization"));if(!f)return null;f=shaka.util.StringUtils.htmlUnescape(f);var g=a.representation.
|
|
2137
|
+
shaka.dash.SegmentTemplate.generateSegmentIndexFromIndexTemplate_=function(a,b,c,d){var e=shaka.dash.MpdUtils,f=shaka.util.ManifestParserUtils;goog.asserts.assert(d.indexTemplate,"must be using index template");e=e.fillUriTemplate(d.indexTemplate,a.representation.originalId,null,null,a.bandwidth||null,null);f=f.resolveUris(a.representation.getBaseUris(),[e]);return shaka.dash.SegmentBase.generateSegmentIndexFromUris(a,b,c,f,0,null,d.scaledPresentationTimeOffset)};
|
|
2138
|
+
shaka.dash.SegmentTemplate.generateSegmentIndexFromDuration_=function(a,b,c,d,e,f,g,h){goog.asserts.assert(b.mediaTemplate,"There should be a media template with duration");var k=shaka.dash.MpdUtils,l=shaka.util.ManifestParserUtils,m=a.presentationTimeline,n=a.periodInfo.start,p=a.period.id,q=a.periodInfo.duration,r=function(){var K=null!=p&&e.get(p)||q;return K?n+K:Infinity},t=b.segmentDuration;goog.asserts.assert(null!=t,"Segment duration must not be null!");var u=b.startNumber,v=b.mediaTemplate,
|
|
2139
|
+
w=a.bandwidth||null,x=a.representation.id,z=a.representation.getBaseUris,B=a.urlParams,A=n-b.scaledPresentationTimeOffset,y=function(){var K=[Math.max(m.getSegmentAvailabilityStart(),n),Math.min(m.getSegmentAvailabilityEnd(),r())];goog.asserts.assert(K.every(isFinite),"Available presentation times must be finite!");goog.asserts.assert(K.every(function(L){return 0<=L}),"Available presentation times must be positive!");goog.asserts.assert(null!=t,"Segment duration must not be null!");K=K.map(function(L){return L-
|
|
2140
|
+
n});K=[Math.ceil(K[0]/t),Math.ceil(K[1]/t)-1];a.representation.availabilityTimeOffset&&K[1]++;return K.map(function(L){return L+u})},C=y();c=a.dynamic?Math.max(C[0],C[1]-c+1):C[0];g=g||C[1];C=[];var D=function(K){goog.asserts.assert(null!=t,"Segment duration must not be null!");var L=K-u,G=L*t,M=b.unscaledSegmentDuration;goog.asserts.assert(null!=M,"Segment duration must not be null!");var I=L*M;"BigInt"in window&&I>Number.MAX_SAFE_INTEGER&&(I=BigInt(L)*BigInt(M));G+=n;L=G+t;M=Math.min(L,r());goog.asserts.assert(G<
|
|
2141
|
+
M,"Generated a segment outside of the period!");var N=[],P=b.numChunks;if(P)for(var O=(M-G)/P,W={},Q=0;Q<P;W={subNumber$jscomp$1:void 0},Q++){var S=G+O*Q,V=S+O;W.subNumber$jscomp$1=Q+1;W=function(R){return function(){var T=k.fillUriTemplate(v,x,K,R.subNumber$jscomp$1,w,I);return l.resolveUris(z(),[T],B())}}(W);S=new shaka.media.SegmentReference(S,V,W,0,null,d,A,n,r(),[],"",null,null,shaka.media.SegmentReference.Status.AVAILABLE,f);S.codecs=a.representation.codecs;S.mimeType=a.representation.mimeType;
|
|
2142
|
+
0==h?0<Q&&S.markAsNonIndependent():0!=Q%h&&S.markAsNonIndependent();N.push(S)}G=new shaka.media.SegmentReference(G,M,function(){if(P)return[];var R=k.fillUriTemplate(v,x,K,null,w,I);return l.resolveUris(z(),[R],B())},0,null,d,A,n,r(),N,"",null,null,shaka.media.SegmentReference.Status.AVAILABLE,f,0<N.length);G.codecs=a.representation.codecs;G.mimeType=a.representation.mimeType;G.bandwidth=a.bandwidth;G.trueEndTime=L;return G},E=c;for(;E<=g;++E){var F=D(E);C.push(F)}var H=new shaka.media.SegmentIndex(C);
|
|
2143
|
+
C=m.getSegmentAvailabilityEnd()<r();E=m.isLive();if(C||E){var J=Math.max(c,g+1);c=t;a.representation.availabilityTimeOffset&&(c=.1);H.updateEvery(c,function(){var K=m.getSegmentAvailabilityStart();H.evict(K);var L=$jscomp.makeIterator(y());L.next();L=L.next().value;for(var G=[];J<=L;){var M=D(J);G.push(M);J++}return K>r()&&!G.length?null:G})}return Promise.resolve(H)};
|
|
2144
|
+
shaka.dash.SegmentTemplate.createInitSegment_=function(a,b){var c=shaka.dash.MpdUtils,d=shaka.util.ManifestParserUtils,e=shaka.dash.SegmentTemplate,f=a.representation.initialization;f||(f=c.inheritAttribute(a,e.fromInheritance_,"initialization"));if(!f)return null;f=shaka.util.StringUtils.htmlUnescape(f);var g=a.representation.originalId,h=a.bandwidth||null,k=a.representation.getBaseUris,l=a.urlParams;e=shaka.dash.SegmentBase.createQualityInfo(a);b=new shaka.media.InitSegmentReference(function(){goog.asserts.assert(f,
|
|
2135
2145
|
"Should have returned earlier");var m=c.fillUriTemplate(f,g,null,null,h,null);return d.resolveUris(k(),[m],l())},0,null,e,null,null,b);b.codecs=a.representation.codecs;b.mimeType=a.representation.mimeType;return b};
|
|
2136
2146
|
shaka.dash.TimelineSegmentIndex=function(a,b,c,d,e,f,g,h,k,l){shaka.media.SegmentIndex.call(this,[]);this.templateInfo_=a;this.representationId_=b;this.bandwidth_=c;this.getBaseUris_=d;this.urlParams_=e;this.periodStart_=f;this.periodEnd_=g;this.initSegmentReference_=h;this.aesKey_=k;this.segmentSequenceCadence_=l;this.fitTimeline()};$jscomp.inherits(shaka.dash.TimelineSegmentIndex,shaka.media.SegmentIndex);
|
|
2137
2147
|
shaka.dash.TimelineSegmentIndex.prototype.getNumReferences=function(){return this.templateInfo_?this.templateInfo_.timeline.length:0};shaka.dash.TimelineSegmentIndex.prototype.release=function(){shaka.media.SegmentIndex.prototype.release.call(this);this.templateInfo_=null};
|
|
@@ -2163,19 +2173,19 @@ shaka.util.PeriodCombiner.prototype.deleteStream=function(a,b){if(a){var c=shaka
|
|
|
2163
2173
|
d.trickModeVideo.matchedStreams.filter(function(e){return e!==a}));else if(a.type==c.TEXT)for(c=$jscomp.makeIterator(this.textStreams_),d=c.next();!d.done;d=c.next())d=d.value,d.matchedStreams=d.matchedStreams.filter(function(e){return e!==a});else if(a.type==c.IMAGE)for(c=$jscomp.makeIterator(this.imageStreams_),d=c.next();!d.done;d=c.next())d=d.value,d.matchedStreams=d.matchedStreams.filter(function(e){return e!==a});a.segmentIndex&&a.closeSegmentIndex();this.usedPeriodIds_.delete(b)}};
|
|
2164
2174
|
shaka.util.PeriodCombiner.prototype.getStreamsPerPeriod_=function(a,b){var c=shaka.util.ManifestParserUtils.ContentType,d=shaka.util.PeriodCombiner,e=[],f=[],g=[],h=[];a=$jscomp.makeIterator(a);for(var k=a.next();!k.done;k=a.next()){var l=k.value;k=new Map(l.audioStreams.map(function(q){return[d.generateAudioKey_(q),q]}));var m=new Map(l.videoStreams.map(function(q){return[d.generateVideoKey_(q),q]})),n=new Map(l.textStreams.map(function(q){return[d.generateTextKey_(q),q]}));l=new Map(l.imageStreams.map(function(q){return[d.generateImageKey_(q),
|
|
2165
2175
|
q]}));if(b){var p=d.dummyStream_(c.TEXT);n.set(d.generateTextKey_(p),p);p=d.dummyStream_(c.IMAGE);l.set(d.generateImageKey_(p),p)}e.push(k);f.push(m);g.push(n);h.push(l)}return{audioStreamsPerPeriod:e,videoStreamsPerPeriod:f,textStreamsPerPeriod:g,imageStreamsPerPeriod:h}};
|
|
2166
|
-
shaka.util.PeriodCombiner.prototype.combinePeriods=function(a,b,c){c=void 0===c?!1:c;var d=this,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,
|
|
2167
|
-
Array.from(h[0].values()),d.textStreams_=Array.from(k[0].values()),d.imageStreams_=Array.from(l[0].values()),
|
|
2168
|
-
shaka.util.PeriodCombiner.concatenateStreams_,m),d.combine_(d.videoStreams_,u,n,shaka.util.PeriodCombiner.cloneStream_,shaka.util.PeriodCombiner.concatenateStreams_,m),d.combine_(d.textStreams_,v,n,shaka.util.PeriodCombiner.cloneStream_,shaka.util.PeriodCombiner.concatenateStreams_,m),d.combine_(d.imageStreams_,w,n,shaka.util.PeriodCombiner.cloneStream_,shaka.util.PeriodCombiner.concatenateStreams_,m)]),2)}x=0;
|
|
2169
|
-
F=E.next();!F.done;F=E.next())for(
|
|
2170
|
-
decodingInfos:[]}));else for(
|
|
2171
|
-
shaka.util.PeriodCombiner.combineDbStreams=function(a){var b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,
|
|
2172
|
-
b.VIDEO}).map(function(
|
|
2173
|
-
n.next())q=p.value,r=c.dummyStreamDB_(b.IMAGE),q.set(c.generateImageKey_(r),r);t=new shaka.util.PeriodCombiner;return
|
|
2174
|
-
0),4);case 4:return w=
|
|
2175
|
-
return
|
|
2176
|
-
shaka.util.PeriodCombiner.prototype.combine_=function(a,b,c,d,e,f){var g=this,h,k,l,m,n,p,q,r,t,u,v,w,x,
|
|
2177
|
-
shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.PERIOD_FLATTENING_FAILED);m=l.next();F.jumpTo(2);break;case 4:q=$jscomp.makeIterator(h);for(r=q.next();!r.done;r=q.next())for(t=r.value,u=$jscomp.makeIterator(t),v=u.next();!v.done;v=u.next())w=v.value,(x=g.createNewOutputStream_(w,b,d,e,h))&&a.push(x);
|
|
2178
|
-
!shaka.util.PeriodCombiner.isDummy_(D.stream$jscomp$93)&&(E=a.some(function(
|
|
2176
|
+
shaka.util.PeriodCombiner.prototype.combinePeriods=function(a,b,c){c=void 0===c?!1:c;var d=this,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,z,B,A,y,C,D,E,F,H,J,K,L,G,M;return $jscomp.asyncExecutePromiseGeneratorProgram(function(I){if(1==I.nextAddress){e=shaka.util.ManifestParserUtils.ContentType;if(!b&&1==a.length)return f=d.getStreamsPerPeriod_(a,!1),g=f.audioStreamsPerPeriod,h=f.videoStreamsPerPeriod,k=f.textStreamsPerPeriod,l=f.imageStreamsPerPeriod,d.audioStreams_=Array.from(g[0].values()),d.videoStreams_=
|
|
2177
|
+
Array.from(h[0].values()),d.textStreams_=Array.from(k[0].values()),d.imageStreams_=Array.from(l[0].values()),I.jumpTo(2);m=c?d.usedPeriodIds_.size:0;n=-1;for(p=0;p<a.length;p++)q=a[p],d.usedPeriodIds_.has(q.id)||(d.usedPeriodIds_.add(q.id),-1==n&&(n=p));if(-1==n)return I.return();r=d.getStreamsPerPeriod_(a,!0);t=r.audioStreamsPerPeriod;u=r.videoStreamsPerPeriod;v=r.textStreamsPerPeriod;w=r.imageStreamsPerPeriod;return I.yield(Promise.all([d.combine_(d.audioStreams_,t,n,shaka.util.PeriodCombiner.cloneStream_,
|
|
2178
|
+
shaka.util.PeriodCombiner.concatenateStreams_,m),d.combine_(d.videoStreams_,u,n,shaka.util.PeriodCombiner.cloneStream_,shaka.util.PeriodCombiner.concatenateStreams_,m),d.combine_(d.textStreams_,v,n,shaka.util.PeriodCombiner.cloneStream_,shaka.util.PeriodCombiner.concatenateStreams_,m),d.combine_(d.imageStreams_,w,n,shaka.util.PeriodCombiner.cloneStream_,shaka.util.PeriodCombiner.concatenateStreams_,m)]),2)}x=0;z=[];if(d.videoStreams_.length&&d.audioStreams_.length)for(E=$jscomp.makeIterator(d.audioStreams_),
|
|
2179
|
+
F=E.next();!F.done;F=E.next())for(H=F.value,J=$jscomp.makeIterator(d.videoStreams_),K=J.next();!K.done;K=J.next())L=K.value,G=shaka.drm.DrmUtils.getCommonDrmInfos(H.drmInfos,L.drmInfos),H.drmInfos.length&&L.drmInfos.length&&!G.length?shaka.log.warning("Incompatible DRM in audio & video, skipping variant creation.",H,L):(M=x++,z.push({id:M,language:H.language,disabledUntilTime:0,primary:H.primary,audio:H,video:L,bandwidth:(H.bandwidth||0)+(L.bandwidth||0),drmInfos:G,allowedByApplication:!0,allowedByKeySystem:!0,
|
|
2180
|
+
decodingInfos:[]}));else for(B=d.videoStreams_.length?d.videoStreams_:d.audioStreams_,A=$jscomp.makeIterator(B),y=A.next();!y.done;y=A.next())C=y.value,D=x++,z.push({id:D,language:C.language,disabledUntilTime:0,primary:C.primary,audio:C.type==e.AUDIO?C:null,video:C.type==e.VIDEO?C:null,bandwidth:C.bandwidth||0,drmInfos:C.drmInfos,allowedByApplication:!0,allowedByKeySystem:!0,decodingInfos:[]});d.variants_=z;I.jumpToEnd()})};
|
|
2181
|
+
shaka.util.PeriodCombiner.combineDbStreams=function(a){var b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,z,B,A,y,C,D,E,F,H,J,K,L;return $jscomp.asyncExecutePromiseGeneratorProgram(function(G){switch(G.nextAddress){case 1:b=shaka.util.ManifestParserUtils.ContentType;c=shaka.util.PeriodCombiner;if(1==a.length)return G.return(a[0]);d=a.map(function(M){return new Map(M.filter(function(I){return I.type===b.AUDIO}).map(function(I){return[c.generateAudioKey_(I),I]}))});e=a.map(function(M){return new Map(M.filter(function(I){return I.type===
|
|
2182
|
+
b.VIDEO}).map(function(I){return[c.generateVideoKey_(I),I]}))});f=a.map(function(M){return new Map(M.filter(function(I){return I.type===b.TEXT}).map(function(I){return[c.generateTextKey_(I),I]}))});g=a.map(function(M){return new Map(M.filter(function(I){return I.type===b.IMAGE}).map(function(I){return[c.generateImageKey_(I),I]}))});h=$jscomp.makeIterator(f);for(k=h.next();!k.done;k=h.next())l=k.value,m=c.dummyStreamDB_(b.TEXT),l.set(c.generateTextKey_(m),m);n=$jscomp.makeIterator(g);for(p=n.next();!p.done;p=
|
|
2183
|
+
n.next())q=p.value,r=c.dummyStreamDB_(b.IMAGE),q.set(c.generateImageKey_(r),r);t=new shaka.util.PeriodCombiner;return G.yield(t.combine_([],d,0,shaka.util.PeriodCombiner.cloneStreamDB_,shaka.util.PeriodCombiner.concatenateStreamDBs_,0),2);case 2:return u=G.yieldResult,G.yield(t.combine_([],e,0,shaka.util.PeriodCombiner.cloneStreamDB_,shaka.util.PeriodCombiner.concatenateStreamDBs_,0),3);case 3:return v=G.yieldResult,G.yield(t.combine_([],f,0,shaka.util.PeriodCombiner.cloneStreamDB_,shaka.util.PeriodCombiner.concatenateStreamDBs_,
|
|
2184
|
+
0),4);case 4:return w=G.yieldResult,G.yield(t.combine_([],g,0,shaka.util.PeriodCombiner.cloneStreamDB_,shaka.util.PeriodCombiner.concatenateStreamDBs_,0),5);case 5:x=G.yieldResult;z=0;if(v.length&&u.length)for(D=$jscomp.makeIterator(u),E=D.next();!E.done;E=D.next())for(F=E.value,H=$jscomp.makeIterator(v),J=H.next();!J.done;J=H.next())K=J.value,L=z++,K.variantIds.push(L),F.variantIds.push(L);else for(B=v.concat(u),A=$jscomp.makeIterator(B),y=A.next();!y.done;y=A.next())C=y.value,C.variantIds=[z++];
|
|
2185
|
+
return G.return(v.concat(u).concat(w).concat(x))}})};
|
|
2186
|
+
shaka.util.PeriodCombiner.prototype.combine_=function(a,b,c,d,e,f){var g=this,h,k,l,m,n,p,q,r,t,u,v,w,x,z,B,A,y,C,D,E;return $jscomp.asyncExecutePromiseGeneratorProgram(function(F){switch(F.nextAddress){case 1:h=[];for(k=0;k<b.length;k++)k>=c?h.push(new Set(b[k].values())):h.push(new Set);l=$jscomp.makeIterator(a);m=l.next();case 2:if(m.done){F.jumpTo(4);break}n=m.value;return F.yield(g.extendExistingOutputStream_(n,b,c,e,h,f),5);case 5:p=F.yieldResult;if(!p)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
|
|
2187
|
+
shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.PERIOD_FLATTENING_FAILED);m=l.next();F.jumpTo(2);break;case 4:q=$jscomp.makeIterator(h);for(r=q.next();!r.done;r=q.next())for(t=r.value,u=$jscomp.makeIterator(t),v=u.next();!v.done;v=u.next())w=v.value,(x=g.createNewOutputStream_(w,b,d,e,h))&&a.push(x);z=$jscomp.makeIterator(h);for(B=z.next();!B.done;B=z.next())for(A=B.value,y=$jscomp.makeIterator(A),C=y.next(),D={};!C.done;D={stream$jscomp$93:void 0},C=y.next())if(D.stream$jscomp$93=C.value,
|
|
2188
|
+
!shaka.util.PeriodCombiner.isDummy_(D.stream$jscomp$93)&&(E=a.some(function(H){return function(J){return g.areAVStreamsCompatible_(H.stream$jscomp$93,J)}}(D))))throw shaka.log.error("Unused stream in period-flattening!",D.stream$jscomp$93,a),new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.PERIOD_FLATTENING_FAILED);return F.return(a)}})};
|
|
2179
2189
|
shaka.util.PeriodCombiner.prototype.extendExistingOutputStream_=function(a,b,c,d,e,f){var g=this;return $jscomp.asyncExecutePromiseGeneratorProgram(function(h){if(1==h.nextAddress)return g.findMatchesInAllPeriods_(b,a,0<f),goog.asserts.assert(a.createSegmentIndex,"outputStream should be a Stream type!"),a.matchedStreams?a.segmentIndex?h.yield(shaka.util.PeriodCombiner.extendOutputSegmentIndex_(a,c+f),2):h.jumpTo(2):(shaka.log.error("No matches extending output stream!",a,b),h.return(!1));shaka.util.PeriodCombiner.extendOutputStream_(a,
|
|
2180
2190
|
c,d,e,f);return h.return(!0)})};
|
|
2181
2191
|
shaka.util.PeriodCombiner.extendOutputSegmentIndex_=function(a,b){var c,d,e,f,g,h;return $jscomp.asyncExecutePromiseGeneratorProgram(function(k){if(1==k.nextAddress){c=[];d=a.matchedStreams;goog.asserts.assert(d,"matched streams should be valid");for(e=b;e<d.length;e++)f=d[e],c.push(f.createSegmentIndex()),f.trickModeVideo&&!f.trickModeVideo.segmentIndex&&c.push(f.trickModeVideo.createSegmentIndex());return k.yield(Promise.all(c),2)}if(a.segmentIndex instanceof shaka.media.MetaSegmentIndex)for(g=b;g<
|
|
@@ -2217,14 +2227,14 @@ shaka.util.PeriodCombiner.BetterOrWorse={BETTER:1,EQUAL:0,WORSE:-1};shaka.util.P
|
|
|
2217
2227
|
shaka.util.XmlUtils.parseXmlString=function(a,b){var c=new DOMParser,d=shaka.util.XmlUtils.trustedHTMLFromString_.value()(a);a=null;try{a=c.parseFromString(d,"text/xml")}catch(e){return shaka.log.error("XML parsing exception:",e),null}goog.asserts.assert(a,"Parsed XML document cannot be null!");c=a.documentElement;if(!c)return shaka.log.error("XML document was empty!"),null;d=c.getElementsByTagName("parsererror");if(d.length)return shaka.log.error("XML parser error found:",d[0]),null;if(c.tagName!=
|
|
2218
2228
|
b)return shaka.log.error('XML tag name does not match expected "'+b+'":',c.tagName),null;if(!("createNodeIterator"in document))return c;for(b=document.createNodeIterator(a,NodeFilter.SHOW_ALL);a=b.nextNode();)if(a instanceof HTMLElement||a instanceof SVGElement)return shaka.log.error("XML document embeds unsafe content!"),null;return c};
|
|
2219
2229
|
shaka.util.XmlUtils.parseXml=function(a,b){try{var c=shaka.util.StringUtils.fromBytesAutoDetect(a);return shaka.util.XmlUtils.parseXmlString(c,b)}catch(d){return shaka.log.error("parseXmlString threw!",d),null}};shaka.util.XmlUtils.toArrayBuffer=function(a){return shaka.util.StringUtils.toUTF8(a.outerHTML)};
|
|
2220
|
-
shaka.util.XmlUtils.trustedHTMLFromString_=new shaka.util.Lazy(function(){if("undefined"!==typeof trustedTypes){var a=trustedTypes.createPolicy("shaka-player#xml",{createHTML:function(b){return b}});return function(b){return a.createHTML(b)}}return function(b){return b}});shaka.dash.DashParser=function(){var a=this;this.playerInterface_=this.config_=null;this.manifestUris_=[];this.manifest_=null;this.globalId_=1;this.patchLocationNodes_=[];this.manifestPatchContext_={mpdId:"",type:"",profiles:[],mediaPresentationDuration:null,availabilityTimeOffset:0,getBaseUris:null,publishTime:0};this.contextCache_=new Map;this.streamMap_=
|
|
2230
|
+
shaka.util.XmlUtils.trustedHTMLFromString_=new shaka.util.Lazy(function(){if("undefined"!==typeof trustedTypes){var a=trustedTypes.createPolicy("shaka-player#xml",{createHTML:function(b){return b}});return function(b){return a.createHTML(b)}}return function(b){return b}});shaka.dash.DashParser=function(){var a=this;this.playerInterface_=this.config_=null;this.manifestUris_=[];this.manifest_=null;this.globalId_=1;this.patchLocationNodes_=[];this.manifestPatchContext_={mpdId:"",type:"",profiles:[],mediaPresentationDuration:null,availabilityTimeOffset:0,getBaseUris:null,publishTime:0};this.contextCache_=new Map;this.streamMap_=new Map;this.indexStreamMap_=new Map;this.periodDurations_=new Map;this.periodCombiner_=new shaka.util.PeriodCombiner;this.updatePeriod_=0;this.averageUpdateDuration_=
|
|
2221
2231
|
new shaka.abr.Ewma(5);this.updateTimer_=new shaka.util.Timer(function(){if(a.mediaElement_&&!a.config_.continueLoadingWhenPaused&&(a.eventManager_.unlisten(a.mediaElement_,"timeupdate"),a.mediaElement_.paused)){a.eventManager_.listenOnce(a.mediaElement_,"timeupdate",function(){return a.onUpdate_()});return}a.onUpdate_()});this.operationManager_=new shaka.util.OperationManager;this.largestPeriodStartTime_=null;this.lastManifestUpdatePeriodIds_=[];this.minTotalAvailabilityTimeOffset_=Infinity;this.lowLatencyMode_=
|
|
2222
2232
|
!1;this.contentSteeringManager_=null;this.gapCount_=0;this.isLowLatency_=!1;this.eventManager_=new shaka.util.EventManager;this.mediaElement_=null;this.isTransitionFromDynamicToStatic_=!1;this.lastManifestQueryParams_="";this.isPreloadFn_=function(){return!1};this.lastCalculatedBaseUris_=[]};
|
|
2223
2233
|
shaka.dash.DashParser.prototype.configure=function(a,b){goog.asserts.assert(null!=a.dash,"DashManifestConfiguration should not be null!");var c=this.playerInterface_&&a.dash.updatePeriod!=this.config_.dash.updatePeriod&&0<=a.dash.updatePeriod;this.config_=a;b&&(this.isPreloadFn_=b);c&&this.manifest_&&this.manifest_.presentationTimeline.isLive()&&this.updateNow_();this.contentSteeringManager_&&this.contentSteeringManager_.configure(this.config_);this.periodCombiner_&&(this.periodCombiner_.setAllowMultiTypeVariants(this.config_.dash.multiTypeVariantsAllowed&&
|
|
2224
2234
|
shaka.media.Capabilities.isChangeTypeSupported()),this.periodCombiner_.setUseStreamOnce(this.config_.dash.useStreamOnceInPeriodFlattening))};
|
|
2225
2235
|
shaka.dash.DashParser.prototype.start=function(a,b){var c=this,d;return $jscomp.asyncExecutePromiseGeneratorProgram(function(e){if(1==e.nextAddress)return goog.asserts.assert(c.config_,"Must call configure() before start()!"),c.lowLatencyMode_=b.isLowLatencyMode(),c.manifestUris_=[a],c.playerInterface_=b,e.yield(c.requestManifest_(),2);d=e.yieldResult;c.playerInterface_&&c.setUpdateTimer_(d);if(!c.playerInterface_)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.PLAYER,
|
|
2226
2236
|
shaka.util.Error.Code.OPERATION_ABORTED);goog.asserts.assert(c.manifest_,"Manifest should be non-null!");return e.return(c.manifest_)})};
|
|
2227
|
-
shaka.dash.DashParser.prototype.stop=function(){for(var a=$jscomp.makeIterator(
|
|
2237
|
+
shaka.dash.DashParser.prototype.stop=function(){for(var a=$jscomp.makeIterator(this.streamMap_.values()),b=a.next();!b.done;b=a.next())b=b.value,b.segmentIndex&&b.segmentIndex.release();this.periodCombiner_&&this.periodCombiner_.release();this.config_=this.playerInterface_=null;this.manifestUris_=[];this.manifest_=null;this.streamMap_.clear();this.indexStreamMap_.clear();this.contextCache_.clear();this.manifestPatchContext_={mpdId:"",type:"",profiles:[],mediaPresentationDuration:null,availabilityTimeOffset:0,
|
|
2228
2238
|
getBaseUris:null,publishTime:0};this.periodCombiner_=null;null!=this.updateTimer_&&(this.updateTimer_.stop(),this.updateTimer_=null);this.contentSteeringManager_&&this.contentSteeringManager_.destroy();this.eventManager_&&(this.eventManager_.release(),this.eventManager_=null);return this.operationManager_.destroy()};
|
|
2229
2239
|
shaka.dash.DashParser.prototype.update=function(){var a=this,b;return $jscomp.asyncExecutePromiseGeneratorProgram(function(c){if(1==c.nextAddress)return c.setCatchFinallyBlocks(2),c.yield(a.requestManifest_(),4);if(2!=c.nextAddress)return c.leaveTryBlock(0);b=c.enterCatchBlock();if(!a.playerInterface_||!b)return c.return();goog.asserts.assert(b instanceof shaka.util.Error,"Bad error type");a.playerInterface_.onError(b);c.jumpToEnd()})};
|
|
2230
2240
|
shaka.dash.DashParser.prototype.onExpirationUpdated=function(a,b){};shaka.dash.DashParser.prototype.onInitialVariantChosen=function(a){if(this.manifest_&&this.manifest_.presentationTimeline.isLive()){var b=a.video||a.audio;if(b&&b.segmentIndex){a=this.manifest_.presentationTimeline.getSegmentAvailabilityEnd();var c=b.segmentIndex.find(a);null!=c&&(b=b.segmentIndex.get(c))&&(this.updatePeriod_=b.endTime-a,this.setUpdateTimer_(0))}}};
|
|
@@ -2235,24 +2245,24 @@ p);return q.return(p)})};
|
|
|
2235
2245
|
shaka.dash.DashParser.prototype.parseManifest_=function(a,b,c){var d=this,e,f,g,h,k,l,m,n,p,q,r;return $jscomp.asyncExecutePromiseGeneratorProgram(function(t){if(1==t.nextAddress){e=a;f=d.config_.dash.manifestPreprocessor;g=shaka.util.PlayerConfiguration.defaultManifestPreprocessor;if(f!=g){shaka.Deprecate.deprecateFeature(5,"manifest.dash.manifestPreprocessor configuration","Please Use manifest.dash.manifestPreprocessorTXml instead.");h=shaka.util.XmlUtils.parseXml(e,c);if(!h)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
|
|
2236
2246
|
shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.DASH_INVALID_XML,b);f(h);e=shaka.util.XmlUtils.toArrayBuffer(h)}k=shaka.util.TXml.parseXml(e,c);if(!k)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.DASH_INVALID_XML,b);l=d.config_.dash.manifestPreprocessorTXml;m=shaka.util.PlayerConfiguration.defaultManifestPreprocessorTXml;l!=m&&l(k);if("Patch"===c)return t.return(d.processPatchManifest_(k));if(n=d.config_.dash.disableXlinkProcessing)return t.return(d.processManifest_(k,
|
|
2237
2247
|
b));p=d.config_.dash.xlinkFailGracefully;q=shaka.dash.MpdUtils.processXlinks(k,d.config_.retryParameters,p,b,d.playerInterface_.networkingEngine);d.operationManager_.manage(q);return t.yield(q.promise,2)}r=t.yieldResult;return t.return(d.processManifest_(r,b))})};
|
|
2238
|
-
shaka.dash.DashParser.prototype.processManifest_=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,
|
|
2248
|
+
shaka.dash.DashParser.prototype.processManifest_=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,z,B,A,y,C,D,E,F,H,J,K,L,G,M,I,N,P,O,W,Q,S,V,R,T,X,Y,U,ba,aa,Z,ca,ea,fa,ia,ha,ja,ka,la,ma;return $jscomp.asyncExecutePromiseGeneratorProgram(function(da){switch(da.nextAddress){case 1:d=shaka.util.TXml;goog.asserts.assert(c.config_,"Must call configure() before processManifest_()!");c.contentSteeringManager_&&c.contentSteeringManager_.clearPreviousLocations();e=[b];f=[];g=new Map;h=d.findChildren(a,
|
|
2239
2249
|
"Location");k=$jscomp.makeIterator(h);for(l=k.next();!l.done;l=k.next())if(m=l.value,n=m.attributes.serviceLocation,p=d.getContents(m))q=shaka.util.ManifestParserUtils.resolveUris(e,[p])[0],n&&(c.contentSteeringManager_?c.contentSteeringManager_.addLocation("Location",n,q):g.set(n,q)),f.push(q);c.contentSteeringManager_?(r=c.contentSteeringManager_.getLocations("Location",!0),0<r.length&&(e=c.manifestUris_=r)):f.length&&(e=c.manifestUris_=f);c.manifestPatchContext_.mpdId=a.attributes.id||"";c.manifestPatchContext_.publishTime=
|
|
2240
2250
|
d.parseAttr(a,"publishTime",d.parseDate)||0;c.patchLocationNodes_=d.findChildren(a,"PatchLocation");t=Promise.resolve();if((u=d.findChild(a,"ContentSteering"))&&c.playerInterface_){v=u.attributes.defaultServiceLocation;if(c.contentSteeringManager_)c.contentSteeringManager_.setBaseUris(e),c.contentSteeringManager_.setDefaultPathwayId(v);else if(c.contentSteeringManager_=new shaka.util.ContentSteeringManager(c.playerInterface_),c.contentSteeringManager_.configure(c.config_),c.contentSteeringManager_.setManifestType(shaka.media.ManifestParser.DASH),
|
|
2241
|
-
c.contentSteeringManager_.setBaseUris(e),c.contentSteeringManager_.setDefaultPathwayId(v),w=d.getContents(u))(x=d.parseAttr(u,"queryBeforeStart",d.parseBoolean,!1))?t=c.contentSteeringManager_.requestInfo(w):c.contentSteeringManager_.requestInfo(w);
|
|
2242
|
-
E.next())
|
|
2243
|
-
(
|
|
2244
|
-
d.parseDuration));
|
|
2245
|
-
|
|
2246
|
-
|
|
2247
|
-
|
|
2248
|
-
|
|
2249
|
-
|
|
2251
|
+
c.contentSteeringManager_.setBaseUris(e),c.contentSteeringManager_.setDefaultPathwayId(v),w=d.getContents(u))(x=d.parseAttr(u,"queryBeforeStart",d.parseBoolean,!1))?t=c.contentSteeringManager_.requestInfo(w):c.contentSteeringManager_.requestInfo(w);z=$jscomp.makeIterator(g.keys());for(B=z.next();!B.done;B=z.next())A=B.value,y=g.get(A),c.contentSteeringManager_.addLocation("Location",A,y)}C=d.findChildren(a,"BaseURL");D=!1;if(c.contentSteeringManager_)for(E=$jscomp.makeIterator(C),F=E.next();!F.done;F=
|
|
2252
|
+
E.next())H=F.value,J=H.attributes.serviceLocation,K=d.getContents(H),J&&K&&(c.contentSteeringManager_.addLocation("BaseURL",J,K),D=!0);c.lastCalculatedBaseUris_=null;D&&c.contentSteeringManager_||(L=C.map(d.getContents),c.lastCalculatedBaseUris_=shaka.util.ManifestParserUtils.resolveUris(e,L));G=function(){return c.contentSteeringManager_&&D?c.contentSteeringManager_.getLocations("BaseURL"):c.lastCalculatedBaseUris_?c.lastCalculatedBaseUris_:[]};c.manifestPatchContext_.getBaseUris=G;M=0;C&&C.length&&
|
|
2253
|
+
(M=d.parseAttr(C[0],"availabilityTimeOffset",d.parseFloat)||0);c.manifestPatchContext_.availabilityTimeOffset=M;c.updatePeriod_=d.parseAttr(a,"minimumUpdatePeriod",d.parseDuration,-1);I=d.parseAttr(a,"availabilityStartTime",d.parseDate);N=d.parseAttr(a,"timeShiftBufferDepth",d.parseDuration);P=c.config_.dash.ignoreSuggestedPresentationDelay;O=null;P||(O=d.parseAttr(a,"suggestedPresentationDelay",d.parseDuration));W=c.config_.dash.ignoreMaxSegmentDuration;Q=null;W||(Q=d.parseAttr(a,"maxSegmentDuration",
|
|
2254
|
+
d.parseDuration));S=a.attributes.type||"static";c.manifest_&&c.manifest_.presentationTimeline&&(c.isTransitionFromDynamicToStatic_=c.manifest_.presentationTimeline.isLive()&&"static"==S);c.manifestPatchContext_.type=S;if(c.manifest_)for(V=c.manifest_.presentationTimeline,R=V.getSegmentAvailabilityStart(),T=$jscomp.makeIterator(c.streamMap_.values()),X=T.next();!X.done;X=T.next())Y=X.value,Y.segmentIndex&&Y.segmentIndex.evict(R);else U=c.config_.dash.ignoreMinBufferTime,ba=0,U||(ba=d.parseAttr(a,"minBufferTime",
|
|
2255
|
+
d.parseDuration)||0),aa=0,aa=null!=O?Math.min(O,N||Infinity):0<c.config_.defaultPresentationDelay?c.config_.defaultPresentationDelay:Math.min(1.5*ba,N||Infinity),V=new shaka.media.PresentationTimeline(I,aa,c.config_.dash.autoCorrectDrift);V.setStatic("static"==S);(Z=V.isLive())&&!isNaN(c.config_.availabilityWindowOverride)&&(N=c.config_.availabilityWindowOverride);null==N&&(N=Infinity);V.setSegmentAvailabilityDuration(N);ca=a.attributes.profiles||"";c.manifestPatchContext_.profiles=ca.split(",");
|
|
2256
|
+
ea={dynamic:"static"!=S,presentationTimeline:V,period:null,periodInfo:null,adaptationSet:null,representation:null,bandwidth:0,indexRangeWarningGiven:!1,availabilityTimeOffset:M,mediaPresentationDuration:null,profiles:ca.split(","),roles:null,urlParams:function(){return""}};c.gapCount_=0;fa=c.parsePeriods_(ea,G,a,!1);ia=fa.duration;ha=fa.periods;("static"!=S||c.isTransitionFromDynamicToStatic_)&&fa.durationDerivedFromPeriods||V.setDuration(ia||Infinity);c.isLowLatency_&&c.lowLatencyMode_&&V.setAvailabilityTimeOffset(c.minTotalAvailabilityTimeOffset_);
|
|
2257
|
+
V.notifyMaxSegmentDuration(Q||1);goog.DEBUG&&!c.isTransitionFromDynamicToStatic_&&V.assertIsValid();return da.yield(t,2);case 2:c.isLowLatency_&&c.lowLatencyMode_&&(ja=null!=O?O:c.config_.defaultPresentationDelay,V.setDelay(ja));if(!c.manifest_)return da.yield(c.periodCombiner_.combinePeriods(ha,ea.dynamic),6);c.manifest_.periodCount=ha.length;c.manifest_.gapCount=c.gapCount_;return da.yield(c.postPeriodProcessing_(ha,!1),4);case 6:c.manifest_={presentationTimeline:V,variants:c.periodCombiner_.getVariants(),
|
|
2258
|
+
textStreams:c.periodCombiner_.getTextStreams(),imageStreams:c.periodCombiner_.getImageStreams(),offlineSessionIds:[],sequenceMode:c.config_.dash.sequenceMode,ignoreManifestTimestampsInSegmentsMode:!1,type:shaka.media.ManifestParser.DASH,serviceDescription:c.parseServiceDescription_(a),nextUrl:c.parseMpdChaining_(a),periodCount:ha.length,gapCount:c.gapCount_,isLowLatency:c.isLowLatency_,startTime:null};if(!V.usingPresentationStartTime()){da.jumpTo(7);break}ka=shaka.util.TXml;la=ka.findChildren(a,"UTCTiming");
|
|
2259
|
+
return da.yield(c.parseUtcTiming_(G,la),8);case 8:ma=da.yieldResult;if(!c.playerInterface_)return da.return();V.setClockOffset(ma);case 7:V.lockStartTime();case 4:c.playerInterface_.makeTextStreamsForClosedCaptions(c.manifest_),c.cleanStreamMap_(),da.jumpToEnd()}})};
|
|
2250
2260
|
shaka.dash.DashParser.prototype.postPeriodProcessing_=function(a,b){var c=this,d;return $jscomp.asyncExecutePromiseGeneratorProgram(function(e){if(1==e.nextAddress)return e.yield(c.periodCombiner_.combinePeriods(a,!0,b),2);c.manifest_.variants=c.periodCombiner_.getVariants();d=c.periodCombiner_.getTextStreams();0<d.length&&(c.manifest_.textStreams=d);c.manifest_.imageStreams=c.periodCombiner_.getImageStreams();c.playerInterface_.filter(c.manifest_);e.jumpToEnd()})};
|
|
2251
|
-
shaka.dash.DashParser.prototype.processPatchManifest_=function(a){var b=this,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,
|
|
2261
|
+
shaka.dash.DashParser.prototype.processPatchManifest_=function(a){var b=this,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,z,B,A,y,C,D,E,F,H,J,K;return $jscomp.asyncExecutePromiseGeneratorProgram(function(L){if(1==L.nextAddress){c=shaka.util.TXml;d=a.attributes.mpdId;e=c.parseAttr(a,"originalPublishTime",c.parseDate);if(!d||d!==b.manifestPatchContext_.mpdId||e!==b.manifestPatchContext_.publishTime)throw b.patchLocationNodes_=[],new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.MANIFEST,
|
|
2252
2262
|
shaka.util.Error.Code.DASH_INVALID_PATCH);f=[];g=[];h=new Set;k=$jscomp.makeIterator(c.getChildNodes(a));for(l=k.next();!l.done;l=k.next()){m=l.value;n=!0;p=c.parseXpath(m.attributes.sel||"");q=p[p.length-1];r=c.getContents(m)||"";if("MPD"===q.name)"mediaPresentationDuration"===q.attribute?(t=c.getContents(m)||"",b.parsePatchMediaPresentationDurationChange_(t)):"type"===q.attribute?b.parsePatchMpdTypeChange_(r):"publishTime"===q.attribute?b.manifestPatchContext_.publishTime=c.parseDate(r)||0:null===
|
|
2253
|
-
q.attribute&&"add"===m.tagName?g.push(m):n=!1;else if("PatchLocation"===q.name)b.updatePatchLocationNodes_(m);else if("Period"===q.name)"add"===m.tagName?g.push(m):"remove"===m.tagName&&q.id&&b.removePatchPeriod_(q.id);else if("SegmentTemplate"===q.name)for(u=b.modifySegmentTemplate_(m),v=$jscomp.makeIterator(u),w=v.next();!w.done;w=v.next())x=w.value,h.add(x);else if("SegmentTimeline"===q.name||"S"===q.name)for(
|
|
2254
|
-
h.add(
|
|
2255
|
-
(K=b.manifestPatchContext_.mediaPresentationDuration,b.manifest_.presentationTimeline.setDuration(K||Infinity));
|
|
2263
|
+
q.attribute&&"add"===m.tagName?g.push(m):n=!1;else if("PatchLocation"===q.name)b.updatePatchLocationNodes_(m);else if("Period"===q.name)"add"===m.tagName?g.push(m):"remove"===m.tagName&&q.id&&b.removePatchPeriod_(q.id);else if("SegmentTemplate"===q.name)for(u=b.modifySegmentTemplate_(m),v=$jscomp.makeIterator(u),w=v.next();!w.done;w=v.next())x=w.value,h.add(x);else if("SegmentTimeline"===q.name||"S"===q.name)for(z=b.modifyTimepoints_(m),B=$jscomp.makeIterator(z),A=B.next();!A.done;A=B.next())y=A.value,
|
|
2264
|
+
h.add(y);else n=!1;n||shaka.log.warning("Unhandled "+m.tagName+" operation",m.attributes.sel)}C=$jscomp.makeIterator(h);for(D=C.next();!D.done;D=C.next())E=D.value,b.parsePatchSegment_(E);F=$jscomp.makeIterator(g);for(H=F.next();!H.done;H=F.next())J=H.value,f.push.apply(f,$jscomp.arrayFromIterable(b.parsePatchPeriod_(J)));if(!f.length)return L.jumpTo(2);b.manifest_.periodCount+=f.length;b.manifest_.gapCount=b.gapCount_;return L.yield(b.postPeriodProcessing_(f,!0),2)}"static"==b.manifestPatchContext_.type&&
|
|
2265
|
+
(K=b.manifestPatchContext_.mediaPresentationDuration,b.manifest_.presentationTimeline.setDuration(K||Infinity));L.jumpToEnd()})};shaka.dash.DashParser.prototype.parsePatchMpdTypeChange_=function(a){this.manifest_.presentationTimeline.setStatic("static"==a);this.manifestPatchContext_.type=a;for(var b=$jscomp.makeIterator(this.contextCache_.values()),c=b.next();!c.done;c=b.next())c.value.dynamic="dynamic"==a;"static"==a&&(this.updatePeriod_=-1)};
|
|
2256
2266
|
shaka.dash.DashParser.prototype.parsePatchMediaPresentationDurationChange_=function(a){a=shaka.util.TXml.parseDuration(a);if(null!=a){this.manifestPatchContext_.mediaPresentationDuration=a;for(var b=$jscomp.makeIterator(this.contextCache_.values()),c=b.next();!c.done;c=b.next())c.value.mediaPresentationDuration=a}};
|
|
2257
2267
|
shaka.dash.DashParser.prototype.parsePatchPeriod_=function(a){goog.asserts.assert(this.manifestPatchContext_.getBaseUris,"Must provide getBaseUris on manifestPatchContext_");return this.parsePeriods_({dynamic:"dynamic"==this.manifestPatchContext_.type,presentationTimeline:this.manifest_.presentationTimeline,period:null,periodInfo:null,adaptationSet:null,representation:null,bandwidth:0,indexRangeWarningGiven:!1,availabilityTimeOffset:this.manifestPatchContext_.availabilityTimeOffset,profiles:this.manifestPatchContext_.profiles,
|
|
2258
2268
|
mediaPresentationDuration:this.manifestPatchContext_.mediaPresentationDuration,roles:null,urlParams:function(){return""}},this.manifestPatchContext_.getBaseUris,a,!0).periods};
|
|
@@ -2261,56 +2271,56 @@ shaka.dash.DashParser.prototype.getContextIdsFromPath_=function(a){var b="",c=""
|
|
|
2261
2271
|
e.representation.id);else if(-1<d)for(c=$jscomp.makeIterator(this.contextCache_.values()),e=c.next();!e.done;e=c.next())e=e.value,e.period.id===b&&e.adaptationSet.position===d&&e.representation.id&&a.push(b+","+e.representation.id);return a};
|
|
2262
2272
|
shaka.dash.DashParser.prototype.modifySegmentTemplate_=function(a){var b=shaka.util.TXml,c=b.parseXpath(a.attributes.sel||""),d=c[c.length-1];if(!d.attribute)return[];c=this.getContextIdsFromPath_(c);for(var e=b.getContents(a)||"",f=$jscomp.makeIterator(c),g=f.next();!g.done;g=f.next())g=this.contextCache_.get(g.value),goog.asserts.assert(g&&g.representation.segmentTemplate,"cannot modify segment template"),b.modifyNodeAttribute(g.representation.segmentTemplate,a.tagName,d.attribute,e);return c};
|
|
2263
2273
|
shaka.dash.DashParser.prototype.modifyTimepoints_=function(a){var b=shaka.dash.SegmentTemplate,c=shaka.util.TXml.parseXpath(a.attributes.sel||"");c=this.getContextIdsFromPath_(c);for(var d=$jscomp.makeIterator(c),e=d.next();!e.done;e=d.next())e=this.contextCache_.get(e.value),b.modifyTimepoints(e,a);return c};
|
|
2264
|
-
shaka.dash.DashParser.prototype.parsePatchSegment_=function(a){var b=this,c=this.contextCache_.get(a),d=this.streamMap_
|
|
2274
|
+
shaka.dash.DashParser.prototype.parsePatchSegment_=function(a){var b=this,c=this.contextCache_.get(a),d=this.streamMap_.get(a);goog.asserts.assert(d,"stream should exist");d.segmentIndex&&d.segmentIndex.evict(this.manifest_.presentationTimeline.getSegmentAvailabilityStart());try{var e=shaka.dash.SegmentTemplate.createStreamInfo(c,function(g,h,k,l){return b.requestSegment_(g,h,k,l)},this.streamMap_,!0,this.config_.dash.initialSegmentLimit,this.periodDurations_,c.representation.aesKey,null,!0);d.createSegmentIndex=
|
|
2265
2275
|
function(){return $jscomp.asyncExecutePromiseGeneratorProgram(function(g){if(1==g.nextAddress)return d.segmentIndex?g.jumpTo(0):g.yield(e.generateSegmentIndex(),3);d.segmentIndex=g.yieldResult;g.jumpToEnd()})}}catch(g){a=shaka.util.ManifestParserUtils.ContentType;c=c.representation.contentType;var f=c==a.IMAGE;if(c!=a.TEXT&&c!=a.APPLICATION&&!f||g.code!=shaka.util.Error.Code.DASH_NO_SEGMENT_INFO)throw g;}};
|
|
2266
2276
|
shaka.dash.DashParser.prototype.parseServiceDescription_=function(a){var b=shaka.util.TXml,c=b.findChild(a,"ServiceDescription");if(!c)return null;a=b.findChild(c,"Latency");b=b.findChild(c,"PlaybackRate");if(!a&&!b)return null;c={};a&&("target"in a.attributes&&(c.targetLatency=parseInt(a.attributes.target,10)/1E3),"max"in a.attributes&&(c.maxLatency=parseInt(a.attributes.max,10)/1E3),"min"in a.attributes&&(c.minLatency=parseInt(a.attributes.min,10)/1E3));b&&("max"in b.attributes&&(c.maxPlaybackRate=
|
|
2267
2277
|
parseFloat(b.attributes.max)),"min"in b.attributes&&(c.minPlaybackRate=parseFloat(b.attributes.min)));return c};shaka.dash.DashParser.prototype.parseMpdChaining_=function(a){a=shaka.util.TXml.findChildren(a,"SupplementalProperty");if(!a.length)return null;a=$jscomp.makeIterator(a);for(var b=a.next();!b.done;b=a.next())if(b=b.value,"urn:mpeg:dash:chaining:2016"==b.attributes.schemeIdUri)return b.attributes.value;return null};
|
|
2268
2278
|
shaka.dash.DashParser.prototype.parsePeriods_=function(a,b,c,d){var e=shaka.util.TXml,f=a.mediaPresentationDuration;f||(f=e.parseAttr(c,"mediaPresentationDuration",e.parseDuration),this.manifestPatchContext_.mediaPresentationDuration=f);var g=0;this.manifest_&&this.manifest_.presentationTimeline&&this.isTransitionFromDynamicToStatic_&&(g=this.manifest_.presentationTimeline.getSeekRangeStart());var h=[],k=g;c=e.findChildren(c,"Period");for(var l=0;l<c.length;l++){var m=c[l],n=c[l+1],p=e.parseAttr(m,
|
|
2269
2279
|
"start",e.parseDuration,k),q=m.attributes.id,r=e.parseAttr(m,"duration",e.parseDuration);p=0==l&&0==p&&this.isTransitionFromDynamicToStatic_?g:p;var t=null;if(n){var u=e.parseAttr(n,"start",e.parseDuration);null!=u&&(t=u-p+g)}else null!=f&&(t=f-p+g);u=shaka.util.ManifestParserUtils.GAP_OVERLAP_TOLERANCE_SECONDS;t&&r&&Math.abs(t-r)>u&&(shaka.log.warning("There is a gap/overlap between Periods",m),t>r&&this.gapCount_++);null==t&&(t=r);if(null!==this.largestPeriodStartTime_&&null!==q&&null!==p&&p<this.largestPeriodStartTime_&&
|
|
2270
|
-
!this.lastManifestUpdatePeriodIds_.includes(q)&&l+1!=c.length)shaka.log.debug("Skipping Period with ID "+q+" as its start time is smaller than the largest period start time that has been seen, and ID is unseen before");else{null!==p&&(null===this.largestPeriodStartTime_||p>this.largestPeriodStartTime_)&&(this.largestPeriodStartTime_=p);k=this.parsePeriod_(a,b,{start:p,duration:t,node:m,isLastPeriod:null==t||!n});h.push(k);a.period.id&&t&&
|
|
2280
|
+
!this.lastManifestUpdatePeriodIds_.includes(q)&&l+1!=c.length)shaka.log.debug("Skipping Period with ID "+q+" as its start time is smaller than the largest period start time that has been seen, and ID is unseen before");else{null!==p&&(null===this.largestPeriodStartTime_||p>this.largestPeriodStartTime_)&&(this.largestPeriodStartTime_=p);k=this.parsePeriod_(a,b,{start:p,duration:t,node:m,isLastPeriod:null==t||!n});h.push(k);a.period.id&&t&&this.periodDurations_.set(a.period.id,t);if(null==t){n&&shaka.log.warning("Skipping Period",
|
|
2271
2281
|
l+1,"and any subsequent Periods:","Period",l+1,"does not have a valid start time.",n);k=null;break}k=p+t}}if(d)for(a=$jscomp.makeIterator(h),b=a.next();!b.done;b=a.next())b=b.value.id,this.lastManifestUpdatePeriodIds_.includes(b)||this.lastManifestUpdatePeriodIds_.push(b);else this.lastManifestUpdatePeriodIds_=h.map(function(v){return v.id});return null!=f?(null!=k&&Math.abs(k-g-f)>shaka.util.ManifestParserUtils.GAP_OVERLAP_TOLERANCE_SECONDS&&shaka.log.warning("@mediaPresentationDuration does not match the total duration ",
|
|
2272
2282
|
"of all Periods."),{periods:h,duration:f+g,durationDerivedFromPeriods:!1}):{periods:h,duration:k,durationDerivedFromPeriods:!0}};
|
|
2273
|
-
shaka.dash.DashParser.prototype.cleanStreamMap_=function(){var a=this,b=
|
|
2274
|
-
c),
|
|
2283
|
+
shaka.dash.DashParser.prototype.cleanStreamMap_=function(){var a=this,b=Array.from(this.indexStreamMap_.keys()).filter(function(h){return!a.lastManifestUpdatePeriodIds_.includes(h)});b=$jscomp.makeIterator(b);for(var c=b.next();!c.done;c=b.next()){c=c.value;for(var d=!0,e=$jscomp.makeIterator(this.indexStreamMap_.get(c)),f=e.next();!f.done;f=e.next()){f=f.value;var g=this.streamMap_.get(f);g&&(g.segmentIndex&&!g.segmentIndex.isEmpty()?d=!1:(this.periodCombiner_&&this.periodCombiner_.deleteStream(g,
|
|
2284
|
+
c),this.streamMap_.delete(f)))}d&&this.indexStreamMap_.delete(c)}};
|
|
2275
2285
|
shaka.dash.DashParser.prototype.parsePeriod_=function(a,b,c){var d=this,e=shaka.util.Functional,f=shaka.util.TXml,g=shaka.util.ManifestParserUtils.ContentType;goog.asserts.assert(c.node,"periodInfo.node should exist");a.period=this.createFrame_(c.node,null,b);a.periodInfo=c;a.period.availabilityTimeOffset=a.availabilityTimeOffset;a.period.id||(shaka.log.info("No Period ID given for Period with start time "+c.start+", Assigning a default"),a.period.id="__shaka_period_"+c.start);var h=f.findChildren(c.node,
|
|
2276
2286
|
"EventStream");b=a.presentationTimeline.getSegmentAvailabilityStart();h=$jscomp.makeIterator(h);for(var k=h.next();!k.done;k=h.next())this.parseEventStream_(c.start,c.duration,k.value,b);b=f.findChildren(c.node,"SupplementalProperty");b=$jscomp.makeIterator(b);for(h=b.next();!h.done;h=b.next())if(h=h.value,"urn:mpeg:dash:urlparam:2014"==h.attributes.schemeIdUri&&(h=this.getURLParametersFunction_(h)))a.urlParams=h;e=f.findChildren(c.node,"AdaptationSet").map(function(m,n){return d.parseAdaptationSet_(a,
|
|
2277
2287
|
n,m)}).filter(e.isNotNull);if(a.dynamic){c=[];f=$jscomp.makeIterator(e);for(b=f.next();!b.done;b=f.next())for(b=$jscomp.makeIterator(b.value.representationIds),h=b.next();!h.done;h=b.next())c.push(h.value);f=new Set(c);if(c.length!=f.size)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.DASH_DUPLICATE_REPRESENTATION_ID);}c=e.filter(function(m){return!m.trickModeFor});e=e.filter(function(m){return m.trickModeFor});if(!this.config_.disableIFrames)for(e=
|
|
2278
2288
|
$jscomp.makeIterator(e),f=e.next();!f.done;f=e.next())for(f=f.value,b=f.trickModeFor.split(" "),h=$jscomp.makeIterator(c),k=h.next();!k.done;k=h.next())if(k=k.value,b.includes(k.id)){k=$jscomp.makeIterator(k.streams);for(var l=k.next();!l.done;l=k.next())shaka.util.StreamUtils.setBetterIFrameStream(l.value,f.streams)}e=this.getStreamsFromSets_(this.config_.disableAudio,c,g.AUDIO);f=this.getStreamsFromSets_(this.config_.disableVideo,c,g.VIDEO);b=this.getStreamsFromSets_(this.config_.disableText,c,
|
|
2279
2289
|
g.TEXT);g=this.getStreamsFromSets_(this.config_.disableThumbnails,c,g.IMAGE);if(0===f.length&&0===e.length)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.DASH_EMPTY_PERIOD);return{id:a.period.id,audioStreams:e,videoStreams:f,textStreams:b,imageStreams:g}};
|
|
2280
2290
|
shaka.dash.DashParser.prototype.getStreamsFromSets_=function(a,b,c){return a||!b.length?[]:b.reduce(function(d,e){if(e.contentType!=c)return d;d.push.apply(d,$jscomp.arrayFromIterable(e.streams));return d},[])};
|
|
2281
|
-
shaka.dash.DashParser.prototype.parseAdaptationSet_=function(a,b,c){var d=this,e=shaka.util.TXml,f=shaka.util.Functional,g=shaka.util.ManifestParserUtils,h=g.ContentType,k=shaka.dash.ContentProtection;a.adaptationSet=this.createFrame_(c,a.period,null);a.adaptationSet.position=b;var l=!1,m=e.findChildren(c,"Role"),n=m.map(function(
|
|
2282
|
-
f.next()){m=m.value;var q=m.attributes.schemeIdUri;if(null==q||"urn:mpeg:dash:role:2011"==q)switch(m=m.attributes.value,m){case "main":l=!0;break;case "caption":case "subtitle":p=m}}m=function(
|
|
2283
|
-
(
|
|
2284
|
-
|
|
2285
|
-
x?
|
|
2286
|
-
v=v.attributes.value,"urn:scte:dash:cc:cea-608:2015"==r&&!this.config_.disableText)if(r=1,null!=v)for(v=v.split(";"),w=$jscomp.makeIterator(v),t=w.next();!t.done;t=w.next())x=t.value,
|
|
2287
|
-
v.next())t=w.value,x=w=void 0,t.includes("=")?(t=t.split("="),w="svc"+t[0],x=t[1].split(",")[0].split(":").pop()):(w="svc"+r,r++,x=t),
|
|
2288
|
-
g=e.findChildren(c,"ContentProtection");var E=k.parseFromAdaptationSet(g,this.config_.dash.ignoreDrmInfo,this.config_.dash.keySystemsByURI),F=shaka.util.LanguageUtils.normalize(a.adaptationSet.language||"und"),
|
|
2289
|
-
q.attributes.codecs=m.split(" ").join(","),k.push(q);c.push.apply(c,$jscomp.arrayFromIterable(k))}e=c.map(function(
|
|
2290
|
-
}if(!a.adaptationSet.contentType||a.adaptationSet.contentType==h.APPLICATION)for(a.adaptationSet.contentType=shaka.dash.DashParser.guessContentType_(e[0].mimeType,e[0].codecs),h=$jscomp.makeIterator(e),b=h.next();!b.done;b=h.next())b.value.type=a.adaptationSet.contentType;h=a.adaptationSet.id||"__fake__"+this.globalId_++;b=$jscomp.makeIterator(e);for(k=b.next();!k.done;k=b.next()){k=k.value;g=$jscomp.makeIterator(E.drmInfos);
|
|
2291
|
-
new Set([].concat($jscomp.arrayFromIterable(m.keyIds),$jscomp.arrayFromIterable(k.keyIds))):m.keyIds||k.keyIds;k.groupId=h}b=c.map(function(
|
|
2291
|
+
shaka.dash.DashParser.prototype.parseAdaptationSet_=function(a,b,c){var d=this,e=shaka.util.TXml,f=shaka.util.Functional,g=shaka.util.ManifestParserUtils,h=g.ContentType,k=shaka.dash.ContentProtection;a.adaptationSet=this.createFrame_(c,a.period,null);a.adaptationSet.position=b;var l=!1,m=e.findChildren(c,"Role"),n=m.map(function(J){return J.attributes.value}).filter(f.isNotNull),p=void 0;if(b=a.adaptationSet.contentType==h.TEXT)p=g.TextStreamKind.SUBTITLE;f=$jscomp.makeIterator(m);for(m=f.next();!m.done;m=
|
|
2292
|
+
f.next()){m=m.value;var q=m.attributes.schemeIdUri;if(null==q||"urn:mpeg:dash:role:2011"==q)switch(m=m.attributes.value,m){case "main":l=!0;break;case "caption":case "subtitle":p=m}}m=function(J){switch(J){case 1:case 6:case 13:case 14:case 15:return"SDR";case 16:return"PQ";case 18:return"HLG"}};q=function(J){switch(J){case 1:case 5:case 6:case 7:return"srgb";case 9:return"rec2020";case 11:case 12:return"p3"}};var r=function(J){var K=J.attributes["dvb:fontFamily"];J=J.attributes["dvb:url"];K&&J&&
|
|
2293
|
+
(J=shaka.util.ManifestParserUtils.resolveUris(a.adaptationSet.getBaseUris(),[J],a.urlParams()),d.playerInterface_.addFont(K,J[0]))},t=e.findChildren(c,"EssentialProperty");f=null;var u=!1,v=null,w=!1;t=$jscomp.makeIterator(t);for(var x=t.next();!x.done;x=t.next()){x=x.value;var z=x.attributes.schemeIdUri;if("http://dashif.org/guidelines/trickmode"==z)f=x.attributes.value;else if("urn:mpeg:mpegB:cicp:TransferCharacteristics"==z)var B=m(parseInt(x.attributes.value,10));else if("urn:mpeg:mpegB:cicp:ColourPrimaries"==
|
|
2294
|
+
z)var A=q(parseInt(x.attributes.value,10));else"urn:mpeg:mpegB:cicp:MatrixCoefficients"!=z&&("urn:mpeg:dash:ssr:2023"==z&&this.config_.dash.enableFastSwitching?u=!0:"urn:dvb:dash:fontdownload:2014"==z?r(x):"urn:mpeg:dash:urlparam:2014"==z?(v=this.getURLParametersFunction_(x))||(w=!0):w=!0)}if(w)return null;var y=null;w=e.findChildren(c,"SupplementalProperty");w=$jscomp.makeIterator(w);for(t=w.next();!t.done;t=w.next())t=t.value,x=t.attributes.schemeIdUri,"http://dashif.org/guidelines/last-segment-number"==
|
|
2295
|
+
x?y=parseInt(t.attributes.value,10)-1:"urn:mpeg:mpegB:cicp:TransferCharacteristics"==x?B=m(parseInt(t.attributes.value,10)):"urn:mpeg:mpegB:cicp:ColourPrimaries"==x?A=q(parseInt(t.attributes.value,10)):"urn:dvb:dash:fontdownload:2014"==x?r(t):"urn:mpeg:dash:urlparam:2014"==x&&(v=this.getURLParametersFunction_(t));v&&(a.urlParams=v);q=e.findChildren(c,"Accessibility");m=shaka.util.LanguageUtils;var C=new Map;q=$jscomp.makeIterator(q);for(r=q.next();!r.done;r=q.next())if(v=r.value,r=v.attributes.schemeIdUri,
|
|
2296
|
+
v=v.attributes.value,"urn:scte:dash:cc:cea-608:2015"==r&&!this.config_.disableText)if(r=1,null!=v)for(v=v.split(";"),w=$jscomp.makeIterator(v),t=w.next();!t.done;t=w.next())x=t.value,z=t=void 0,x.includes("=")?(x=x.split("="),t=x[0].startsWith("CC")?x[0]:"CC"+x[0],z=x[1]||"und"):(t="CC"+r,2==v.length?r+=2:r++,z=x),C.set(t,m.normalize(z));else C.set("CC1","und");else if("urn:scte:dash:cc:cea-708:2015"==r&&!this.config_.disableText)if(r=1,null!=v)for(v=$jscomp.makeIterator(v.split(";")),w=v.next();!w.done;w=
|
|
2297
|
+
v.next())t=w.value,x=w=void 0,t.includes("=")?(t=t.split("="),w="svc"+t[0],x=t[1].split(",")[0].split(":").pop()):(w="svc"+r,r++,x=t),C.set(w,m.normalize(x));else C.set("svc1","und");else if("urn:mpeg:dash:role:2011"==r)null!=v&&(n.push(v),"captions"==v&&(p=g.TextStreamKind.CLOSED_CAPTION));else if("urn:tva:metadata:cs:AudioPurposeCS:2007"==r)if("1"==v)var D=shaka.media.ManifestParser.AccessibilityPurpose.VISUALLY_IMPAIRED;else"2"==v&&(D=shaka.media.ManifestParser.AccessibilityPurpose.HARD_OF_HEARING);
|
|
2298
|
+
g=e.findChildren(c,"ContentProtection");var E=k.parseFromAdaptationSet(g,this.config_.dash.ignoreDrmInfo,this.config_.dash.keySystemsByURI),F=shaka.util.LanguageUtils.normalize(a.adaptationSet.language||"und"),H=a.adaptationSet.label;c=e.findChildren(c,"Representation");if(!this.config_.dash.ignoreSupplementalCodecs){k=[];g=$jscomp.makeIterator(c);for(m=g.next();!m.done;m=g.next())if(q=m.value,m=e.getAttributeNS(q,shaka.dash.DashParser.SCTE214_,"supplementalCodecs"))q=shaka.util.ObjectUtils.cloneObject(q),
|
|
2299
|
+
q.attributes.codecs=m.split(" ").join(","),q.attributes.id&&(q.attributes.supplementalId=q.attributes.id+"_supplementalCodecs"),k.push(q);c.push.apply(c,$jscomp.arrayFromIterable(k))}e=c.map(function(J){if(J=d.parseRepresentation_(a,E,p,F,H,l,n,C,J,D,y))J.hdr=J.hdr||B,J.colorGamut=J.colorGamut||A,J.fastSwitching=u;return J}).filter(function(J){return!!J});if(0==e.length){f=a.adaptationSet.contentType==h.IMAGE;if(this.config_.dash.ignoreEmptyAdaptationSet||b||f)return null;throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
|
|
2300
|
+
shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.DASH_EMPTY_ADAPTATION_SET);}if(!a.adaptationSet.contentType||a.adaptationSet.contentType==h.APPLICATION)for(a.adaptationSet.contentType=shaka.dash.DashParser.guessContentType_(e[0].mimeType,e[0].codecs),h=$jscomp.makeIterator(e),b=h.next();!b.done;b=h.next())b.value.type=a.adaptationSet.contentType;h=a.adaptationSet.id||"__fake__"+this.globalId_++;b=$jscomp.makeIterator(e);for(k=b.next();!k.done;k=b.next()){k=k.value;g=$jscomp.makeIterator(E.drmInfos);
|
|
2301
|
+
for(m=g.next();!m.done;m=g.next())m=m.value,m.keyIds=m.keyIds&&k.keyIds?new Set([].concat($jscomp.arrayFromIterable(m.keyIds),$jscomp.arrayFromIterable(k.keyIds))):m.keyIds||k.keyIds;k.groupId=h}b=c.map(function(J){return J.attributes.supplementalId||J.attributes.id}).filter(shaka.util.Functional.isNotNull);return{id:h,contentType:a.adaptationSet.contentType,language:F,main:l,streams:e,drmInfos:E.drmInfos,trickModeFor:f,representationIds:b}};
|
|
2292
2302
|
shaka.dash.DashParser.prototype.getURLParametersFunction_=function(a){var b=this,c=shaka.util.TXml;if((a=c.findChildNS(a,shaka.dash.DashParser.UP_NAMESPACE_,"UrlQueryInfo"))&&c.parseAttr(a,"useMPDUrlQuery",c.parseBoolean,!1)){var d=a.attributes.queryTemplate;if(d)return function(){return"$querypart$"==d?b.lastManifestQueryParams_:d.split("&").map(function(e){if("$querypart$"==e)return b.lastManifestQueryParams_;var f=/\$query:(.*?)\$/g.exec(e);if(f&&2==f.length){f=f[1];var g=(new goog.Uri.QueryData(b.lastManifestQueryParams_)).get(f);
|
|
2293
2303
|
if(g.length)return f+"="+g[0]}return e}).join("&")}}return null};
|
|
2294
2304
|
shaka.dash.DashParser.prototype.parseRepresentation_=function(a,b,c,d,e,f,g,h,k,l,m){var n=this,p=shaka.util.TXml,q=shaka.util.ManifestParserUtils.ContentType;a.representation=this.createFrame_(k,a.adaptationSet,null);var r=a.representation.id;this.minTotalAvailabilityTimeOffset_=Math.min(this.minTotalAvailabilityTimeOffset_,a.representation.availabilityTimeOffset);this.isLowLatency_=0<this.minTotalAvailabilityTimeOffset_;if(!this.verifyRepresentation_(a.representation))return shaka.log.warning("Skipping Representation",a.representation),
|
|
2295
|
-
null;var t=a.periodInfo.start;a.bandwidth=p.parseAttr(k,"bandwidth",p.parsePositiveInt)||0;a.roles=g;var u=p.findChildren(k,"SupplementalProperty"),v=p.findChildren(k,"EssentialProperty"),w=null,x=v.find(function(
|
|
2296
|
-
x==q.APPLICATION;q=x==q.IMAGE;try{var
|
|
2297
|
-
|
|
2298
|
-
shaka.dash.SegmentBase.createStreamInfo(a,
|
|
2299
|
-
K=a.representation.codecs;E={generateSegmentIndex:function(){var
|
|
2300
|
-
|
|
2301
|
-
u.includes("hev1.2.4.L153.B0"))&&(
|
|
2305
|
+
null;var t=a.periodInfo.start;a.bandwidth=p.parseAttr(k,"bandwidth",p.parsePositiveInt)||0;a.roles=g;var u=p.findChildren(k,"SupplementalProperty"),v=p.findChildren(k,"EssentialProperty"),w=null,x=v.find(function(I){return"urn:mpeg:dash:urlparam:2014"==I.attributes.schemeIdUri});x?w=this.getURLParametersFunction_(x):(x=u.find(function(I){return"urn:mpeg:dash:urlparam:2014"==I.attributes.schemeIdUri}))&&(w=this.getURLParametersFunction_(x));w&&(a.urlParams=w);x=a.representation.contentType;w=x==q.TEXT||
|
|
2306
|
+
x==q.APPLICATION;q=x==q.IMAGE;try{var z=void 0;if(b.aes128Info){var B=a.representation.getBaseUris,A=a.urlParams,y=shaka.util.ManifestParserUtils.resolveUris(B(),[b.aes128Info.keyUri],A()),C=shaka.net.NetworkingEngine.RequestType.KEY,D=shaka.net.NetworkingEngine.makeRequest(y,this.config_.retryParameters);z={bitsKey:128,blockCipherMode:"CBC",iv:b.aes128Info.iv,firstMediaSequenceNumber:0,fetchKey:function(){var I,N,P;return $jscomp.asyncExecutePromiseGeneratorProgram(function(O){if(1==O.nextAddress)return O.yield(n.makeNetworkRequest_(D,
|
|
2307
|
+
C),2);if(3!=O.nextAddress){I=O.yieldResult;if(!I.data||16!=I.data.byteLength)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.AES_128_INVALID_KEY_LENGTH);N={name:"AES-CBC"};P=z;return O.yield(window.crypto.subtle.importKey("raw",I.data,N,!0,["decrypt"]),3)}P.cryptoKey=O.yieldResult;z.fetchKey=void 0;O.jumpToEnd()})}}}a.representation.aesKey=z;B=function(I,N,P,O){return n.requestSegment_(I,N,P,O)};if(a.representation.segmentBase)var E=
|
|
2308
|
+
shaka.dash.SegmentBase.createStreamInfo(a,B,z);else if(a.representation.segmentList)E=shaka.dash.SegmentList.createStreamInfo(a,this.streamMap_,z);else if(a.representation.segmentTemplate)E=shaka.dash.SegmentTemplate.createStreamInfo(a,B,this.streamMap_,!!this.manifest_,this.config_.dash.initialSegmentLimit,this.periodDurations_,z,m,!1);else{goog.asserts.assert(w,"Must have Segment* with non-text streams.");var F=a.periodInfo.duration||0,H=a.representation.getBaseUris,J=a.representation.mimeType,
|
|
2309
|
+
K=a.representation.codecs;E={generateSegmentIndex:function(){var I=shaka.media.SegmentIndex.forSingleSegment(t,F,H());I.forEachTopLevelReference(function(N){N.mimeType=J;N.codecs=K});return Promise.resolve(I)}}}}catch(I){if((w||q)&&I.code==shaka.util.Error.Code.DASH_NO_SEGMENT_INFO)return null;throw I;}k=p.findChildren(k,"ContentProtection");k=shaka.dash.ContentProtection.parseFromRepresentation(k,b,this.config_.dash.ignoreDrmInfo,this.config_.dash.keySystemsByURI);k=new Set(k?[k]:[]);p=u.some(function(I){return"tag:dolby.com,2018:dash:EC3_ExtensionType:2018"==
|
|
2310
|
+
I.attributes.schemeIdUri&&"JOC"==I.attributes.value});u=a.representation.codecs;B=u.includes("ec-3")&&384E3<a.bandwidth;m=!1;if(p||B)m=!0;p=!1;w&&(p=g.includes("forced_subtitle")||g.includes("forced-subtitle"));var L;if(q&&((v=v.find(function(I){return["http://dashif.org/thumbnail_tile","http://dashif.org/guidelines/thumbnail_tile"].includes(I.attributes.schemeIdUri)}))&&(L=v.attributes.value),!L))return null;var G;a.profiles.includes("http://dashif.org/guidelines/dash-if-uhd#hevc-hdr-pq10")&&(u.includes("hvc1.2.4.L153.B0")||
|
|
2311
|
+
u.includes("hev1.2.4.L153.B0"))&&(G="PQ");v=a.representation.id?a.period.id+","+a.representation.id:"";this.patchLocationNodes_.length&&r&&this.contextCache_.set(a.period.id+","+r,this.cloneContext_(a));var M=v&&this.streamMap_.has(v)?this.streamMap_.get(v):{id:this.globalId_++,originalId:a.representation.id,groupId:null,createSegmentIndex:function(){return Promise.resolve()},closeSegmentIndex:function(){M.segmentIndex&&(M.segmentIndex.release(),M.segmentIndex=null)},segmentIndex:null,mimeType:a.representation.mimeType,
|
|
2302
2312
|
codecs:u,frameRate:a.representation.frameRate,pixelAspectRatio:a.representation.pixelAspectRatio,bandwidth:a.bandwidth,width:a.representation.width,height:a.representation.height,kind:c,encrypted:0<b.drmInfos.length,drmInfos:b.drmInfos,keyIds:k,language:d,originalLanguage:a.adaptationSet.language,label:e,type:a.adaptationSet.contentType,primary:f,trickModeVideo:null,emsgSchemeIdUris:a.representation.emsgSchemeIdUris,roles:g,forced:p,channelsCount:a.representation.numChannels,audioSamplingRate:a.representation.audioSamplingRate,
|
|
2303
|
-
spatialAudio:m,closedCaptions:h,hdr:
|
|
2304
|
-
N.jumpToEnd()})};v&&a.dynamic&&!this.streamMap_
|
|
2313
|
+
spatialAudio:m,closedCaptions:h,hdr:G,colorGamut:void 0,videoLayout:void 0,tilesLayout:L,accessibilityPurpose:l,external:!1,fastSwitching:!1,fullMimeTypes:new Set([shaka.util.MimeUtils.getFullType(a.representation.mimeType,a.representation.codecs)]),isAudioMuxedInVideo:!1};M.createSegmentIndex=function(){var I;return $jscomp.asyncExecutePromiseGeneratorProgram(function(N){if(1==N.nextAddress){if(M.segmentIndex)return N.jumpTo(0);I=M;return N.yield(E.generateSegmentIndex(),3)}I.segmentIndex=N.yieldResult;
|
|
2314
|
+
N.jumpToEnd()})};v&&a.dynamic&&!this.streamMap_.has(v)&&(a=a.period.id||"",this.indexStreamMap_.has(a)||this.indexStreamMap_.set(a,[]),this.streamMap_.set(v,M),this.indexStreamMap_.get(a).push(v));return M};
|
|
2305
2315
|
shaka.dash.DashParser.prototype.cloneContext_=function(a){var b=function(c){if(!c)return null;c=shaka.util.ObjectUtils.shallowCloneObject(c);c.segmentBase=null;c.segmentList=null;c.segmentTemplate=shaka.util.TXml.cloneNode(c.segmentTemplate);return c};a=shaka.util.ObjectUtils.shallowCloneObject(a);a.period=b(a.period);a.adaptationSet=b(a.adaptationSet);a.representation=b(a.representation);a.periodInfo&&(a.periodInfo=shaka.util.ObjectUtils.shallowCloneObject(a.periodInfo),a.periodInfo.node=null);return a};
|
|
2306
2316
|
shaka.dash.DashParser.prototype.onUpdate_=function(){var a=this,b,c;return $jscomp.asyncExecutePromiseGeneratorProgram(function(d){switch(d.nextAddress){case 1:return goog.asserts.assert(0<=a.updatePeriod_,"There should be an update period"),shaka.log.info("Updating manifest..."),b=0,d.setCatchFinallyBlocks(2),d.yield(a.requestManifest_(),4);case 4:b=d.yieldResult;d.leaveTryBlock(3);break;case 2:if(c=d.enterCatchBlock(),goog.asserts.assert(c instanceof shaka.util.Error,"Should only receive a Shaka error"),
|
|
2307
2317
|
a.playerInterface_){if(a.config_.raiseFatalErrorOnManifestUpdateRequestFailure)return a.playerInterface_.onError(c),d.return();c.severity=shaka.util.Error.Severity.RECOVERABLE;a.playerInterface_.onError(c)}case 3:if(!a.playerInterface_)return d.return();a.playerInterface_.onManifestUpdated();a.setUpdateTimer_(b);d.jumpToEnd()}})};shaka.dash.DashParser.prototype.updateNow_=function(){this.updateTimer_.tickNow()};
|
|
2308
2318
|
shaka.dash.DashParser.prototype.setUpdateTimer_=function(a){if(!(0>this.updatePeriod_)){var b=this.updatePeriod_;0<=this.config_.dash.updatePeriod&&(b=this.config_.dash.updatePeriod);a=Math.max(b-a,this.averageUpdateDuration_.getEstimate());this.updateTimer_.tickAfter(a)}};
|
|
2309
2319
|
shaka.dash.DashParser.prototype.createFrame_=function(a,b,c){var d=this;goog.asserts.assert(b||c,"Must provide either parent or getBaseUris");var e=shaka.media.SegmentUtils,f=shaka.util.ManifestParserUtils,g=shaka.util.TXml;b=b||{contentType:"",mimeType:"",codecs:"",emsgSchemeIdUris:[],frameRate:void 0,pixelAspectRatio:void 0,numChannels:null,audioSamplingRate:null,availabilityTimeOffset:0,segmentSequenceCadence:0};c=c||b.getBaseUris;var h=g.parseNonNegativeInt,k=g.evalDivision,l=a.attributes.id,
|
|
2310
|
-
m=g.findChildren(a,"BaseURL"),
|
|
2311
|
-
|
|
2312
|
-
g.parseFloat)||0:0,
|
|
2313
|
-
|
|
2320
|
+
m=a.attributes.supplementalId,n=g.findChildren(a,"BaseURL"),p,q=!1;if(this.contentSteeringManager_)for(var r=$jscomp.makeIterator(n),t=r.next();!t.done;t=r.next()){var u=t.value;t=u.attributes.serviceLocation;u=g.getContents(u);t&&u&&(this.contentSteeringManager_.addLocation(l,t,u),q=!0)}q&&this.contentSteeringManager_||(p=n.map(g.getContents));r=a.attributes.contentType||b.contentType;t=a.attributes.mimeType||b.mimeType;e=e.codecsFiltering([a.attributes.codecs||b.codecs]).join(",");k=g.parseAttr(a,
|
|
2321
|
+
"frameRate",k)||b.frameRate;u=a.attributes.sar||b.pixelAspectRatio;var v=this.emsgSchemeIdUris_(g.findChildren(a,"InbandEventStream"),b.emsgSchemeIdUris),w=g.findChildren(a,"AudioChannelConfiguration");w=this.parseAudioChannels_(w)||b.numChannels;var x=g.parseAttr(a,"audioSamplingRate",h)||b.audioSamplingRate;r||(r=shaka.dash.DashParser.guessContentType_(t,e));var z=g.findChild(a,"SegmentBase"),B=g.findChild(a,"SegmentTemplate"),A=z?g.parseAttr(z,"availabilityTimeOffset",g.parseFloat)||0:0,y=B?g.parseAttr(B,
|
|
2322
|
+
"availabilityTimeOffset",g.parseFloat)||0:0,C=n&&n.length?g.parseAttr(n[0],"availabilityTimeOffset",g.parseFloat)||0:0;A=b.availabilityTimeOffset+C+A+y;y=null;(C=g.findChild(a,"SegmentSequenceProperties"))&&(C=g.findChild(C,"SAP"))&&(y=g.parseAttr(C,"cadence",g.parseInt));C=a.attributes.label;var D=g.findChildren(a,"Label");D&&D.length&&(D=D[0],g.getTextContents(D)&&(C=g.getTextContents(D)));return{getBaseUris:function(){return f.resolveUris(c(),n.length?d.contentSteeringManager_&&q?d.contentSteeringManager_.getLocations(l):
|
|
2323
|
+
p?p:[]:[])},segmentBase:z||b.segmentBase,segmentList:g.findChild(a,"SegmentList")||b.segmentList,segmentTemplate:B||b.segmentTemplate,width:g.parseAttr(a,"width",h)||b.width,height:g.parseAttr(a,"height",h)||b.height,contentType:r,mimeType:t,codecs:e,frameRate:k,pixelAspectRatio:u,emsgSchemeIdUris:v,id:m||l,originalId:l,language:a.attributes.lang,numChannels:w,audioSamplingRate:x,availabilityTimeOffset:A,initialization:null,segmentSequenceCadence:y||b.segmentSequenceCadence,label:C||null}};
|
|
2314
2324
|
shaka.dash.DashParser.prototype.emsgSchemeIdUris_=function(a,b){b=b.slice();a=$jscomp.makeIterator(a);for(var c=a.next();!c.done;c=a.next())c=c.value.attributes.schemeIdUri,b.includes(c)||b.push(c);return b};
|
|
2315
2325
|
shaka.dash.DashParser.prototype.parseAudioChannels_=function(a){a=$jscomp.makeIterator(a);for(var b=a.next();!b.done;b=a.next()){var c=b.value;if(b=c.attributes.schemeIdUri)if(c=c.attributes.value)switch(b){case "urn:mpeg:dash:outputChannelPositionList:2012":return c.trim().split(/ +/).length;case "urn:mpeg:dash:23003:3:audio_channel_configuration:2011":case "urn:dts:dash:audio_channel_configuration:2012":var d=parseInt(c,10);if(!d){shaka.log.warning("Channel parsing failure! Ignoring scheme and value",
|
|
2316
2326
|
b,c);continue}return d;case "tag:dolby.com,2015:dash:audio_channel_configuration:2015":d=[2,1,2,2,2,2,1,2,2,1,1,1,1,2,1,1,2,2];var e=parseInt(c,16);if(!e){shaka.log.warning("Channel parsing failure! Ignoring scheme and value",b,c);continue}for(c=b=0;c<d.length;c++)e&1<<c&&(b+=d[c]);if(b)return b;continue;case "tag:dolby.com,2014:dash:audio_channel_configuration:2011":case "urn:dolby:dash:audio_channel_configuration:2011":d=[1,1,1,1,1,2,2,1,1,2,2,2,1,2,1,1].reverse();e=parseInt(c,16);if(!e){shaka.log.warning("Channel parsing failure! Ignoring scheme and value",
|
|
@@ -2357,11 +2367,11 @@ this.aesKeyInfoMap_.clear();this.aesKeyMap_.clear();this.identityKeyMap_.clear()
|
|
|
2357
2367
|
shaka.hls.HlsParser.prototype.update=function(){var a=this,b,c,d,e,f,g,h,k,l,m,n,p;return $jscomp.asyncExecutePromiseGeneratorProgram(function(q){if(1==q.nextAddress){if(!a.isLive_())return q.return();b=[];c=Array.from(a.uriToStreamInfosMap_.values());a.lastTargetDuration_=Infinity;a.manifest_.gapCount=0;d=c.filter(function(r){return r.stream.segmentIndex});e=$jscomp.makeIterator(d);for(f=e.next();!f.done;f=e.next())g=f.value,b.push(a.updateStream_(g));return q.yield(Promise.all(b),2)}a.notifySegmentsForStreams_(d.map(function(r){return r.stream}));
|
|
2358
2368
|
h=d.some(function(r){return 0==r.hasEndList});d.length&&!h&&(k=shaka.hls.HlsParser.PresentationType_,a.setPresentationType_(k.VOD),l=d.map(function(r){return r.maxTimestamp}),a.presentationTimeline_.setDuration(Math.min.apply(Math,$jscomp.arrayFromIterable(l))),a.playerInterface_.updateDuration());h&&a.determineDuration_();m=$jscomp.makeIterator(d);for(n=m.next();!n.done;n=m.next())p=n.value,p.stream.isAudioMuxedInVideo||!p.stream.segmentIndex||p.stream.segmentIndex.earliestReference()||a.playerInterface_.disableStream(p.stream);
|
|
2359
2369
|
q.jumpToEnd()})};shaka.hls.HlsParser.prototype.getMediaSequenceToStartTimeFor_=function(a){return this.isLive_()?this.mediaSequenceToStartTimeByType_.get(a.type):a.mediaSequenceToStartTime};
|
|
2360
|
-
shaka.hls.HlsParser.prototype.updateStream_=function(a){var b=this,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,
|
|
2370
|
+
shaka.hls.HlsParser.prototype.updateStream_=function(a){var b=this,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,z,B,A,y,C,D,E,F,H,J,K,L,G,M,I,N,P;return $jscomp.asyncExecutePromiseGeneratorProgram(function(O){switch(O.nextAddress){case 1:if(a.stream.isAudioMuxedInVideo)return O.return();c=[];d=$jscomp.makeIterator(a.getUris());for(e=d.next();!e.done;e=d.next())f=e.value,g=new goog.Uri(f),h=g.getQueryData(),a.canBlockReload&&(0<=a.nextMediaSequence&&h.add("_HLS_msn",String(a.nextMediaSequence)),0<=a.nextPart&&
|
|
2361
2371
|
h.add("_HLS_part",String(a.nextPart))),a.canSkipSegments&&h.add("_HLS_skip","YES"),h.getCount()&&g.setQueryData(h),c.push(g.toString());O.setCatchFinallyBlocks(2);return O.yield(b.requestManifest_(c,!0).promise,4);case 4:k=O.yieldResult;O.leaveTryBlock(3);break;case 2:throw l=O.enterCatchBlock(),b.playerInterface_&&b.playerInterface_.disableStream(a.stream),l;case 3:if(!a.stream.segmentIndex)return O.return();m=b.manifestTextParser_.parsePlaylist(k.data);if(m.type!=shaka.hls.PlaylistType.MEDIA)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
|
|
2362
|
-
shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_INVALID_PLAYLIST_HIERARCHY);n=k.uri;n==k.originalUri||a.getUris().includes(n)||a.redirectUris.push(n);p=shaka.hls.Utils.filterTagsByName(m.tags,"EXT-X-DEFINE");q=b.parseMediaVariables_(p,n);r=a.stream;t=b.getMediaSequenceToStartTimeFor_(a);return O.yield(b.parseDrmInfo_(m,r.mimeType,a.getUris,q),5);case 5:u=O.yieldResult;v=u.keyIds;w=u.drmInfos;x=function(
|
|
2363
|
-
x(r.keyIds,v)||(r.keyIds=v,r.drmInfos=w,b.playerInterface_.newDrmInfo(r));
|
|
2364
|
-
0),
|
|
2372
|
+
shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_INVALID_PLAYLIST_HIERARCHY);n=k.uri;n==k.originalUri||a.getUris().includes(n)||a.redirectUris.push(n);p=shaka.hls.Utils.filterTagsByName(m.tags,"EXT-X-DEFINE");q=b.parseMediaVariables_(p,n);r=a.stream;t=b.getMediaSequenceToStartTimeFor_(a);return O.yield(b.parseDrmInfo_(m,r.mimeType,a.getUris,q),5);case 5:u=O.yieldResult;v=u.keyIds;w=u.drmInfos;x=function(W,Q){return W.size===Q.size&&[].concat($jscomp.arrayFromIterable(W)).every(function(S){return Q.has(S)})};
|
|
2373
|
+
x(r.keyIds,v)||(r.keyIds=v,r.drmInfos=w,b.playerInterface_.newDrmInfo(r));z=b.createSegments_(m,t,q,a.getUris,a.type);B=z.segments;if(A=z.bandwidth)r.bandwidth=A;y=shaka.media.QualityObserver.createQualityInfo(r);C=$jscomp.makeIterator(B);for(D=C.next();!D.done;D=C.next())E=D.value,E.initSegmentReference&&(E.initSegmentReference.mediaQuality=y);r.segmentIndex.mergeAndEvict(B,b.presentationTimeline_.getSegmentAvailabilityStart());B.length&&(F=shaka.hls.Utils.getFirstTagWithNameAsNumber(m.tags,"EXT-X-MEDIA-SEQUENCE",
|
|
2374
|
+
0),J=(H=shaka.hls.Utils.getFirstTagWithName(m.tags,"EXT-X-SKIP"))?Number(H.getAttributeValue("SKIPPED-SEGMENTS")):0,K=b.getNextMediaSequenceAndPart_(F,B),L=K.nextMediaSequence,G=K.nextPart,a.nextMediaSequence=L+J,a.nextPart=G,M=t.get(F),r.segmentIndex.evict(M));if(I=r.segmentIndex.earliestReference())a.minTimestamp=I.startTime,N=B[B.length-1],goog.asserts.assert(N,"Should have segments!"),a.maxTimestamp=N.endTime;if(P=shaka.hls.Utils.getFirstTagWithName(m.tags,"EXT-X-ENDLIST"))a.hasEndList=!0;b.determineLastTargetDuration_(m);
|
|
2365
2375
|
b.processDateRangeTags_(m.tags,r.type,q,a.getUris);O.jumpToEnd()}})};shaka.hls.HlsParser.prototype.onExpirationUpdated=function(a,b){};shaka.hls.HlsParser.prototype.onInitialVariantChosen=function(a){};shaka.hls.HlsParser.prototype.banLocation=function(a){this.contentSteeringManager_&&this.contentSteeringManager_.banLocation(a)};shaka.hls.HlsParser.prototype.setMediaElement=function(a){this.mediaElement_=a};
|
|
2366
2376
|
shaka.hls.HlsParser.prototype.syncStreamsWithSequenceNumber_=function(a,b){b=void 0===b?!1:b;for(var c=-1==this.minSequenceNumber_,d=$jscomp.makeIterator(a),e=d.next();!e.done;e=d.next()){e=e.value;var f=e.stream.segmentIndex;goog.asserts.assert(f,"Only loaded streams should be synced");var g=this.getMediaSequenceToStartTimeFor_(e);if(f=f.earliestReference()){goog.DEBUG&&g.values().next().value!=f.startTime&&shaka.log.warning("Sequence number map is not ordered as expected!");g=$jscomp.makeIterator(g);
|
|
2367
2377
|
for(var h=g.next();!h.done;h=g.next()){h=$jscomp.makeIterator(h.value);var k=h.next().value;if(h.next().value==f.startTime){c&&(this.minSequenceNumber_=Math.max(this.minSequenceNumber_,k));e.firstSequenceNumber=k;break}}}}if(!(0>this.minSequenceNumber_))for(shaka.log.debug("Syncing HLS streams against base sequence number:",this.minSequenceNumber_),a=$jscomp.makeIterator(a),c=a.next();!c.done;c=a.next())if(c=c.value,this.ignoreManifestProgramDateTimeFor_(c.type)||b)if(d=c.stream.segmentIndex)if(e=
|
|
@@ -2369,20 +2379,21 @@ this.minSequenceNumber_-c.firstSequenceNumber,0<e&&(d.dropFirstReferences(e),d=d
|
|
|
2369
2379
|
shaka.hls.HlsParser.prototype.syncStreamsWithProgramDateTime_=function(a){if(Infinity==this.lowestSyncTime_){a=$jscomp.makeIterator(a);for(var b=a.next();!b.done;b=a.next())b=b.value.stream.segmentIndex,goog.asserts.assert(b,"Only loaded streams should be synced"),b=b.earliestReference(),null!=b&&null!=b.syncTime&&(this.lowestSyncTime_=Math.min(this.lowestSyncTime_,b.syncTime))}a=this.lowestSyncTime_;if(Infinity!=a){shaka.log.debug("Syncing HLS streams against base time:",a);b=$jscomp.makeIterator(this.uriToStreamInfosMap_.values());
|
|
2370
2380
|
for(var c=b.next();!c.done;c=b.next())if(c=c.value,!this.ignoreManifestProgramDateTimeFor_(c.type)){var d=c.stream.segmentIndex;if(null!=d){var e=d.earliestReference();if(e)if(null==e.syncTime)shaka.log.alwaysError("Missing EXT-X-PROGRAM-DATE-TIME for stream",c.getUris(),"Expect AV sync issues!");else for(this.offsetStreamInfo_(c,e.syncTime-a-e.startTime),c=$jscomp.makeIterator(d),d=c.next();!d.done;d=c.next())d.value.syncAgainst(a)}}}};
|
|
2371
2381
|
shaka.hls.HlsParser.prototype.offsetStreamInfo_=function(a,b){a.minTimestamp+=b;a.maxTimestamp+=b;goog.asserts.assert(0<=a.maxTimestamp,"Negative maxTimestamp after adjustment!");for(var c=this.getMediaSequenceToStartTimeFor_(a),d=$jscomp.makeIterator(c),e=d.next();!e.done;e=d.next()){var f=$jscomp.makeIterator(e.value);e=f.next().value;f=f.next().value;c.set(e,f+b)}shaka.log.debug("Offset",b,"applied to",a.getUris())};
|
|
2372
|
-
shaka.hls.HlsParser.prototype.parseManifest_=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,
|
|
2373
|
-
[];goog.asserts.assert(null==c.presentationTimeline_,"Presentation timeline created early!");c.presentationTimeline_=new shaka.media.PresentationTimeline(null,0);c.presentationTimeline_.setStatic(!0);m=function(){return[b]};n=null;p=new Map;if(f.type==shaka.hls.PlaylistType.MEDIA)return c.needsClosedCaptionsDetection_=!1,
|
|
2374
|
-
p,f,m,b,"",n,
|
|
2375
|
-
4);case 4:if(!c.config_.hls.ignoreSupplementalCodecs){
|
|
2376
|
-
|
|
2377
|
-
(
|
|
2378
|
-
(
|
|
2379
|
-
|
|
2380
|
-
|
|
2381
|
-
|
|
2382
|
-
|
|
2383
|
-
|
|
2384
|
-
|
|
2385
|
-
A
|
|
2382
|
+
shaka.hls.HlsParser.prototype.parseManifest_=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,z,B,A,y,C,D,E,F,H,J,K,L,G,M,I,N,P,O,W,Q,S,V,R,T,X,Y;return $jscomp.asyncExecutePromiseGeneratorProgram(function(U){switch(U.nextAddress){case 1:d=shaka.hls.Utils;e=shaka.util.ManifestParserUtils.ContentType;goog.asserts.assert(c.masterPlaylistUri_,"Master playlist URI must be set before calling parseManifest_!");f=c.manifestTextParser_.parsePlaylist(a);g=d.filterTagsByName(f.tags,"EXT-X-DEFINE");
|
|
2383
|
+
h=[];k=[];l=[];goog.asserts.assert(null==c.presentationTimeline_,"Presentation timeline created early!");c.presentationTimeline_=new shaka.media.PresentationTimeline(null,0);c.presentationTimeline_.setStatic(!0);m=function(){return[b]};n=null;p=new Map;if(f.type==shaka.hls.PlaylistType.MEDIA)return c.needsClosedCaptionsDetection_=!1,N=shaka.hls.Utils.filterTagsByName(f.tags,"EXT-X-DEFINE"),p=c.parseMediaVariables_(N,c.masterPlaylistUri_),n=e.VIDEO,P="",O=new Map,U.yield(c.convertParsedPlaylistIntoStreamInfo_(c.globalId_++,
|
|
2384
|
+
p,f,m,b,"",n,P,!0,"Media Playlist",null,O,null,!1,null,!1),7);c.parseMasterVariables_(g);q=d.filterTagsByName(f.tags,"EXT-X-MEDIA");r=d.filterTagsByName(f.tags,"EXT-X-STREAM-INF");t=d.filterTagsByName(f.tags,"EXT-X-IMAGE-STREAM-INF");u=d.filterTagsByName(f.tags,"EXT-X-I-FRAME-STREAM-INF");v=d.filterTagsByName(f.tags,"EXT-X-SESSION-KEY");w=d.filterTagsByName(f.tags,"EXT-X-SESSION-DATA");x=d.filterTagsByName(f.tags,"EXT-X-CONTENT-STEERING");c.processSessionData_(w);return U.yield(c.processContentSteering_(x),
|
|
2385
|
+
4);case 4:if(!c.config_.hls.ignoreSupplementalCodecs){z=[];B=$jscomp.makeIterator(r);A=B.next();for(y={};!A.done;y={supplementalCodecs$jscomp$1:void 0},A=B.next())if(C=A.value,D=C.getAttributeValue("SUPPLEMENTAL-CODECS"))y.supplementalCodecs$jscomp$1=D.split(/\s*,\s*/).map(function(ba){return ba.split("/")[0]}),E=C.attributes.map(function(ba){return function(aa){var Z=aa.name;aa=aa.value;"CODECS"==Z&&(aa=ba.supplementalCodecs$jscomp$1.join(","));return new shaka.hls.Attribute(Z,aa)}}(y)),z.push(new shaka.hls.Tag(C.id,
|
|
2386
|
+
C.name,E,null));r.push.apply(r,$jscomp.arrayFromIterable(z));F=[];H=$jscomp.makeIterator(u);J=H.next();for(K={};!J.done;K={supplementalCodecs$jscomp$2:void 0},J=H.next())if(L=J.value,G=L.getAttributeValue("SUPPLEMENTAL-CODECS"))K.supplementalCodecs$jscomp$2=G.split(/\s*,\s*/).map(function(ba){return ba.split("/")[0]}),M=L.attributes.map(function(ba){return function(aa){var Z=aa.name;aa=aa.value;"CODECS"==Z&&(aa=ba.supplementalCodecs$jscomp$2.join(","));return new shaka.hls.Attribute(Z,aa)}}(K)),F.push(new shaka.hls.Tag(L.id,
|
|
2387
|
+
L.name,M,null));u.push.apply(u,$jscomp.arrayFromIterable(F))}c.parseCodecs_(r);c.parseClosedCaptions_(q);I=c.parseIFrames_(u);return U.yield(c.createVariantsForTags_(r,v,q,m,c.globalVariables_,I),5);case 5:return h=U.yieldResult,k=c.parseTexts_(q),U.yield(c.parseImages_(t,u),6);case 6:l=U.yieldResult;U.jumpTo(3);break;case 7:W=U.yieldResult,c.uriToStreamInfosMap_.set(b,W),W.stream&&(Q=shaka.media.QualityObserver.createQualityInfo(W.stream),W.stream.segmentIndex.forEachTopLevelReference(function(ba){ba.initSegmentReference&&
|
|
2388
|
+
(ba.initSegmentReference.mediaQuality=Q)})),n=W.stream.type,h.push({id:0,language:c.getLanguage_(P),disabledUntilTime:0,primary:!0,audio:"audio"==n?W.stream:null,video:"video"==n?W.stream:null,bandwidth:W.stream.bandwidth||0,allowedByApplication:!0,allowedByKeySystem:!0,decodingInfos:[]});case 3:if(!c.playerInterface_)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.PLAYER,shaka.util.Error.Code.OPERATION_ABORTED);c.determineStartTime_(f);f.type==shaka.hls.PlaylistType.MEDIA&&
|
|
2389
|
+
(c.isLive_()&&(c.changePresentationTimelineToLive_(f),S=c.getUpdatePlaylistDelay_(),c.updatePlaylistTimer_.tickAfter(S)),V=Array.from(c.uriToStreamInfosMap_.values()),c.finalizeStreams_(V),c.determineDuration_(),goog.asserts.assert(n,"mediaPlaylistType should be non-null"),c.processDateRangeTags_(f.tags,n,p,m));c.manifest_={presentationTimeline:c.presentationTimeline_,variants:h,textStreams:k,imageStreams:l,offlineSessionIds:[],sequenceMode:c.config_.hls.sequenceMode,ignoreManifestTimestampsInSegmentsMode:c.config_.hls.ignoreManifestTimestampsInSegmentsMode,
|
|
2390
|
+
type:shaka.media.ManifestParser.HLS,serviceDescription:null,nextUrl:null,periodCount:1,gapCount:0,isLowLatency:!1,startTime:c.startTime_};if(c.codecInfoInManifest_||!c.config_.hls.disableCodecGuessing){U.jumpTo(8);break}R=[];T=$jscomp.makeIterator(c.manifest_.variants);for(X=T.next();!X.done;X=T.next())Y=X.value,Y.audio&&""===Y.audio.codecs&&R.push(Y.audio.createSegmentIndex()),Y.video&&""===Y.video.codecs&&R.push(Y.video.createSegmentIndex());return U.yield(Promise.all(R),8);case 8:c.playerInterface_.makeTextStreamsForClosedCaptions(c.manifest_),
|
|
2391
|
+
U.jumpToEnd()}})};
|
|
2392
|
+
shaka.hls.HlsParser.prototype.getBasicInfoFromSegments_=function(a){var b=this,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,z,B,A,y,C,D,E,F;return $jscomp.asyncExecutePromiseGeneratorProgram(function(H){switch(H.nextAddress){case 1:c=shaka.hls.HlsParser;d=shaka.media.SegmentUtils.getBasicInfoFromMimeType(b.config_.hls.mediaPlaylistFullMimeType);if(!a.length)return H.return(d);e=b.getAvailableSegment_(a);f=e.segment;g=e.segmentIndex;h=f.getUris();k=h[0];l=new goog.Uri(k);m=l.getPath().split(".").pop();if(n=
|
|
2393
|
+
c.RAW_FORMATS_TO_MIME_TYPES_.get(m))return H.return(shaka.media.SegmentUtils.getBasicInfoFromMimeType(n));p=shaka.net.NetworkingEngine.RequestType.SEGMENT;r=q=null;t=f.initSegmentReference;if(!t){H.jumpTo(2);break}u=shaka.util.Networking.createSegmentRequest(t.getUris(),t.getStartByte(),t.getEndByte(),b.config_.retryParameters);v=shaka.net.NetworkingEngine.AdvancedRequestType.INIT_SEGMENT;return H.yield(b.makeNetworkRequest_(u,p,{type:v}).promise,3);case 3:w=H.yieldResult;q=w.data;if(!t.aesKey){H.jumpTo(4);
|
|
2394
|
+
break}return H.yield(shaka.media.SegmentUtils.aesDecrypt(q,t.aesKey,0),5);case 5:q=H.yieldResult;case 4:(r=w.headers["content-type"])&&(r=r.split(";")[0].toLowerCase());case 2:return x=shaka.util.Networking.createSegmentRequest(f.getUris(),f.getStartByte(),f.getEndByte(),b.config_.retryParameters),z=shaka.net.NetworkingEngine.AdvancedRequestType.MEDIA_SEGMENT,H.yield(b.makeNetworkRequest_(x,p,{type:z}).promise,6);case 6:B=H.yieldResult;A=B.data;if(!f.aesKey){H.jumpTo(7);break}return H.yield(shaka.media.SegmentUtils.aesDecrypt(A,
|
|
2395
|
+
f.aesKey,g),8);case 8:A=H.yieldResult;case 7:(y=B.headers["content-type"])&&(y=y.split(";")[0].toLowerCase());C="mp4 mp4a m4s m4i m4a m4f cmfa mp4v m4v cmfv fmp4".split(" ");D=["audio/mp4","video/mp4","video/iso.segment"];if(shaka.util.TsParser.probe(shaka.util.BufferUtils.toUint8(A))){if(E=shaka.media.SegmentUtils.getBasicInfoFromTs(A,b.config_.disableAudio,b.config_.disableVideo,b.config_.disableText))return H.return(E)}else if(C.includes(m)||D.includes(y)||r&&D.includes(r))if(F=shaka.media.SegmentUtils.getBasicInfoFromMp4(q,
|
|
2396
|
+
A,b.config_.disableText))return H.return(F);return y?H.return(shaka.media.SegmentUtils.getBasicInfoFromMimeType(y)):r?H.return(shaka.media.SegmentUtils.getBasicInfoFromMimeType(r)):H.return(d)}})};
|
|
2386
2397
|
shaka.hls.HlsParser.prototype.determineDuration_=function(){goog.asserts.assert(this.presentationTimeline_,"Presentation timeline not created!");if(this.isLive_()){if(this.presentationType_==shaka.hls.HlsParser.PresentationType_.LIVE){var a=this.getLiveDuration_()||0;isNaN(this.config_.availabilityWindowOverride)||(a=this.config_.availabilityWindowOverride);this.presentationTimeline_.setSegmentAvailabilityDuration(a)}}else this.presentationTimeline_.setDuration(this.getMinDuration_());if(!this.presentationTimeline_.isStartTimeLocked()){a=
|
|
2387
2398
|
$jscomp.makeIterator(this.uriToStreamInfosMap_.values());for(var b=a.next();!b.done;b=a.next())b=b.value,!b.stream.segmentIndex||"audio"!=b.type&&"video"!=b.type||(b=b.stream.segmentIndex.earliestReference())&&b.syncTime&&this.presentationTimeline_.setInitialProgramDateTime(b.syncTime)}this.presentationTimeline_.lockStartTime();goog.asserts.assert(!this.presentationTimeline_.usingPresentationStartTime(),"We should not be using the presentation start time in HLS!")};
|
|
2388
2399
|
shaka.hls.HlsParser.prototype.parseMasterVariables_=function(a){var b=(new goog.Uri(this.masterPlaylistUri_)).getQueryData();a=$jscomp.makeIterator(a);for(var c=a.next();!c.done;c=a.next()){var d=c.value;c=d.getAttributeValue("NAME");var e=d.getAttributeValue("VALUE");d=d.getAttributeValue("QUERYPARAM");c&&e&&(this.globalVariables_.has(c)||this.globalVariables_.set(c,e));d&&(c=b.get(d)[0])&&!this.globalVariables_.has(c)&&this.globalVariables_.set(d,c)}};
|
|
@@ -2399,11 +2410,11 @@ shaka.hls.HlsParser.prototype.parseImages_=function(a,b){var c=this,d,e;return $
|
|
|
2399
2410
|
throw l;})}).concat(b.map(function(g){if(c.config_.disableThumbnails)return null;try{var h=c.createStreamInfoFromIframeTag_(g);return h.stream.type!==shaka.util.ManifestParserUtils.ContentType.IMAGE?null:h.stream}catch(k){if(c.config_.hls.ignoreImageStreamFailures)return null;throw k;}})),f.yield(Promise.all(d),2);e=f.yieldResult;return f.return(e.filter(function(g){return g}))})};
|
|
2400
2411
|
shaka.hls.HlsParser.prototype.createStreamInfosFromMediaTags_=function(a,b){a=a.filter(function(g){var h=g.getAttributeValue("URI")||"";g=g.getAttributeValue("TYPE");return"SUBTITLES"!=g&&(""!=h||"AUDIO"==g)});var c={};a=$jscomp.makeIterator(a);for(var d=a.next();!d.done;d=a.next()){d=d.value;var e=d.getTagKey(!this.contentSteeringManager_);c[e]?c[e].push(d):c[e]=[d]}for(var f in c)this.createStreamInfoFromMediaTags_(c[f],b,!1)};
|
|
2401
2412
|
shaka.hls.HlsParser.prototype.parseIFrames_=function(a){var b=this;return a.map(function(c){c=b.createStreamInfoFromIframeTag_(c);return c.stream.type!==shaka.util.ManifestParserUtils.ContentType.VIDEO?null:c.stream}).filter(function(c){return c})};
|
|
2402
|
-
shaka.hls.HlsParser.prototype.createVariantsForTags_=function(a,b,c,d,e,f){var g=this,h,k,l,m,n,p,q,r,t,u,v,w,x,
|
|
2403
|
-
shaka.hls.Utils.constructSegmentUris(d(),n.getRequiredAttrValue("URI"),e);u=t.sort().join("");g.aesKeyMap_.has(u)||(v=shaka.net.NetworkingEngine.RequestType.KEY,w=shaka.net.NetworkingEngine.makeRequest(t,g.config_.retryParameters),x=g.makeNetworkRequest_(w,v).promise,g.aesKeyMap_.set(u,x));
|
|
2404
|
-
$jscomp.makeIterator(r.keyIds),A=
|
|
2405
|
-
|
|
2406
|
-
k,f)));return
|
|
2413
|
+
shaka.hls.HlsParser.prototype.createVariantsForTags_=function(a,b,c,d,e,f){var g=this,h,k,l,m,n,p,q,r,t,u,v,w,x,z,B,A,y,C,D,E,F,H,J,K,L,G,M,I,N,P,O,W,Q,S,V,R;return $jscomp.asyncExecutePromiseGeneratorProgram(function(T){switch(T.nextAddress){case 1:h=[];k=new Set;if(!(0<b.length)){T.jumpTo(2);break}l=$jscomp.makeIterator(b);m=l.next();case 3:if(m.done){T.jumpTo(2);break}n=m.value;p=n.getRequiredAttrValue("METHOD");q=n.getAttributeValue("KEYFORMAT")||"identity";r=null;if("NONE"==p){T.jumpTo(4);break}if(g.isAesMethod_(p)){t=
|
|
2414
|
+
shaka.hls.Utils.constructSegmentUris(d(),n.getRequiredAttrValue("URI"),e);u=t.sort().join("");g.aesKeyMap_.has(u)||(v=shaka.net.NetworkingEngine.RequestType.KEY,w=shaka.net.NetworkingEngine.makeRequest(t,g.config_.retryParameters),x=g.makeNetworkRequest_(w,v).promise,g.aesKeyMap_.set(u,x));T.jumpTo(4);break}if("identity"!=q){r=(z=shaka.hls.HlsParser.KEYFORMATS_TO_DRM_PARSERS_.get(q))?z(n,""):null;T.jumpTo(6);break}return T.yield(g.identityDrmParser_(n,"",d,null,e),9);case 9:r=T.yieldResult;case 6:if(r){if(r.keyIds)for(B=
|
|
2415
|
+
$jscomp.makeIterator(r.keyIds),A=B.next();!A.done;A=B.next())y=A.value,k.add(y);h.push(r)}else shaka.log.warning("Unsupported HLS KEYFORMAT",q);case 4:m=l.next();T.jumpTo(3);break;case 2:C={};D=$jscomp.makeIterator(a);for(E=D.next();!E.done;E=D.next())F=E.value,H=F.getTagKey(!g.contentSteeringManager_),C[H]?C[H].push(F):C[H]=[F];J=[];for(K in C)L=C[K],G=L[0],M=G.getAttributeValue("FRAME-RATE"),I=Number(G.getAttributeValue("AVERAGE-BANDWIDTH"))||Number(G.getRequiredAttrValue("BANDWIDTH")),N=G.getAttributeValue("RESOLUTION"),
|
|
2416
|
+
P=$jscomp.makeIterator(N?N.split("x"):[null,null]),O=P.next().value,W=P.next().value,Q=G.getAttributeValue("VIDEO-RANGE"),(S=G.getAttributeValue("REQ-VIDEO-LAYOUT"))&&S.includes(",")&&(V=S.split(",").filter(function(X){return"CH-STEREO"==X||"CH-MONO"==X}),S=V[0]),S=S||"CH-MONO",R=g.createStreamInfosForVariantTags_(L,c,N,M),goog.asserts.assert(R.audio.length||R.video.length,"We should have created a stream!"),J.push.apply(J,$jscomp.arrayFromIterable(g.createVariants_(R.audio,R.video,I,O,W,M,Q,S,h,
|
|
2417
|
+
k,f)));return T.return(J.filter(function(X){return null!=X}))}})};
|
|
2407
2418
|
shaka.hls.HlsParser.prototype.createStreamInfosForVariantTags_=function(a,b,c,d){d=shaka.util.ManifestParserUtils.ContentType;c={audio:[],video:[]};for(var e=new Map,f=[],g=!1,h=!1,k=$jscomp.makeIterator(a),l=k.next();!l.done;l=k.next()){l=l.value;var m=l.getAttributeValue("AUDIO"),n=l.getAttributeValue("VIDEO");goog.asserts.assert(null==m||null==n,"Unexpected: both video and audio described by media tags!");var p=m||n;if(p){f.includes(p)||f.push(p);var q=l.getAttributeValue("PATHWAY-ID");q&&e.set(p,
|
|
2408
2419
|
q);m?g=!0:n&&(h=!0);shaka.log.debug("Guessing stream type for",l.toString())}}f.length&&b.length&&(b=b.filter(function(t){return f.includes(t.getRequiredAttrValue("GROUP-ID"))}),this.createStreamInfosFromMediaTags_(b,e));e=(b=f.sort().join(","))&&this.groupIdToStreamInfosMap_.has(b)?this.groupIdToStreamInfosMap_.get(b):[];g?c.audio.push.apply(c.audio,$jscomp.arrayFromIterable(e)):h&&c.video.push.apply(c.video,$jscomp.arrayFromIterable(e));g=!1;var r=a.map(function(t){return t.getRequiredAttrValue("URI")});
|
|
2409
2420
|
l=c.audio.find(function(t){return t&&t.getUris().find(function(u){return r.includes(u)})});h=this.getCodecsForVariantTag_(a[0]);e=shaka.util.ManifestParserUtils.guessCodecsSafe(d.VIDEO,h);(k=shaka.util.ManifestParserUtils.guessCodecsSafe(d.AUDIO,h))&&!e?(d=d.AUDIO,shaka.log.debug("Guessing audio-only."),g=0<c.audio.length):!c.audio.length&&!c.video.length&&k&&e?(shaka.log.debug("Guessing multiplexed audio+video."),d=d.VIDEO,h=[[e,k].join()]):c.audio.length&&l?(shaka.log.debug("Guessing audio-only."),
|
|
@@ -2427,35 +2438,35 @@ Number(p);b.uriToStreamInfosMap_.set(d,k);return q.return(k)})};
|
|
|
2427
2438
|
shaka.hls.HlsParser.prototype.createStreamInfoFromIframeTag_=function(a){goog.asserts.assert("EXT-X-I-FRAME-STREAM-INF"==a.name,"Should only be called on iframe tags!");var b=shaka.util.ManifestParserUtils.ContentType.VIDEO,c=a.getRequiredAttrValue("URI"),d=a.getAttributeValue("CODECS")||"";"mjpg"==d&&(b=shaka.util.ManifestParserUtils.ContentType.IMAGE);if(this.uriToStreamInfosMap_.has(c))return this.uriToStreamInfosMap_.get(c);var e=a.getAttributeValue("LANGUAGE"),f=a.getAttributeValue("NAME"),g=
|
|
2428
2439
|
a.getAttributeValue("CHARACTERISTICS");b=this.createStreamInfo_(this.globalId_++,[c],d,b,e,!1,f,null,null,g,!1,null,!1);d=a.getAttributeValue("RESOLUTION");e=$jscomp.makeIterator(d?d.split("x"):[null,null]);d=e.next().value;e=e.next().value;b.stream.width=Number(d)||void 0;b.stream.height=Number(e)||void 0;if(a=a.getAttributeValue("BANDWIDTH"))b.stream.bandwidth=Number(a);this.uriToStreamInfosMap_.set(c,b);return b};
|
|
2429
2440
|
shaka.hls.HlsParser.prototype.createStreamInfoFromVariantTags_=function(a,b,c){for(var d=this.globalId_++,e=[],f=$jscomp.makeIterator(a),g=f.next();!g.done;g=f.next()){var h=g.value;goog.asserts.assert("EXT-X-STREAM-INF"==h.name,"Should only be called on variant tags!");g=h.getRequiredAttrValue("URI");h=h.getAttributeValue("PATHWAY-ID");this.contentSteeringManager_&&h&&this.contentSteeringManager_.addLocation(d,h,g);e.push(g)}f=e.sort().join(",")+b.sort().join(",");if(this.uriToStreamInfosMap_.has(f))return this.uriToStreamInfosMap_.get(f);
|
|
2430
|
-
a=this.getClosedCaptions_(a[0],c);b=shaka.util.ManifestParserUtils.guessCodecs(c,b);c=this.createStreamInfo_(d,e,b,c,null,!1,
|
|
2431
|
-
shaka.hls.HlsParser.prototype.createStreamInfo_=function(a,b,c,d,e,f,g,h,k,l,m,n,p){var q=this,r=this.makeStreamObject_(a,c,d,e,f,g,h,k,l,m,n,p);b.includes(shaka.hls.HlsParser.FAKE_MUXED_URL_)&&(r.isAudioMuxedInVideo=!0,r.mimeType="video/mp2t",this.setFullTypeForStream_(r));var t=[],
|
|
2432
|
-
|
|
2433
|
-
|
|
2434
|
-
0<
|
|
2435
|
-
|
|
2436
|
-
r.frameRate=r.frameRate||
|
|
2437
|
-
d==
|
|
2438
|
-
q.hasEnoughInfoToFinalizeStreams_()&&(q.streamsFinalized_?q.finalizeStreams_([
|
|
2439
|
-
shaka.util.Error.Code.OPERATION_ABORTED)return
|
|
2440
|
-
return
|
|
2441
|
+
g=e.join(",");a=this.getClosedCaptions_(a[0],c);b=shaka.util.ManifestParserUtils.guessCodecs(c,b);c=this.createStreamInfo_(d,e,b,c,null,!1,g,null,a,null,!1,null,!1);this.uriToStreamInfosMap_.set(f,c);return c};
|
|
2442
|
+
shaka.hls.HlsParser.prototype.createStreamInfo_=function(a,b,c,d,e,f,g,h,k,l,m,n,p){var q=this,r=this.makeStreamObject_(a,c,d,e,f,g,h,k,l,m,n,p);b.includes(shaka.hls.HlsParser.FAKE_MUXED_URL_)&&(r.isAudioMuxedInVideo=!0,r.mimeType="video/mp2t",this.setFullTypeForStream_(r));var t={stream:r,type:d,redirectUris:[],getUris:function(){},minTimestamp:0,maxTimestamp:0,mediaSequenceToStartTime:new Map,canSkipSegments:!1,canBlockReload:!1,hasEndList:!1,firstSequenceNumber:-1,nextMediaSequence:-1,nextPart:-1,
|
|
2443
|
+
loadedOnce:!1},u=function(){return q.contentSteeringManager_&&1<b.length?q.contentSteeringManager_.getLocations(a):t.redirectUris.concat(shaka.hls.Utils.constructUris([q.masterPlaylistUri_],b,q.globalVariables_))};t.getUris=u;var v=function(z){var B,A,y,C,D,E,F,H,J,K,L,G,M,I,N,P,O,W,Q,S,V,R,T;return $jscomp.asyncExecutePromiseGeneratorProgram(function(X){switch(X.nextAddress){case 1:return B=shaka.util.ManifestParserUtils.ContentType,X.setCatchFinallyBlocks(2),X.yield(z.promise,4);case 4:A=X.yieldResult;
|
|
2444
|
+
if(z.aborted)return X.return();y=A.uri;y!=A.originalUri&&(C=t.getUris(),C.includes(y)||t.redirectUris.push(y));D=q.manifestTextParser_.parsePlaylist(A.data);if(D.type!=shaka.hls.PlaylistType.MEDIA)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_INVALID_PLAYLIST_HIERARCHY);E=shaka.hls.Utils.filterTagsByName(D.tags,"EXT-X-DEFINE");F=q.parseMediaVariables_(E,y);H=!1;(!q.codecInfoInManifest_&&q.config_.hls.disableCodecGuessing||
|
|
2445
|
+
q.needsClosedCaptionsDetection_&&d==B.VIDEO&&!q.config_.hls.disableClosedCaptionsDetection)&&0<D.segments.length&&(q.needsClosedCaptionsDetection_=!1,H=!0);J=!q.codecInfoInManifest_&&q.config_.hls.disableCodecGuessing;K=q.isLive_();return X.yield(q.convertParsedPlaylistIntoStreamInfo_(a,F,D,u,y,c,d,e,f,g,h,k,l,m,n,p,void 0,H,J),5);case 5:L=X.yieldResult;if(z.aborted)return X.return();G=L.stream;q.determineStartTime_(D);q.isLive_()&&!K&&q.changePresentationTimelineToLive_(D);t.minTimestamp=L.minTimestamp;
|
|
2446
|
+
t.maxTimestamp=L.maxTimestamp;t.canSkipSegments=L.canSkipSegments;t.canBlockReload=L.canBlockReload;t.hasEndList=L.hasEndList;t.mediaSequenceToStartTime=L.mediaSequenceToStartTime;t.nextMediaSequence=L.nextMediaSequence;t.nextPart=L.nextPart;t.loadedOnce=!0;r.segmentIndex=G.segmentIndex;r.encrypted=G.encrypted;r.drmInfos=G.drmInfos;r.keyIds=G.keyIds;r.mimeType=G.mimeType;r.bandwidth=r.bandwidth||G.bandwidth;r.codecs=r.codecs||G.codecs;r.closedCaptions=r.closedCaptions||G.closedCaptions;r.width=r.width||
|
|
2447
|
+
G.width;r.height=r.height||G.height;r.hdr=r.hdr||G.hdr;r.colorGamut=r.colorGamut||G.colorGamut;r.frameRate=r.frameRate||G.frameRate;"und"==r.language&&"und"!=G.language&&(r.language=G.language);r.language=r.language||G.language;r.channelsCount=r.channelsCount||G.channelsCount;r.audioSamplingRate=r.audioSamplingRate||G.audioSamplingRate;q.setFullTypeForStream_(r);r.drmInfos.length&&q.playerInterface_.newDrmInfo(r);M=!1;if(!k&&r.closedCaptions||k&&r.closedCaptions&&k.size!=r.closedCaptions.size)M=!0;
|
|
2448
|
+
q.manifest_&&M&&q.playerInterface_.makeTextStreamsForClosedCaptions(q.manifest_);if(d==B.VIDEO||d==B.AUDIO)for(I=$jscomp.makeIterator(q.uriToStreamInfosMap_.values()),N=I.next();!N.done;N=I.next())P=N.value,P.loadedOnce||P.type!=d||(P.stream.mimeType=G.mimeType,q.setFullTypeForStream_(P.stream));d==B.TEXT&&(O=G.segmentIndex.earliestReference())&&O.initSegmentReference&&(r.mimeType="application/mp4",q.setFullTypeForStream_(r));W=shaka.media.QualityObserver.createQualityInfo(r);r.segmentIndex.forEachTopLevelReference(function(Y){Y.initSegmentReference&&
|
|
2449
|
+
(Y.initSegmentReference.mediaQuality=W)});q.hasEnoughInfoToFinalizeStreams_()&&(q.streamsFinalized_?q.finalizeStreams_([t]):(q.streamsFinalized_=!0,Q=Array.from(q.uriToStreamInfosMap_.values()),S=Q.filter(function(Y){return Y.stream.segmentIndex}),q.finalizeStreams_(S),q.determineDuration_(),V=q.getUpdatePlaylistDelay_(),0<V&&q.updatePlaylistTimer_.tickAfter(V)));q.processDateRangeTags_(D.tags,r.type,F,u);q.manifest_&&(q.manifest_.startTime=q.startTime_);X.leaveTryBlock(0);break;case 2:R=X.enterCatchBlock();
|
|
2450
|
+
r.closeSegmentIndex();if(R.code===shaka.util.Error.Code.OPERATION_ABORTED)return X.return();T=q.playerInterface_.disableStream(r);if(!T)throw R;X.jumpToEnd()}})},w=null,x;r.createSegmentIndex=function(){if(w)return w;if(r.isAudioMuxedInVideo){var z=new shaka.media.SegmentIndex([]);r.segmentIndex=z;return Promise.resolve()}x=q.requestManifest_(t.getUris(),!0);return w=new Promise(function(B){B(v(x))})};r.closeSegmentIndex=function(){w&&!r.segmentIndex&&x.abort();r.segmentIndex&&(r.segmentIndex.release(),
|
|
2451
|
+
r.segmentIndex=null);w=null};return t};shaka.hls.HlsParser.prototype.getMinDuration_=function(){for(var a=Infinity,b=$jscomp.makeIterator(this.uriToStreamInfosMap_.values()),c=b.next();!c.done;c=b.next())c=c.value,c.stream.segmentIndex&&"text"!=c.stream.type&&!c.stream.isAudioMuxedInVideo&&(a=Math.min(a,c.maxTimestamp));return a};
|
|
2441
2452
|
shaka.hls.HlsParser.prototype.getLiveDuration_=function(){for(var a=Infinity,b=Infinity,c=$jscomp.makeIterator(this.uriToStreamInfosMap_.values()),d=c.next();!d.done;d=c.next())d=d.value,d.stream.segmentIndex&&"text"!=d.stream.type&&!d.stream.isAudioMuxedInVideo&&(a=Math.min(a,d.maxTimestamp),b=Math.min(b,d.minTimestamp));return a-b};
|
|
2442
2453
|
shaka.hls.HlsParser.prototype.notifySegmentsForStreams_=function(a){var b=[];a=$jscomp.makeIterator(a);for(var c=a.next();!c.done;c=a.next())c=c.value,c.segmentIndex&&c.segmentIndex.forEachTopLevelReference(function(d){b.push(d)});this.presentationTimeline_.notifySegments(b)};
|
|
2443
2454
|
shaka.hls.HlsParser.prototype.finalizeStreams_=function(a){if(!this.isLive_())for(var b=this.getMinDuration_(),c=$jscomp.makeIterator(a),d=c.next();!d.done;d=c.next())d.value.stream.segmentIndex.fit(0,b);this.notifySegmentsForStreams_(a.map(function(f){return f.stream}));c=Array.from(this.uriToStreamInfosMap_.values()).filter(function(f){return f.stream.segmentIndex});var e=shaka.util.ManifestParserUtils.ContentType;b=c.some(function(f){return f.stream.type==e.AUDIO});d=c.some(function(f){return f.stream.type==
|
|
2444
2455
|
e.VIDEO});c=this.isLive_()&&!this.usesProgramDateTime_;b=!this.isLive_()&&this.usesProgramDateTime_&&!(b&&d);this.config_.hls.ignoreManifestProgramDateTime||c||b?this.syncStreamsWithSequenceNumber_(a,c):(this.syncStreamsWithProgramDateTime_(a),0<this.config_.hls.ignoreManifestProgramDateTimeForTypes.length&&this.syncStreamsWithSequenceNumber_(a))};shaka.hls.HlsParser.prototype.ignoreManifestProgramDateTimeFor_=function(a){return this.config_.hls.ignoreManifestProgramDateTime?!0:this.config_.hls.ignoreManifestProgramDateTimeForTypes.includes(a)};
|
|
2445
2456
|
shaka.hls.HlsParser.prototype.hasEnoughInfoToFinalizeStreams_=function(){if(!this.manifest_)return!1;for(var a=[],b=[],c=$jscomp.makeIterator(this.manifest_.variants),d=c.next();!d.done;d=c.next())d=d.value,d.video&&a.push(d.video),d.audio&&b.push(d.audio);return 0<a.length&&!a.some(function(e){return e.segmentIndex})||0<b.length&&!b.some(function(e){return e.segmentIndex})?!1:!0};
|
|
2446
|
-
shaka.hls.HlsParser.prototype.convertParsedPlaylistIntoStreamInfo_=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w){v=void 0===v?!0:v;w=void 0===w?!0:w;var x=this,
|
|
2447
|
-
shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_EMPTY_MEDIA_PLAYLIST);x.determinePresentationType_(c);x.isLive_()&&x.determineLastTargetDuration_(c);A=x.isLive_()?x.mediaSequenceToStartTimeByType_.get(g):new Map;
|
|
2448
|
-
F=
|
|
2449
|
-
shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_KEYFORMATS_NOT_SUPPORTED);O=x.makeStreamObject_(a,f,g,h,k,l,m,n,p,q,r,t);O.encrypted=N&&!
|
|
2450
|
-
"EXT-X-SERVER-CONTROL"))?null!=
|
|
2457
|
+
shaka.hls.HlsParser.prototype.convertParsedPlaylistIntoStreamInfo_=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w){v=void 0===v?!0:v;w=void 0===w?!0:w;var x=this,z,B,A,y,C,D,E,F,H,J,K,L,G,M,I,N,P,O,W,Q,S,V,R,T,X,Y,U,ba,aa;return $jscomp.asyncExecutePromiseGeneratorProgram(function(Z){switch(Z.nextAddress){case 1:z=c.segments||[];B=z.every(function(ca){return shaka.hls.Utils.getFirstTagWithName(ca.tags,"EXT-X-GAP")?!0:!1});if(!z.length||B)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
|
|
2458
|
+
shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_EMPTY_MEDIA_PLAYLIST);x.determinePresentationType_(c);x.isLive_()&&x.determineLastTargetDuration_(c);A=x.isLive_()?x.mediaSequenceToStartTimeByType_.get(g):new Map;y=x.createSegments_(c,A,b,d,g);C=y.segments;D=y.bandwidth;K=J=H=F=E=null;if(!(0<C.length&&v)){Z.jumpTo(2);break}return Z.yield(x.getBasicInfoFromSegments_(C),3);case 3:L=Z.yieldResult,g=L.type,h=L.language,m=L.channelCount,r=L.sampleRate,x.config_.disableText||(n=L.closedCaptions),
|
|
2459
|
+
F=L.height,E=L.width,H=L.videoRange,J=L.colorGamut,K=L.frameRate,w&&(u=L.mimeType,f=L.codecs);case 2:if(u){Z.jumpTo(4);break}return Z.yield(x.guessMimeType_(g,f,C),5);case 5:u=Z.yieldResult,g!=shaka.util.ManifestParserUtils.ContentType.TEXT||f||"application/mp4"!=u||!C[0]||C[0].initSegmentReference||(u="text/vtt");case 4:return Z.yield(x.parseDrmInfo_(c,u,d,b),6);case 6:G=Z.yieldResult;M=G.drmInfos;I=G.keyIds;N=G.encrypted;P=G.aesEncrypted;if(N&&!M.length&&!P)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
|
|
2460
|
+
shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_KEYFORMATS_NOT_SUPPORTED);O=x.makeStreamObject_(a,f,g,h,k,l,m,n,p,q,r,t);O.encrypted=N&&!P;O.drmInfos=M;O.keyIds=I;O.mimeType=u;D&&(O.bandwidth=D);x.setFullTypeForStream_(O);g==shaka.util.ManifestParserUtils.ContentType.VIDEO&&(E||F||H||J)&&x.addVideoAttributes_(O,E,F,K,H,null,J);x.isLive_()&&x.determineLastTargetDuration_(c);W=C[0].startTime;Q=C[C.length-1];S=Q.endTime;V=new shaka.media.SegmentIndex(C);O.segmentIndex=V;T=(R=shaka.hls.Utils.getFirstTagWithName(c.tags,
|
|
2461
|
+
"EXT-X-SERVER-CONTROL"))?null!=R.getAttribute("CAN-SKIP-UNTIL"):!1;X=R?null!=R.getAttribute("CAN-BLOCK-RELOAD"):!1;Y=shaka.hls.Utils.getFirstTagWithNameAsNumber(c.tags,"EXT-X-MEDIA-SEQUENCE",0);U=x.getNextMediaSequenceAndPart_(Y,C);ba=U.nextMediaSequence;aa=U.nextPart;return Z.return({stream:O,type:g,redirectUris:[],getUris:d,minTimestamp:W,maxTimestamp:S,canSkipSegments:T,canBlockReload:X,hasEndList:!1,firstSequenceNumber:-1,nextMediaSequence:ba,nextPart:aa,mediaSequenceToStartTime:A,loadedOnce:!1})}})};
|
|
2451
2462
|
shaka.hls.HlsParser.prototype.getNextMediaSequenceAndPart_=function(a,b){a=a+b.length-1;var c=-1;if(!b.length)return a++,{nextMediaSequence:a,nextPart:c};b=b[b.length-1];var d=b.partialReferences;if(!b.partialReferences.length)return a++,b.hasByterangeOptimization()&&(c=0),{nextMediaSequence:a,nextPart:c};c=d.length-1;d[d.length-1].isPreload()||(a++,c=0);return{nextMediaSequence:a,nextPart:c}};
|
|
2452
2463
|
shaka.hls.HlsParser.prototype.makeStreamObject_=function(a,b,c,d,e,f,g,h,k,l,m,n){a=this.guessMimeTypeBeforeLoading_(c,b)||this.guessMimeTypeFallback_(c);var p=[];if(k){k=$jscomp.makeIterator(k.split(","));for(var q=k.next();!q.done;q=k.next())p.push(q.value)}k=void 0;q=null;c==shaka.util.ManifestParserUtils.ContentType.TEXT?k=p.includes("public.accessibility.transcribes-spoken-dialog")&&p.includes("public.accessibility.describes-music-and-sound")?shaka.util.ManifestParserUtils.TextStreamKind.CLOSED_CAPTION:
|
|
2453
2464
|
shaka.util.ManifestParserUtils.TextStreamKind.SUBTITLE:p.includes("public.accessibility.describes-video")&&(q=shaka.media.ManifestParser.AccessibilityPurpose.VISUALLY_IMPAIRED);p.length||k!==shaka.util.ManifestParserUtils.TextStreamKind.SUBTITLE||p.push(shaka.util.ManifestParserUtils.TextStreamKind.SUBTITLE);b={id:this.globalId_++,originalId:f,groupId:null,createSegmentIndex:function(){return Promise.resolve()},segmentIndex:null,mimeType:a,codecs:b,kind:c==shaka.util.ManifestParserUtils.ContentType.TEXT?
|
|
2454
2465
|
shaka.util.ManifestParserUtils.TextStreamKind.SUBTITLE:void 0,encrypted:!1,drmInfos:[],keyIds:new Set,language:this.getLanguage_(d),originalLanguage:d,label:f,type:c,primary:e,trickModeVideo:null,emsgSchemeIdUris:null,frameRate:void 0,pixelAspectRatio:void 0,width:void 0,height:void 0,bandwidth:void 0,roles:p,forced:l,channelsCount:g,audioSamplingRate:m,spatialAudio:n,closedCaptions:h,hdr:void 0,colorGamut:void 0,videoLayout:void 0,tilesLayout:void 0,accessibilityPurpose:q,external:!1,fastSwitching:!1,
|
|
2455
2466
|
fullMimeTypes:new Set,isAudioMuxedInVideo:!1};this.setFullTypeForStream_(b);return b};
|
|
2456
|
-
shaka.hls.HlsParser.prototype.parseDrmInfo_=function(a,b,c,d){var e=this,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,
|
|
2457
|
-
p.value,f.set(q,m);t=r=!1;u=[];v=new Set;w=$jscomp.makeIterator(f);x=w.next();case 2:if(x.done){
|
|
2458
|
-
b,c,D,d),8);case 8:
|
|
2467
|
+
shaka.hls.HlsParser.prototype.parseDrmInfo_=function(a,b,c,d){var e=this,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,z,B,A,y,C,D,E,F,H,J,K,L,G;return $jscomp.asyncExecutePromiseGeneratorProgram(function(M){switch(M.nextAddress){case 1:f=new Map;if(a.segments)for(g=$jscomp.makeIterator(a.segments),h=g.next();!h.done;h=g.next())if(k=h.value,l=shaka.hls.Utils.filterTagsByName(k.tags,"EXT-X-KEY"),m=null,l.length)for(m=e.getInitSegmentReference_(a,k.tags,c,d),n=$jscomp.makeIterator(l),p=n.next();!p.done;p=n.next())q=
|
|
2468
|
+
p.value,f.set(q,m);t=r=!1;u=[];v=new Set;w=$jscomp.makeIterator(f);x=w.next();case 2:if(x.done){M.jumpTo(4);break}z=x.value;B=$jscomp.makeIterator(z);A=B.next().value;y=B.next().value;C=A;D=y;E=C.getRequiredAttrValue("METHOD");if("NONE"==E){M.jumpTo(3);break}r=!0;F=C.getAttributeValue("KEYFORMAT")||"identity";H=null;if(e.isAesMethod_(E)){t=!0;M.jumpTo(3);break}if("identity"!=F){H=(J=shaka.hls.HlsParser.KEYFORMATS_TO_DRM_PARSERS_.get(F))?J(C,b):null;M.jumpTo(6);break}return M.yield(e.identityDrmParser_(C,
|
|
2469
|
+
b,c,D,d),8);case 8:H=M.yieldResult;case 6:if(H){if(H.keyIds)for(K=$jscomp.makeIterator(H.keyIds),L=K.next();!L.done;L=K.next())G=L.value,v.add(G);u.push(H)}else shaka.log.warning("Unsupported HLS KEYFORMAT",F);case 3:x=w.next();M.jumpTo(2);break;case 4:return M.return({drmInfos:u,keyIds:v,encrypted:r,aesEncrypted:t})}})};
|
|
2459
2470
|
shaka.hls.HlsParser.prototype.parseAESDrmTag_=function(a,b,c,d){var e=this;if(!window.crypto||!window.crypto.subtle)throw shaka.log.alwaysWarn("Web Crypto API is not available to decrypt AES. (Web Crypto only exists in secure origins like https)"),new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.NO_WEB_CRYPTO_API);var f=0,g=a.getAttributeValue("IV","");if(g){var h=shaka.util.Uint8ArrayUtils.fromHex(g.substr(2));if(16!=h.byteLength)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
|
|
2460
2471
|
shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.AES_128_INVALID_IV_LENGTH);}else f=shaka.hls.Utils.getFirstTagWithNameAsNumber(b.tags,"EXT-X-MEDIA-SEQUENCE",0);var k=shaka.hls.Utils.constructSegmentUris(c(),a.getRequiredAttrValue("URI"),d),l=k.sort().join("");b=a.toString()+"-"+f+"-"+l;if(!this.aesKeyInfoMap_.has(b)){var m={bitsKey:128,blockCipherMode:"CBC",iv:h,firstMediaSequenceNumber:f};switch(a.getRequiredAttrValue("METHOD")){case "AES-256":m.bitsKey=256;break;case "AES-256-CTR":m.bitsKey=
|
|
2461
2472
|
256,m.blockCipherMode="CTR"}m.fetchKey=function(){var n,p,q,r,t;return $jscomp.asyncExecutePromiseGeneratorProgram(function(u){if(1==u.nextAddress)return e.aesKeyMap_.has(l)||(n=shaka.net.NetworkingEngine.RequestType.KEY,p=shaka.net.NetworkingEngine.makeRequest(k,e.config_.retryParameters),q=e.makeNetworkRequest_(p,n).promise,e.aesKeyMap_.set(l,q)),u.yield(e.aesKeyMap_.get(l),2);if(3!=u.nextAddress){r=u.yieldResult;if(!r.data||r.data.byteLength!=m.bitsKey/8)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
|
|
@@ -2470,30 +2481,30 @@ b+=Math.ceil(Number(e[0]))):b+=this.maxTargetDuration_}}this.startTime_&&0>this.
|
|
|
2470
2481
|
shaka.hls.HlsParser.prototype.getInitSegmentReference_=function(a,b,c,d){var e=shaka.hls.Utils.getFirstTagWithName(b,"EXT-X-MAP");if(!e)return null;var f=e.getRequiredAttrValue("URI"),g=shaka.hls.Utils.constructSegmentUris(c(),f,d);f=[g.toString(),e.getAttributeValue("BYTERANGE","")].join("-");if(!this.mapTagToInitSegmentRefMap_.has(f)){var h=void 0,k=null;b=$jscomp.makeIterator(b);for(var l=b.next();!l.done;l=b.next())l=l.value,"EXT-X-KEY"==l.name?this.isAesMethod_(l.getRequiredAttrValue("METHOD"))&&
|
|
2471
2482
|
l.id<e.id&&(h=this.parseAESDrmTag_(l,a,c,d)):"EXT-X-BYTERANGE"==l.name&&l.id<e.id&&(k=l);a=this.createInitSegmentReference_(g,e,k,h);this.mapTagToInitSegmentRefMap_.set(f,a)}return this.mapTagToInitSegmentRefMap_.get(f)};
|
|
2472
2483
|
shaka.hls.HlsParser.prototype.createInitSegmentReference_=function(a,b,c,d){var e=0,f=null;b=b.getAttributeValue("BYTERANGE");!b&&c&&(b=c.value);b&&(e=b.split("@"),f=Number(e[0]),e=Number(e[1]),f=e+f-1,d&&(c=f+1-e,c%16&&(f+=16-c%16)));return new shaka.media.InitSegmentReference(function(){return a},e,f,null,null,null,d)};
|
|
2473
|
-
shaka.hls.HlsParser.prototype.createSegmentReference_=function(a,b,c,d,e,f,g,h,k){var l=shaka.hls.HlsParser;f=function(
|
|
2484
|
+
shaka.hls.HlsParser.prototype.createSegmentReference_=function(a,b,c,d,e,f,g,h,k){var l=shaka.hls.HlsParser;f=function(I){I=(new goog.Uri(I)).getPath().split(".").pop();var N=l.EXTENSION_MAP_BY_CONTENT_TYPE_.get(g).get(I);N||(N=l.RAW_FORMATS_TO_MIME_TYPES_.get(I));return N};var m=c.tags,n=shaka.hls.Utils.getFirstTagWithName(m,"EXTINF"),p=0,q=0,r=null;c.partialSegments.length&&(this.manifest_.isLowLatency=!0);var t=null;if(!this.config_.hls.ignoreManifestProgramDateTime){var u=shaka.hls.Utils.getFirstTagWithName(m,
|
|
2474
2485
|
"EXT-X-PROGRAM-DATE-TIME");u&&u.value&&(t=shaka.util.TXml.parseDate(u.value),goog.asserts.assert(null!=t,"EXT-X-PROGRAM-DATE-TIME format not valid"),this.usesProgramDateTime_=!0)}var v=shaka.media.SegmentReference.Status.AVAILABLE;shaka.hls.Utils.getFirstTagWithName(m,"EXT-X-GAP")&&(this.manifest_.gapCount++,v=shaka.media.SegmentReference.Status.MISSING);if(!n){if(0==c.partialSegments.length)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_REQUIRED_TAG_MISSING,
|
|
2475
|
-
"EXTINF");if(!this.lowLatencyMode_)return null}var w=[];u=!1;var x=null,
|
|
2476
|
-
(K=(K=D.getAttributeValue("BYTERANGE-START"))?Number(K):0,(E=D.getAttributeValue("BYTERANGE-LENGTH"))?
|
|
2477
|
-
function(
|
|
2478
|
-
(F.initSegmentReference=null);w.push(F);A&&(A+=
|
|
2479
|
-
m=shaka.hls.Utils.getFirstTagWithName(m,"EXT-X-TILES"))&&(b=m.getRequiredAttrValue("LAYOUT"),(m=m.getAttributeValue("DURATION"))&&(
|
|
2480
|
-
!0,a.markAsByterangeOptimization(),
|
|
2481
|
-
shaka.hls.HlsParser.prototype.processDateRangeTags_=function(a,b,c,d){var e=shaka.util.ManifestParserUtils.ContentType;if(b==e.VIDEO||b==e.AUDIO){e=shaka.hls.Utils;var f=this.presentationTimeline_.getInitialProgramDateTime();if(f&&!this.ignoreManifestProgramDateTimeFor_(b))for(a=shaka.hls.Utils.filterTagsByName(a,"EXT-X-DATERANGE"),a=a.filter(function(F){return null!=F.getAttribute("START-DATE")}).sort(function(F,
|
|
2482
|
-
|
|
2483
|
-
g.getAttributeValue("PLANNED-DURATION");if(r){var t=parseFloat(r);isNaN(t)||(n=m+t);if(0>l-f+t)continue}}var u=g.getAttributeValue("CLASS")||"com.apple.quicktime.HLS",v="YES"==g.getAttributeValue("END-ON-NEXT");if(null==n&&v){for(var w=b+1;w<a.length;w++){var x=a[w].getAttributeValue("CLASS")||"com.apple.quicktime.HLS";if(u==x){var
|
|
2484
|
-
"DURATION","END-ON-NEXT"];for(var A=[],
|
|
2486
|
+
"EXTINF");if(!this.lowLatencyMode_)return null}var w=[];u=!1;var x=null,z=!1,B=!1;if(this.lowLatencyMode_&&c.partialSegments.length){p=a&&window.ReadableStream&&this.config_.hls.allowLowLatencyByteRangeOptimization;for(var A=t,y={},C=0;C<c.partialSegments.length;y={uris$jscomp$25:void 0,pUri:void 0},C++){var D=c.partialSegments[C],E=0==C?b:w[w.length-1],F=0==C?d:E.endTime,H=Number(D.getAttributeValue("DURATION"))||this.partialTargetDuration_;if(H){var J=F+H,K=0,L=null;"EXT-X-PRELOAD-HINT"==D.name?
|
|
2487
|
+
(K=(K=D.getAttributeValue("BYTERANGE-START"))?Number(K):0,(E=D.getAttributeValue("BYTERANGE-LENGTH"))?L=K+Number(E)-1:K&&(L=Number.MAX_SAFE_INTEGER)):(K=D.getAttributeValue("BYTERANGE"),L=$jscomp.makeIterator(this.parseByteRange_(E,K)),K=L.next().value,L=L.next().value);y.pUri=D.getAttributeValue("URI");if(y.pUri){E=shaka.media.SegmentReference.Status.AVAILABLE;"YES"==D.getAttributeValue("GAP")&&(this.manifest_.gapCount++,E=shaka.media.SegmentReference.Status.MISSING,z=!0);y.uris$jscomp$25=null;var G=
|
|
2488
|
+
function(I){return function(){null==I.uris$jscomp$25&&(goog.asserts.assert(I.pUri,"Partial uri should be defined!"),I.uris$jscomp$25=shaka.hls.Utils.constructSegmentUris(h(),I.pUri,e));return I.uris$jscomp$25}}(y);p&&0<=K&&null!=L&&(x=G,u=!0);F=new shaka.media.SegmentReference(F,J,G,K,L,a,0,0,Infinity,[],"",null,A,E,k);"EXT-X-PRELOAD-HINT"==D.name&&(F.markAsPreload(),B=!0);"YES"!=D.getAttributeValue("INDEPENDENT")&&0<C&&F.markAsNonIndependent();if(y=f(y.pUri))F.mimeType=y,l.MIME_TYPES_WITHOUT_INIT_SEGMENT_.has(y)&&
|
|
2489
|
+
(F.initSegmentReference=null);w.push(F);A&&(A+=H)}}}}if(n){n=n.value.split(",");n=Number(n[0]);if(0==n)return null;p=d+n}else if(w.length)p=w[w.length-1].endTime;else return null;u&&(z||0!=w[0].startByte?(u=!1,x=null):w=[]);(z=shaka.hls.Utils.getFirstTagWithName(m,"EXT-X-BYTERANGE"))?(r=$jscomp.makeIterator(this.parseByteRange_(b,z.value)),q=r.next().value,r=r.next().value):w.length&&(q=w[0].startByte,r=w[w.length-1].endByte);b="";z=null;g==shaka.util.ManifestParserUtils.ContentType.IMAGE&&(b="1x1",
|
|
2490
|
+
m=shaka.hls.Utils.getFirstTagWithName(m,"EXT-X-TILES"))&&(b=m.getRequiredAttrValue("LAYOUT"),(m=m.getAttributeValue("DURATION"))&&(z=Number(m)));var M=null;a=new shaka.media.SegmentReference(d,p,function(){if(x)return x();null==M&&(M=shaka.hls.Utils.constructSegmentUris(h(),c.verbatimSegmentUri,e));return M||[]},q,r,a,0,0,Infinity,w,b,z,t,v,k,0<w.length&&!!c.verbatimSegmentUri);if(d=f(c.verbatimSegmentUri))a.mimeType=d,l.MIME_TYPES_WITHOUT_INIT_SEGMENT_.has(d)&&(a.initSegmentReference=null);u&&(this.lowLatencyByterangeOptimization_=
|
|
2491
|
+
!0,a.markAsByterangeOptimization(),B&&a.markAsPreload());return a};shaka.hls.HlsParser.prototype.parseByteRange_=function(a,b){var c=0,d=null;b&&(c=b.split("@"),b=Number(c[0]),c[1]?c=Number(c[1]):(goog.asserts.assert(a,"Cannot refer back to previous HLS segment!"),c=a.endByte+1),d=c+b-1);return[c,d]};
|
|
2492
|
+
shaka.hls.HlsParser.prototype.processDateRangeTags_=function(a,b,c,d){var e=shaka.util.ManifestParserUtils.ContentType;if(b==e.VIDEO||b==e.AUDIO){e=shaka.hls.Utils;var f=this.presentationTimeline_.getInitialProgramDateTime();if(f&&!this.ignoreManifestProgramDateTimeFor_(b))for(a=shaka.hls.Utils.filterTagsByName(a,"EXT-X-DATERANGE"),a=a.filter(function(F){return null!=F.getAttribute("START-DATE")}).sort(function(F,H){F=F.getRequiredAttrValue("START-DATE");H=H.getRequiredAttrValue("START-DATE");return F<
|
|
2493
|
+
H?-1:F>H?1:0}),b=0;b<a.length;b++){var g=a[b];try{var h=g.getRequiredAttrValue("ID");if(!this.dateRangeIdsEmitted_.has(h)){var k=g.getRequiredAttrValue("START-DATE"),l=shaka.util.TXml.parseDate(k);if(!isNaN(l)){goog.asserts.assert(null!=l,"Start date should not be null!");var m=Math.max(0,l-f),n=null,p=g.getAttributeValue("END-DATE");if(p){var q=shaka.util.TXml.parseDate(p);if(!isNaN(q)&&(goog.asserts.assert(null!=q,"End date should not be null!"),n=q-f,0>n))continue}if(null==n){var r=g.getAttributeValue("DURATION")||
|
|
2494
|
+
g.getAttributeValue("PLANNED-DURATION");if(r){var t=parseFloat(r);isNaN(t)||(n=m+t);if(0>l-f+t)continue}}var u=g.getAttributeValue("CLASS")||"com.apple.quicktime.HLS",v="YES"==g.getAttributeValue("END-ON-NEXT");if(null==n&&v){for(var w=b+1;w<a.length;w++){var x=a[w].getAttributeValue("CLASS")||"com.apple.quicktime.HLS";if(u==x){var z=a[w].getRequiredAttrValue("START-DATE"),B=shaka.util.TXml.parseDate(z);if(!isNaN(B)&&B&&B>l){n=Math.max(0,B-f);break}}}if(null==n)continue}w=["CLASS","START-DATE","END-DATE",
|
|
2495
|
+
"DURATION","END-ON-NEXT"];for(var A=[],y=$jscomp.makeIterator(g.attributes),C=y.next();!C.done;C=y.next()){var D=C.value;if(!w.includes(D.name)){var E=e.variableSubstitution(D.value,c);if("X-ASSET-URI"==D.name||"X-ASSET-LIST"==D.name)E=e.constructSegmentUris(d(),D.value,c)[0];A.push({key:D.name,description:"",data:E,mimeType:null,pictureType:null})}}if(1<A.length)this.playerInterface_.onMetadata(u,m,n,A);this.dateRangeIdsEmitted_.add(h)}}}catch(F){shaka.log.warning("Ignoring DATERANGE with errors",
|
|
2485
2496
|
g.toString())}}}};
|
|
2486
2497
|
shaka.hls.HlsParser.prototype.createSegments_=function(a,b,c,d,e){var f=a.segments;goog.asserts.assert(f.length,"Playlist should have segments!");var g=void 0,h=shaka.hls.Utils.getFirstTagWithNameAsNumber(a.tags,"EXT-X-DISCONTINUITY-SEQUENCE",-1),k=shaka.hls.Utils.getFirstTagWithNameAsNumber(a.tags,"EXT-X-MEDIA-SEQUENCE",0),l=shaka.hls.Utils.getFirstTagWithName(a.tags,"EXT-X-SKIP"),m=l?Number(l.getAttributeValue("SKIPPED-SEGMENTS")):0,n=k+m,p=0;this.isLive_()&&b.has(n)&&(p=b.get(n));0===p&&this.presentationType_==
|
|
2487
2498
|
shaka.hls.HlsParser.PresentationType_.LIVE&&0<b.size&&!b.has(n)&&null!=this.presentationTimeline_.getPresentationStartTime()&&(p=this.presentationTimeline_.getSegmentAvailabilityStart());var q=[],r=null;l=[];for(var t=0;t<f.length;t++){var u=f[t],v=0==t?p:r.endTime;n=k+m+t;shaka.hls.Utils.getFirstTagWithName(u.tags,"EXT-X-DISCONTINUITY")&&h++;var w=$jscomp.makeIterator(u.tags);for(var x=w.next();!x.done;x=w.next())x=x.value,"EXT-X-KEY"==x.name&&(g=this.isAesMethod_(x.getRequiredAttrValue("METHOD"))?
|
|
2488
|
-
this.parseAESDrmTag_(x,a,d,c):void 0);b.set(n,v);w=this.getInitSegmentReference_(a,u.tags,d,c);if(v=this.createSegmentReference_(w,r,u,v,c,a,e,d,g))(r=shaka.hls.Utils.getFirstTagWithNameAsNumber(u.tags,"EXT-X-BITRATE"))?l.push({bitrate:r,duration:v.endTime-v.startTime}):l.length&&(r=l.pop(),r.duration+=v.endTime-v.startTime,l.push(r)),r=v,v.discontinuitySequence=h,this.ignoreManifestProgramDateTimeFor_(e)&&null!=this.minSequenceNumber_&&n<this.minSequenceNumber_||q.push(v)}a=void 0;l.length&&(a=l.reduce(function(
|
|
2489
|
-
|
|
2490
|
-
|
|
2499
|
+
this.parseAESDrmTag_(x,a,d,c):void 0);b.set(n,v);w=this.getInitSegmentReference_(a,u.tags,d,c);if(v=this.createSegmentReference_(w,r,u,v,c,a,e,d,g))(r=shaka.hls.Utils.getFirstTagWithNameAsNumber(u.tags,"EXT-X-BITRATE"))?l.push({bitrate:r,duration:v.endTime-v.startTime}):l.length&&(r=l.pop(),r.duration+=v.endTime-v.startTime,l.push(r)),r=v,v.discontinuitySequence=h,this.ignoreManifestProgramDateTimeFor_(e)&&null!=this.minSequenceNumber_&&n<this.minSequenceNumber_||q.push(v)}a=void 0;l.length&&(a=l.reduce(function(z,
|
|
2500
|
+
B){return z+B.duration},0),a=Math.round(l.reduce(function(z,B){return z+B.bitrate*B.duration},0)/a*1E3));if(l=q.some(function(z){return null!=z.syncTime}))for(b={},c=0;c<q.length;b={forwardI:void 0,forwardAdd:void 0,backwardI:void 0,reference$jscomp$46:void 0,backwardAdd:void 0},c++)if(b.reference$jscomp$46=q[c],null==b.reference$jscomp$46.syncTime)for(b.forwardAdd=0,b.forwardI=c,d=function(z){return function(){var B=q[z.forwardI];if(B){if(null!=B.syncTime)return B.syncTime+z.forwardAdd;z.forwardAdd-=
|
|
2501
|
+
B.endTime-B.startTime;z.forwardI+=1}return null}}(b),b.backwardAdd=0,b.backwardI=c,f=function(z){return function(){var B=q[z.backwardI];if(B){B!=z.reference$jscomp$46&&(z.backwardAdd+=B.endTime-B.startTime);if(null!=B.syncTime)return B.syncTime+z.backwardAdd;--z.backwardI}return null}}(b);null==b.reference$jscomp$46.syncTime;)b.reference$jscomp$46.syncTime=f(),null==b.reference$jscomp$46.syncTime&&(b.reference$jscomp$46.syncTime=d());if(l)for(b=$jscomp.makeIterator(q),c=b.next();!c.done;c=b.next())for(d=
|
|
2491
2502
|
c.value,c=d.syncTime,d=$jscomp.makeIterator(d.partialReferences),f=d.next();!f.done;f=d.next())f=f.value,f.syncTime=c,c+=f.endTime-f.startTime;b=this.lowestSyncTime_;if(l&&Infinity!=b&&!this.ignoreManifestProgramDateTimeFor_(e))for(e=$jscomp.makeIterator(q),l=e.next();!l.done;l=e.next())l.value.syncAgainst(b);return{segments:q,bandwidth:a}};
|
|
2492
2503
|
shaka.hls.HlsParser.prototype.guessMimeTypeBeforeLoading_=function(a,b){if(a==shaka.util.ManifestParserUtils.ContentType.TEXT){if("vtt"==b||"wvtt"==b)return"text/vtt";if(b&&""!==b)return"application/mp4"}return a!=shaka.util.ManifestParserUtils.ContentType.IMAGE||b&&"jpeg"!=b?a==shaka.util.ManifestParserUtils.ContentType.AUDIO&&"mp4a.40.34"==b?"audio/mpeg":"mjpg"==b?"application/mp4":null:"image/jpeg"};
|
|
2493
|
-
shaka.hls.HlsParser.prototype.guessMimeTypeFallback_=function(a){return a==shaka.util.ManifestParserUtils.ContentType.TEXT?"text/vtt":shaka.hls.HlsParser.EXTENSION_MAP_BY_CONTENT_TYPE_
|
|
2494
|
-
shaka.hls.HlsParser.prototype.guessMimeType_=function(a,b,c){var d=this,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w;return $jscomp.asyncExecutePromiseGeneratorProgram(function(x){switch(x.nextAddress){case 1:e=shaka.hls.HlsParser;f=shaka.net.NetworkingEngine.RequestType.SEGMENT;g=d.getAvailableSegment_(c);h=g.segment;if(h.status==shaka.media.SegmentReference.Status.MISSING)return x.return(d.guessMimeTypeFallback_(a));k=h.getUris();l=new goog.Uri(k[0]);m=l.getPath().split(".").pop();n=e.EXTENSION_MAP_BY_CONTENT_TYPE_
|
|
2495
|
-
if((p=n
|
|
2496
|
-
shaka.util.Error.Code.BAD_HTTP_STATUS){x.jumpTo(3);break}t.method="GET";return x.yield(d.makeNetworkRequest_(t,f,{type:r}).promise,6);case 6:w=x.yieldResult,q=w.headers["content-type"];case 3:return q?x.return(q.toLowerCase().split(";")[0]):x.return(d.guessMimeTypeFallback_(a))}})};
|
|
2504
|
+
shaka.hls.HlsParser.prototype.guessMimeTypeFallback_=function(a){return a==shaka.util.ManifestParserUtils.ContentType.TEXT?"text/vtt":shaka.hls.HlsParser.EXTENSION_MAP_BY_CONTENT_TYPE_.get(a).get("mp4")};shaka.hls.HlsParser.prototype.getAvailableSegment_=function(a){goog.asserts.assert(a.length,"Should have segments!");for(var b=this.isLive_()?Math.trunc((a.length-1)/2):0,c=a[b];c.getStatus()==shaka.media.SegmentReference.Status.MISSING&&b+1<a.length;)b++,c=a[b];return{segment:c,segmentIndex:b}};
|
|
2505
|
+
shaka.hls.HlsParser.prototype.guessMimeType_=function(a,b,c){var d=this,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w;return $jscomp.asyncExecutePromiseGeneratorProgram(function(x){switch(x.nextAddress){case 1:e=shaka.hls.HlsParser;f=shaka.net.NetworkingEngine.RequestType.SEGMENT;g=d.getAvailableSegment_(c);h=g.segment;if(h.status==shaka.media.SegmentReference.Status.MISSING)return x.return(d.guessMimeTypeFallback_(a));k=h.getUris();l=new goog.Uri(k[0]);m=l.getPath().split(".").pop();n=e.EXTENSION_MAP_BY_CONTENT_TYPE_.get(a);
|
|
2506
|
+
if((p=n.get(m))||(p=e.RAW_FORMATS_TO_MIME_TYPES_.get(m))||(p=d.guessMimeTypeBeforeLoading_(a,b)))return x.return(p);r=shaka.net.NetworkingEngine.AdvancedRequestType.MEDIA_SEGMENT;t=shaka.net.NetworkingEngine.makeRequest(k,d.config_.retryParameters);x.setCatchFinallyBlocks(2);t.method="HEAD";return x.yield(d.makeNetworkRequest_(t,f,{type:r}).promise,4);case 4:u=x.yieldResult;q=u.headers["content-type"];x.leaveTryBlock(3);break;case 2:v=x.enterCatchBlock();if(!v||v.code!=shaka.util.Error.Code.HTTP_ERROR&&
|
|
2507
|
+
v.code!=shaka.util.Error.Code.BAD_HTTP_STATUS){x.jumpTo(3);break}t.method="GET";return x.yield(d.makeNetworkRequest_(t,f,{type:r}).promise,6);case 6:w=x.yieldResult,q=w.headers["content-type"];case 3:return q?x.return(q.toLowerCase().split(";")[0]):x.return(d.guessMimeTypeFallback_(a))}})};
|
|
2497
2508
|
shaka.hls.HlsParser.prototype.getRequiredTag_=function(a,b){a=shaka.hls.Utils.getFirstTagWithName(a,b);if(!a)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_REQUIRED_TAG_MISSING,b);return a};shaka.hls.HlsParser.prototype.addVideoAttributes_=function(a,b,c,d,e,f,g){a&&(a.width=Number(b)||void 0,a.height=Number(c)||void 0,a.frameRate=Number(d)||void 0,a.hdr=e||void 0,a.videoLayout=f||void 0,a.colorGamut=g||void 0)};
|
|
2498
2509
|
shaka.hls.HlsParser.prototype.requestManifest_=function(a,b){var c=shaka.net.NetworkingEngine.RequestType.MANIFEST;a=shaka.net.NetworkingEngine.makeRequest(a,this.config_.retryParameters);return this.makeNetworkRequest_(a,c,{type:b?shaka.net.NetworkingEngine.AdvancedRequestType.MEDIA_PLAYLIST:shaka.net.NetworkingEngine.AdvancedRequestType.MASTER_PLAYLIST})};
|
|
2499
2510
|
shaka.hls.HlsParser.prototype.onUpdate_=function(){var a=this,b,c,d,e,f,g;return $jscomp.asyncExecutePromiseGeneratorProgram(function(h){switch(h.nextAddress){case 1:shaka.log.info("Updating manifest...");goog.asserts.assert(0<a.getUpdatePlaylistDelay_(),"We should only call |onUpdate_| when we are suppose to be updating.");if(!a.playerInterface_)return h.return();h.setCatchFinallyBlocks(2);b=Date.now();return h.yield(a.update(),4);case 4:c=Date.now();a.isLive_()&&(d=(c-b)/1E3,a.averageUpdateDuration_.sample(1,
|
|
@@ -2501,7 +2512,7 @@ d),e=0<a.config_.hls.updatePeriod?a.config_.hls.updatePeriod:a.getUpdatePlaylist
|
|
|
2501
2512
|
a.playerInterface_.onError(g);a.updatePlaylistTimer_.tickAfter(.1);case 3:if(!a.playerInterface_)return h.return();a.playerInterface_.onManifestUpdated();h.jumpToEnd()}})};shaka.hls.HlsParser.prototype.isLive_=function(){return this.presentationType_!=shaka.hls.HlsParser.PresentationType_.VOD};shaka.hls.HlsParser.prototype.getUpdatePlaylistDelay_=function(){return this.lastTargetDuration_};
|
|
2502
2513
|
shaka.hls.HlsParser.prototype.setPresentationType_=function(a){this.presentationType_=a;this.presentationTimeline_&&this.presentationTimeline_.setStatic(!this.isLive_());this.isLive_()||this.updatePlaylistTimer_.stop()};
|
|
2503
2514
|
shaka.hls.HlsParser.prototype.makeNetworkRequest_=function(a,b,c){if(!this.operationManager_)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.PLAYER,shaka.util.Error.Code.OPERATION_ABORTED);c||(c={});c.isPreload=this.isPreloadFn_();a=this.playerInterface_.networkingEngine.request(b,a,c);this.operationManager_.manage(a);return a};shaka.hls.HlsParser.prototype.isAesMethod_=function(a){return"AES-128"==a||"AES-256"==a||"AES-256-CTR"==a};
|
|
2504
|
-
shaka.hls.HlsParser.fairplayDrmParser_=function(a,b){if("video/mp2t"==b)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_MSE_ENCRYPTED_MP2T_NOT_SUPPORTED);if(shaka.util.Platform.isMediaKeysPolyfilled())throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_MSE_ENCRYPTED_LEGACY_APPLE_MEDIA_KEYS_NOT_SUPPORTED);b=a.getRequiredAttrValue("METHOD");var c=["SAMPLE-AES",
|
|
2515
|
+
shaka.hls.HlsParser.fairplayDrmParser_=function(a,b){if("video/mp2t"==b)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_MSE_ENCRYPTED_MP2T_NOT_SUPPORTED);if(shaka.util.Platform.isMediaKeysPolyfilled("apple"))throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_MSE_ENCRYPTED_LEGACY_APPLE_MEDIA_KEYS_NOT_SUPPORTED);b=a.getRequiredAttrValue("METHOD");var c=["SAMPLE-AES",
|
|
2505
2516
|
"SAMPLE-AES-CTR"];if(!c.includes(b))return shaka.log.error("FairPlay in HLS is only supported with [",c.join(", "),"], not",b),null;c="cenc";"SAMPLE-AES"==b&&(c="cbcs");return shaka.util.ManifestParserUtils.createDrmInfo("com.apple.fps",c,[{initDataType:"sinf",initData:new Uint8Array(0),keyId:null}],a.getRequiredAttrValue("URI"))};
|
|
2506
2517
|
shaka.hls.HlsParser.widevineDrmParser_=function(a){var b=a.getRequiredAttrValue("METHOD"),c=["SAMPLE-AES","SAMPLE-AES-CTR"];if(!c.includes(b))return shaka.log.error("Widevine in HLS is only supported with [",c.join(", "),"], not",b),null;c="cenc";"SAMPLE-AES"==b&&(c="cbcs");b=a.getRequiredAttrValue("URI");b=shaka.net.DataUriPlugin.parseRaw(b.split("?")[0]);b=shaka.util.BufferUtils.toUint8(b.data);c=shaka.util.ManifestParserUtils.createDrmInfo("com.widevine.alpha",c,[{initDataType:"cenc",initData:b}]);
|
|
2507
2518
|
if(a=a.getAttributeValue("KEYID"))a=a.toLowerCase(),goog.asserts.assert(a.startsWith("0x"),"Incorrect KEYID format!"),c.keyIds=new Set([a.substr(2)]);return c};
|
|
@@ -2509,15 +2520,16 @@ shaka.hls.HlsParser.playreadyDrmParser_=function(a){var b=a.getRequiredAttrValue
|
|
|
2509
2520
|
b,d,0);c=shaka.util.ManifestParserUtils.createDrmInfo("com.microsoft.playready",c,[{initDataType:"cenc",initData:b}]);if(a=shaka.util.TXml.parseXmlString(["<PLAYREADY>",shaka.util.Uint8ArrayUtils.toBase64(a),"</PLAYREADY>"].join("\n")))c.licenseServerUri=shaka.drm.PlayReady.getLicenseUrl(a);return c};
|
|
2510
2521
|
shaka.hls.HlsParser.wiseplayDrmParser_=function(a){var b=a.getRequiredAttrValue("METHOD"),c=["SAMPLE-AES","SAMPLE-AES-CTR"];if(!c.includes(b))return shaka.log.error("WisePlay in HLS is only supported with [",c.join(", "),"], not",b),null;c="cenc";"SAMPLE-AES"==b&&(c="cbcs");b=a.getRequiredAttrValue("URI");b=shaka.net.DataUriPlugin.parseRaw(b.split("?")[0]);b=shaka.util.BufferUtils.toUint8(b.data);c=shaka.util.ManifestParserUtils.createDrmInfo("com.huawei.wiseplay",c,[{initDataType:"cenc",initData:b}]);
|
|
2511
2522
|
if(a=a.getAttributeValue("KEYID"))a=a.toLowerCase(),goog.asserts.assert(a.startsWith("0x"),"Incorrect KEYID format!"),c.keyIds=new Set([a.substr(2)]);return c};
|
|
2512
|
-
shaka.hls.HlsParser.prototype.identityDrmParser_=function(a,b,c,d,e){var f=this,g,h,k,l,m,n,p,q,r,t,u,v,w,x,
|
|
2513
|
-
shaka.util.Error.Code.HLS_MSE_ENCRYPTED_LEGACY_APPLE_MEDIA_KEYS_NOT_SUPPORTED);g=a.getRequiredAttrValue("METHOD");h=["SAMPLE-AES","SAMPLE-AES-CTR"];if(!h.includes(g))return shaka.log.error("Identity (ClearKey) in HLS is only supported with [",h.join(", "),"], not",g),
|
|
2514
|
-
|
|
2515
|
-
d.getStartByte(),d.getEndByte(),f.config_.retryParameters);w=shaka.net.NetworkingEngine.RequestType.SEGMENT;x=shaka.net.NetworkingEngine.AdvancedRequestType.INIT_SEGMENT;return
|
|
2516
|
-
goog.exportSymbol("shaka.hls.HlsParser",shaka.hls.HlsParser);shaka.hls.HlsParser.RAW_FORMATS_TO_MIME_TYPES_=
|
|
2517
|
-
shaka.hls.HlsParser.VIDEO_EXTENSIONS_TO_MIME_TYPES_=
|
|
2518
|
-
shaka.hls.HlsParser.
|
|
2519
|
-
shaka.hls.HlsParser.
|
|
2520
|
-
shaka.
|
|
2523
|
+
shaka.hls.HlsParser.prototype.identityDrmParser_=function(a,b,c,d,e){var f=this,g,h,k,l,m,n,p,q,r,t,u,v,w,x,z,B,A;return $jscomp.asyncExecutePromiseGeneratorProgram(function(y){switch(y.nextAddress){case 1:if("video/mp2t"==b)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_MSE_ENCRYPTED_MP2T_NOT_SUPPORTED);if(shaka.util.Platform.isMediaKeysPolyfilled("apple"))throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,
|
|
2524
|
+
shaka.util.Error.Code.HLS_MSE_ENCRYPTED_LEGACY_APPLE_MEDIA_KEYS_NOT_SUPPORTED);g=a.getRequiredAttrValue("METHOD");h=["SAMPLE-AES","SAMPLE-AES-CTR"];if(!h.includes(g))return shaka.log.error("Identity (ClearKey) in HLS is only supported with [",h.join(", "),"], not",g),y.return(null);k=shaka.hls.Utils.constructSegmentUris(c(),a.getRequiredAttrValue("URI"),e);if(k[0].startsWith("data:text/plain;base64,")){l=shaka.util.Uint8ArrayUtils.toHex(shaka.util.Uint8ArrayUtils.fromBase64(k[0].split("data:text/plain;base64,").pop()));
|
|
2525
|
+
y.jumpTo(2);break}m=k.sort().join("");f.identityKeyMap_.has(m)||(n=shaka.net.NetworkingEngine.RequestType.KEY,p=shaka.net.NetworkingEngine.makeRequest(k,f.config_.retryParameters),q=f.makeNetworkRequest_(p,n).promise,f.identityKeyMap_.set(m,q));return y.yield(f.identityKeyMap_.get(m),3);case 3:r=y.yieldResult,l=shaka.util.Uint8ArrayUtils.toHex(r.data);case 2:t="00000000000000000000000000000000";if(!d){y.jumpTo(4);break}if(f.identityKidMap_.has(d)){u=f.identityKidMap_.get(d);y.jumpTo(5);break}v=shaka.util.Networking.createSegmentRequest(d.getUris(),
|
|
2526
|
+
d.getStartByte(),d.getEndByte(),f.config_.retryParameters);w=shaka.net.NetworkingEngine.RequestType.SEGMENT;x=shaka.net.NetworkingEngine.AdvancedRequestType.INIT_SEGMENT;return y.yield(f.makeNetworkRequest_(v,w,{type:x}).promise,6);case 6:z=y.yieldResult,u=shaka.media.SegmentUtils.getDefaultKID(z.data),f.identityKidMap_.set(d,u);case 5:u&&(t=u);case 4:return B=new Map,B.set(t,l),A="cenc","SAMPLE-AES"==g&&(A="cbcs"),y.return(shaka.util.ManifestParserUtils.createDrmInfoFromClearKeys(B,A))}})};
|
|
2527
|
+
goog.exportSymbol("shaka.hls.HlsParser",shaka.hls.HlsParser);shaka.hls.HlsParser.RAW_FORMATS_TO_MIME_TYPES_=(new Map).set("aac","audio/aac").set("ac3","audio/ac3").set("ec3","audio/ec3").set("mp3","audio/mpeg");shaka.hls.HlsParser.AUDIO_EXTENSIONS_TO_MIME_TYPES_=(new Map).set("mp4","audio/mp4").set("mp4a","audio/mp4").set("m4s","audio/mp4").set("m4i","audio/mp4").set("m4a","audio/mp4").set("m4f","audio/mp4").set("cmfa","audio/mp4").set("ts","video/mp2t").set("tsa","video/mp2t");
|
|
2528
|
+
shaka.hls.HlsParser.VIDEO_EXTENSIONS_TO_MIME_TYPES_=(new Map).set("mp4","video/mp4").set("mp4v","video/mp4").set("m4s","video/mp4").set("m4i","video/mp4").set("m4v","video/mp4").set("m4f","video/mp4").set("cmfv","video/mp4").set("ts","video/mp2t").set("tsv","video/mp2t");
|
|
2529
|
+
shaka.hls.HlsParser.TEXT_EXTENSIONS_TO_MIME_TYPES_=(new Map).set("mp4","application/mp4").set("m4s","application/mp4").set("m4i","application/mp4").set("m4f","application/mp4").set("cmft","application/mp4").set("vtt","text/vtt").set("webvtt","text/vtt").set("ttml","application/ttml+xml");shaka.hls.HlsParser.IMAGE_EXTENSIONS_TO_MIME_TYPES_=(new Map).set("jpg","image/jpeg").set("png","image/png").set("svg","image/svg+xml").set("webp","image/webp").set("avif","image/avif");
|
|
2530
|
+
shaka.hls.HlsParser.EXTENSION_MAP_BY_CONTENT_TYPE_=(new Map).set("audio",shaka.hls.HlsParser.AUDIO_EXTENSIONS_TO_MIME_TYPES_).set("video",shaka.hls.HlsParser.VIDEO_EXTENSIONS_TO_MIME_TYPES_).set("text",shaka.hls.HlsParser.TEXT_EXTENSIONS_TO_MIME_TYPES_).set("image",shaka.hls.HlsParser.IMAGE_EXTENSIONS_TO_MIME_TYPES_);shaka.hls.HlsParser.MIME_TYPES_WITHOUT_INIT_SEGMENT_=new Set(["video/mp2t"].concat($jscomp.arrayFromIterable(shaka.util.MimeUtils.RAW_FORMATS)));
|
|
2531
|
+
shaka.hls.HlsParser.KEYFORMATS_TO_DRM_PARSERS_=(new Map).set("com.apple.streamingkeydelivery",shaka.hls.HlsParser.fairplayDrmParser_).set("urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed",shaka.hls.HlsParser.widevineDrmParser_).set("com.microsoft.playready",shaka.hls.HlsParser.playreadyDrmParser_).set("urn:uuid:3d5e6d35-9b9a-41e8-b843-dd3c6e72c42c",shaka.hls.HlsParser.wiseplayDrmParser_);shaka.hls.HlsParser.PresentationType_={VOD:"VOD",EVENT:"EVENT",LIVE:"LIVE"};
|
|
2532
|
+
shaka.hls.HlsParser.FAKE_MUXED_URL_="shaka://hls-muxed";shaka.media.ManifestParser.registerParserByMime("application/x-mpegurl",function(){return new shaka.hls.HlsParser});shaka.media.ManifestParser.registerParserByMime("application/vnd.apple.mpegurl",function(){return new shaka.hls.HlsParser});shaka.mss={};shaka.mss.ContentProtection=function(){};shaka.mss.ContentProtection.parseFromProtection=function(a,b){var c=shaka.mss.ContentProtection,d=shaka.util.TXml,e=[];a=$jscomp.makeIterator(a);for(var f=a.next();!f.done;f=a.next())e=e.concat(d.findChildren(f.value,"ProtectionHeader"));return e.length?c.convertElements_(e,b):[]};shaka.mss.ContentProtection.getPlayReadyLicenseUrl=function(a){return shaka.drm.PlayReady.getLicenseUrl(a)};shaka.mss.ContentProtection.getPlayReadyKID_=function(a){return shaka.drm.PlayReady.getPlayReadyKID(a)};
|
|
2521
2533
|
shaka.mss.ContentProtection.getInitDataFromPro_=function(a,b,c){var d=shaka.util.Uint8ArrayUtils;a=d.fromBase64(shaka.util.TXml.getTextContents(a));b=d.fromHex(b.replace(/-/g,""));d=new Set;return[{initData:shaka.util.Pssh.createPssh(a,b,d,0),initDataType:"cenc",keyId:c}]};
|
|
2522
2534
|
shaka.mss.ContentProtection.convertElements_=function(a,b){for(var c=shaka.mss.ContentProtection,d=shaka.util.ManifestParserUtils,e=c.licenseUrlParsers_,f=[],g=0;g<a.length;g++){var h=a[g],k=h.attributes.SystemID.toLowerCase(),l=b[k];if(l){var m=c.getPlayReadyKID_(h);k=c.getInitDataFromPro_(h,k,m);k=d.createDrmInfo(l,"cenc",k);m&&k.keyIds.add(m);if(l=e.get(l))k.licenseServerUri=l(h);f.push(k)}}return f};
|
|
2523
2535
|
shaka.mss.ContentProtection.licenseUrlParsers_=(new Map).set("com.microsoft.playready",shaka.mss.ContentProtection.getPlayReadyLicenseUrl).set("com.microsoft.playready.recommendation",shaka.mss.ContentProtection.getPlayReadyLicenseUrl).set("com.microsoft.playready.software",shaka.mss.ContentProtection.getPlayReadyLicenseUrl).set("com.microsoft.playready.hardware",shaka.mss.ContentProtection.getPlayReadyLicenseUrl);shaka.util.Mp4Generator=function(a){shaka.util.Mp4Generator.initStaticProperties_();this.streamInfos_=a};shaka.util.Mp4Generator.prototype.initSegment=function(){var a=shaka.util.Mp4Generator,b=this.moov_(),c=new Uint8Array(a.FTYP_.byteLength+b.byteLength);c.set(a.FTYP_);c.set(b,a.FTYP_.byteLength);return c};
|
|
@@ -2530,7 +2542,8 @@ shaka.util.Mp4Generator.prototype.mdhd_=function(a){var b=shaka.util.Mp4Generato
|
|
|
2530
2542
|
4)),$jscomp.arrayFromIterable(this.breakNumberIntoBytes_(e,2)),[0,0]));return b.box("mdhd",a)};shaka.util.Mp4Generator.prototype.hdlr_=function(a){var b=shaka.util.Mp4Generator,c=shaka.util.ManifestParserUtils.ContentType,d=new Uint8Array([]);switch(a.type){case c.VIDEO:d=b.HDLR_TYPES_.video;break;case c.AUDIO:d=b.HDLR_TYPES_.audio}return b.box("hdlr",d)};
|
|
2531
2543
|
shaka.util.Mp4Generator.prototype.minf_=function(a){var b=shaka.util.Mp4Generator,c=shaka.util.ManifestParserUtils.ContentType;switch(a.type){case c.VIDEO:return b.box("minf",b.box("vmhd",b.VMHD_),b.DINF_,this.stbl_(a));case c.AUDIO:return b.box("minf",b.box("smhd",b.SMHD_),b.DINF_,this.stbl_(a))}return new Uint8Array([])};
|
|
2532
2544
|
shaka.util.Mp4Generator.prototype.stbl_=function(a){var b=shaka.util.Mp4Generator;return b.box("stbl",this.stsd_(a),b.box("stts",b.STTS_),b.box("stsc",b.STSC_),b.box("stsz",b.STSZ_),b.box("stco",b.STCO_))};
|
|
2533
|
-
shaka.util.Mp4Generator.prototype.stsd_=function(a){var b=shaka.util.Mp4Generator,c=shaka.util.ManifestParserUtils.ContentType,d=
|
|
2545
|
+
shaka.util.Mp4Generator.prototype.stsd_=function(a){var b=shaka.util.Mp4Generator,c=shaka.util.ManifestParserUtils.ContentType,d="aac";a.codecs.includes("mp3")?d="mp3":a.codecs.includes("ac-3")?d=shaka.util.Platform.requiresEC3InitSegments()?"ec-3":"ac-3":a.codecs.includes("ec-3")?d="ec-3":a.codecs.includes("opus")&&(d="opus");var e=new Uint8Array([]);switch(a.type){case c.VIDEO:a.codecs.includes("avc1")?e=this.avc1_(a):a.codecs.includes("hvc1")&&(e=this.hvc1_(a));break;case c.AUDIO:e="mp3"==d?this.mp3_(a):
|
|
2546
|
+
"ac-3"==d?this.ac3_(a):"ec-3"==d?this.ec3_(a):"opus"==d?this.opus_(a):this.mp4a_(a)}return b.box("stsd",b.STSD_,e)};
|
|
2534
2547
|
shaka.util.Mp4Generator.prototype.avc1_=function(a){var b=shaka.util.Mp4Generator,c=a.stream.width||0,d=a.stream.height||0;var e=0<a.videoConfig.byteLength?b.box("avcC",a.videoConfig):b.box("avcC",this.avcC_(a));c=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0].concat($jscomp.arrayFromIterable(this.breakNumberIntoBytes_(c,2)),$jscomp.arrayFromIterable(this.breakNumberIntoBytes_(d,2)),[0,72,0,0,0,72,0,0,0,0,0,0,0,1,19,118,105,100,101,111,106,115,45,99,111,110,116,114,105,98,45,104,
|
|
2535
2548
|
108,115,0,0,0,0,0,0,0,0,0,0,0,0,0,24,17,17]));d="avc1";var f=this.pasp_(a),g=new Uint8Array([]);a.encrypted&&(g=this.sinf_(a),d="encv");return b.box(d,c,e,f,g)};
|
|
2536
2549
|
shaka.util.Mp4Generator.prototype.avcC_=function(a){for(var b=7,c=[],d=[],e=0,f=0,g=0,h=0;h<a.videoNalus.length;h++){var k=this.hexStringToBuffer_(a.videoNalus[h]);switch(k[0]&31){case 7:c.push(k);b+=k.length+2;break;case 8:d.push(k),b+=k.length+2}}0<c.length&&(e=c[0][1],g=c[0][2],f=c[0][3]);a=new Uint8Array(b);b=0;a[b++]=1;a[b++]=e;a[b++]=g;a[b++]=f;a[b++]=255;a[b++]=224|c.length;for(e=0;e<c.length;e++)a[b++]=(c[e].length&65280)>>8,a[b++]=c[e].length&255,a.set(c[e],b),b+=c[e].length;a[b++]=d.length;
|
|
@@ -2557,8 +2570,8 @@ shaka.util.Mp4Generator.prototype.trun_=function(a,b){var c=shaka.util.ManifestP
|
|
|
2557
2570
|
shaka.util.Mp4Generator.prototype.mdat_=function(a){var b=shaka.util.Mp4Generator;a=(a.data?a.data.samples:[]).map(function(c){return c.data});a=shaka.util.Uint8ArrayUtils.concat.apply(shaka.util.Uint8ArrayUtils,$jscomp.arrayFromIterable(a));return b.box("mdat",a)};shaka.util.Mp4Generator.prototype.breakNumberIntoBytes_=function(a,b){var c=[];for(--b;0<=b;b--)c.push(a>>8*b&255);return c};
|
|
2558
2571
|
shaka.util.Mp4Generator.prototype.hexStringToBuffer_=function(a){for(var b=new Uint8Array(a.length/2),c=0;c<a.length/2;c+=1)b[c]=parseInt(String(a[2*c]+a[2*c+1]),16);return b};shaka.util.Mp4Generator.prototype.stringToCharCode_=function(a){for(var b=0,c=0;c<a.length;c+=1)b|=a.charCodeAt(c)<<8*(a.length-c-1);return b};
|
|
2559
2572
|
shaka.util.Mp4Generator.initStaticProperties_=function(){var a=shaka.util.Mp4Generator;if(!a.initialized_){a.initialized_=!0;var b=new Uint8Array([105,115,111,109]),c=new Uint8Array([97,118,99,49]),d=new Uint8Array([0,0,0,1]);a.FTYP_=a.box("ftyp",b,d,b,c);b=a.box("dref",a.DREF_);a.DINF_=a.box("dinf",b)}};
|
|
2560
|
-
shaka.util.Mp4Generator.box=function(a){var b=$jscomp.getRestArguments.apply(1,arguments),c=shaka.util.Mp4Generator.BOX_TYPES_
|
|
2561
|
-
shaka.util.Mp4Generator.UINT32_MAX_=Math.pow(2,32)-1;shaka.util.Mp4Generator.BOX_TYPES_=
|
|
2573
|
+
shaka.util.Mp4Generator.box=function(a){var b=$jscomp.getRestArguments.apply(1,arguments),c=shaka.util.Mp4Generator.BOX_TYPES_.get(a);c||(c=[a.charCodeAt(0),a.charCodeAt(1),a.charCodeAt(2),a.charCodeAt(3)],shaka.util.Mp4Generator.BOX_TYPES_.set(a,c));for(var d=8,e=b.length-1;0<=e;e--)d+=b[e].byteLength;e=new Uint8Array(d);e[0]=d>>24&255;e[1]=d>>16&255;e[2]=d>>8&255;e[3]=d&255;e.set(c,4);c=0;for(d=8;c<b.length;c++)e.set(b[c],d),d+=b[c].byteLength;return e};shaka.util.Mp4Generator.initialized_=!1;
|
|
2574
|
+
shaka.util.Mp4Generator.UINT32_MAX_=Math.pow(2,32)-1;shaka.util.Mp4Generator.BOX_TYPES_=new Map;shaka.util.Mp4Generator.HDLR_TYPES_={video:new Uint8Array([0,0,0,0,0,0,0,0,118,105,100,101,0,0,0,0,0,0,0,0,0,0,0,0,86,105,100,101,111,72,97,110,100,108,101,114,0]),audio:new Uint8Array([0,0,0,0,0,0,0,0,115,111,117,110,0,0,0,0,0,0,0,0,0,0,0,0,83,111,117,110,100,72,97,110,100,108,101,114,0])};shaka.util.Mp4Generator.STTS_=new Uint8Array([0,0,0,0,0,0,0,0]);
|
|
2562
2575
|
shaka.util.Mp4Generator.STSC_=new Uint8Array([0,0,0,0,0,0,0,0]);shaka.util.Mp4Generator.STCO_=new Uint8Array([0,0,0,0,0,0,0,0]);shaka.util.Mp4Generator.STSZ_=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0]);shaka.util.Mp4Generator.VMHD_=new Uint8Array([0,0,0,1,0,0,0,0,0,0,0,0]);shaka.util.Mp4Generator.SMHD_=new Uint8Array([0,0,0,0,0,0,0,0]);shaka.util.Mp4Generator.STSD_=new Uint8Array([0,0,0,0,0,0,0,1]);shaka.util.Mp4Generator.FTYP_=new Uint8Array([]);
|
|
2563
2576
|
shaka.util.Mp4Generator.DREF_=new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,12,117,114,108,32,0,0,0,1]);shaka.util.Mp4Generator.DINF_=new Uint8Array([]);shaka.mss.MssParser=function(){var a=this;this.playerInterface_=this.config_=null;this.manifestUris_=[];this.manifest_=null;this.globalId_=1;this.updatePeriod_=0;this.presentationTimeline_=null;this.averageUpdateDuration_=new shaka.abr.Ewma(5);this.updateTimer_=new shaka.util.Timer(function(){a.onUpdate_()});this.operationManager_=new shaka.util.OperationManager;this.initSegmentDataByStreamId_=new Map;this.isPreloadFn_=function(){return!1}};
|
|
2564
2577
|
shaka.mss.MssParser.prototype.configure=function(a,b){goog.asserts.assert(null!=a.mss,"MssManifestConfiguration should not be null!");this.config_=a;b&&(this.isPreloadFn_=b)};
|
|
@@ -2582,10 +2595,10 @@ l.next();!n.done;n=l.next())(n=this.createStream_(k,n.value,m,g,b))&&(n.type!=e.
|
|
|
2582
2595
|
shaka.mss.MssParser.prototype.createStream_=function(a,b,c,d,e){var f=this,g=shaka.util.TXml,h=shaka.util.ManifestParserUtils.ContentType,k=shaka.mss.MssParser,l=a.attributes.Type;if("audio"!==l&&"video"!==l&&"text"!==l)return shaka.log.alwaysWarn("Ignoring unrecognized type:",l),null;var m=a.attributes.Language,n=this.globalId_++,p=g.parseAttr(b,"Bitrate",g.parsePositiveInt),q=g.parseAttr(b,"MaxWidth",g.parsePositiveInt),r=g.parseAttr(b,"MaxHeight",g.parsePositiveInt),t=g.parseAttr(b,"Channels",
|
|
2583
2596
|
g.parsePositiveInt);g=g.parseAttr(b,"SamplingRate",g.parsePositiveInt);var u=e.duration;c.length&&(u=c[c.length-1].end-c[0].start);var v=this.presentationTimeline_.getDuration();this.presentationTimeline_.setDuration(Math.min(u,v));var w={id:n,originalId:a.attributes.Name||String(n),groupId:null,createSegmentIndex:function(){return Promise.resolve()},closeSegmentIndex:function(){return Promise.resolve()},segmentIndex:null,mimeType:"",codecs:"",frameRate:void 0,pixelAspectRatio:void 0,bandwidth:p||
|
|
2584
2597
|
0,width:q||void 0,height:r||void 0,kind:"",encrypted:0<d.length,drmInfos:d,keyIds:new Set,language:shaka.util.LanguageUtils.normalize(m||"und"),originalLanguage:m,label:"",type:"",primary:!1,trickModeVideo:null,emsgSchemeIdUris:[],roles:[],forced:!1,channelsCount:t,audioSamplingRate:g,spatialAudio:!1,closedCaptions:null,hdr:void 0,colorGamut:void 0,videoLayout:void 0,tilesLayout:void 0,matchedStreams:[],mssPrivateData:{duration:u,timescale:e.timescale,codecPrivateData:null},accessibilityPurpose:null,
|
|
2585
|
-
external:!1,fastSwitching:!1,fullMimeTypes:new Set,isAudioMuxedInVideo:!1};if(d=a.attributes.Subtype)(d=k.ROLE_MAPPING_
|
|
2598
|
+
external:!1,fastSwitching:!1,fullMimeTypes:new Set,isAudioMuxedInVideo:!1};if(d=a.attributes.Subtype)(d=k.ROLE_MAPPING_.get(d))&&w.roles.push(d),"main"===d&&(w.primary=!0);d=b.attributes.FourCC;if(null===d||""===d)d=a.attributes.FourCC;if(!d)if("audio"===l)d="AAC";else if("video"===l)return shaka.log.alwaysWarn('FourCC is not defined whereas it is required for a QualityLevel element for a StreamIndex of type "video"'),null;if(!k.SUPPORTED_CODECS_.includes(d.toUpperCase()))return shaka.log.alwaysWarn("Codec not supported:",
|
|
2586
2599
|
d),null;k=this.getCodecPrivateData_(b,l,d,w);w.mssPrivateData.codecPrivateData=k;switch(l){case "audio":if(!k)return shaka.log.alwaysWarn("Quality unsupported without CodecPrivateData",l),null;w.type=h.AUDIO;w.mimeType="mss/audio/mp4";w.codecs=this.getAACCodec_(b,d,k);break;case "video":if(!k)return shaka.log.alwaysWarn("Quality unsupported without CodecPrivateData",l),null;w.type=h.VIDEO;w.mimeType="mss/video/mp4";w.codecs=this.getH264Codec_(b,k);break;case "text":if(w.type=h.TEXT,w.mimeType="application/mp4",
|
|
2587
2600
|
"TTML"===d||"DFXP"===d)w.codecs="stpp"}w.fullMimeTypes.add(shaka.util.MimeUtils.getFullType(w.mimeType,w.codecs));w.createSegmentIndex=function(){if(w.segmentIndex)return Promise.resolve();if(f.initSegmentDataByStreamId_.has(w.id))var x=f.initSegmentDataByStreamId_.get(w.id);else x=[],w.type==h.VIDEO&&(x=w.mssPrivateData.codecPrivateData.split("00000001").slice(1)),x={id:w.id,type:w.type,codecs:w.codecs,encrypted:w.encrypted,timescale:w.mssPrivateData.timescale,duration:w.mssPrivateData.duration,
|
|
2588
|
-
videoNalus:x,audioConfig:new Uint8Array([]),videoConfig:new Uint8Array([]),hSpacing:0,vSpacing:0,data:null,stream:w},x=(new shaka.util.Mp4Generator([x])).initSegment(),f.initSegmentDataByStreamId_.set(w.id,x);var
|
|
2601
|
+
videoNalus:x,audioConfig:new Uint8Array([]),videoConfig:new Uint8Array([]),hSpacing:0,vSpacing:0,data:null,stream:w},x=(new shaka.util.Mp4Generator([x])).initSegment(),f.initSegmentDataByStreamId_.set(w.id,x);var z=shaka.media.QualityObserver.createQualityInfo(w);x=new shaka.media.InitSegmentReference(function(){return[]},0,null,z,w.mssPrivateData.timescale,x);x=f.createSegments_(x,w,a,c);w.segmentIndex=new shaka.media.SegmentIndex(x);return Promise.resolve()};w.closeSegmentIndex=function(){w.segmentIndex&&
|
|
2589
2602
|
(w.segmentIndex.release(),w.segmentIndex=null)};return w};
|
|
2590
2603
|
shaka.mss.MssParser.prototype.getCodecPrivateData_=function(a,b,c,d){if(a=a.attributes.CodecPrivateData)return a;if("audio"!==b)return null;b=d.channelsCount||2;a=d.audioSamplingRate||44100;var e={96E3:0,88200:1,64E3:2,48E3:3,44100:4,32E3:5,24E3:6,22050:7,16E3:8,12E3:9,11025:10,8E3:11,7350:12};d=e[a];if("AACH"===c)return c=new Uint8Array(4),a=e[2*a],c[0]=40|d>>1,c[1]=d<<7|b<<3|a>>1,c[2]=a<<7|8,c[3]=0,b=new Uint16Array(2),b[0]=(c[0]<<8)+c[1],b[1]=(c[2]<<8)+c[3],b[0].toString(16)+b[1].toString(16);
|
|
2591
2604
|
c=new Uint8Array(2);c[0]=16|d>>1;c[1]=d<<7|b<<3;b=new Uint16Array(1);b[0]=(c[0]<<8)+c[1];return b[0].toString(16)};shaka.mss.MssParser.prototype.getAACCodec_=function(a,b,c){a=0;"AACH"===b&&(a=5);c?0===a&&(a=(parseInt(c.substr(0,2),16)&248)>>3):(a=2,"AACH"===b&&(a=5));return"mp4a.40."+a};shaka.mss.MssParser.prototype.getH264Codec_=function(a,b){a=/00000001[0-9]7/.exec(b);return a.length&&b?"avc1."+b.substr(b.indexOf(a[0])+10,6):""};
|
|
@@ -2595,20 +2608,20 @@ shaka.mss.MssParser.prototype.createTimeline_=function(a,b,c){goog.asserts.asser
|
|
|
2595
2608
|
h);break}l=null!=l?l:f;(n=n||0)&&n--;if(0>n)if(k){k=d.parseAttr(k,"t",d.parseNonNegativeInt);if(null==k){shaka.log.warning('An "c" element cannot have a negative repeat','if the next "c" element does not have a valid start time:','ignoring the remaining "c" elements.',h);break}else if(l>=k){shaka.log.warning('An "c" element cannot have a negative repeat if its start ','time exceeds the next "c" element\'s start time:','ignoring the remaining "c" elements.',h);break}n=Math.ceil((k-l)/m)-1}else{if(Infinity==
|
|
2596
2609
|
c){shaka.log.warning('The last "c" element cannot have a negative repeat',"if the Period has an infinite duration:",'ignoring the last "c" element.',h);break}else if(l/b>=c){shaka.log.warning('The last "c" element cannot have a negative repeat',"if its start time exceeds the duration:",'ignoring the last "c" element.',h);break}n=Math.ceil((c*b-l)/m)-1}for(h=0;h<=n;++h)f=l+m,e.push({start:l/b,end:f/b,unscaledStart:l}),l=f}return e};
|
|
2597
2610
|
shaka.mss.MssParser.prototype.createVariant_=function(a,b){var c=shaka.util.ManifestParserUtils.ContentType;goog.asserts.assert(!a||a.type==c.AUDIO,"Audio parameter mismatch!");goog.asserts.assert(!b||b.type==c.VIDEO,"Video parameter mismatch!");c=0;a&&a.bandwidth&&0<a.bandwidth&&(c+=a.bandwidth);b&&b.bandwidth&&0<b.bandwidth&&(c+=b.bandwidth);return{id:this.globalId_++,language:a?a.language:"und",disabledUntilTime:0,primary:!!a&&a.primary||!!b&&b.primary,audio:a,video:b,bandwidth:c,allowedByApplication:!0,
|
|
2598
|
-
allowedByKeySystem:!0,decodingInfos:[]}};goog.exportSymbol("shaka.mss.MssParser",shaka.mss.MssParser);shaka.mss.MssParser.MIN_UPDATE_PERIOD_=3;shaka.mss.MssParser.DEFAULT_TIME_SCALE_=1E7;shaka.mss.MssParser.SUPPORTED_CODECS_="AAC AACL AACH AACP AVC1 H264 TTML DFXP".split(" ");shaka.mss.MssParser.ROLE_MAPPING_=
|
|
2599
|
-
shaka.net.HttpPluginUtils.makeResponse=function(a,b,c,d,e,f,g){goog.asserts.assert(b,"Data should be non-null!");if(200<=c&&299>=c&&202!=c)return{uri:e||d,originalUri:d,data:b,status:c,headers:a,fromCache:!!a["x-shaka-from-cache"],originalRequest:f};f=null;try{f=shaka.util.StringUtils.fromBytesAutoDetect(b)}catch(h){}shaka.log.debug("HTTP error text:",f);throw new shaka.util.Error(401==c||403==c?shaka.util.Error.Severity.CRITICAL:shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.NETWORK,
|
|
2611
|
+
allowedByKeySystem:!0,decodingInfos:[]}};goog.exportSymbol("shaka.mss.MssParser",shaka.mss.MssParser);shaka.mss.MssParser.MIN_UPDATE_PERIOD_=3;shaka.mss.MssParser.DEFAULT_TIME_SCALE_=1E7;shaka.mss.MssParser.SUPPORTED_CODECS_="AAC AACL AACH AACP AVC1 H264 TTML DFXP".split(" ");shaka.mss.MssParser.ROLE_MAPPING_=(new Map).set("CAPT","main").set("SUBT","alternate").set("DESC","main");shaka.media.ManifestParser.registerParserByMime("application/vnd.ms-sstr+xml",function(){return new shaka.mss.MssParser});shaka.net.HttpPluginUtils=function(){};
|
|
2612
|
+
shaka.net.HttpPluginUtils.makeResponse=function(a,b,c,d,e,f,g){goog.asserts.assert(b,"Data should be non-null!");if(200<=c&&299>=c&&202!=c||304==c)return{uri:e||d,originalUri:d,data:b,status:c,headers:a,fromCache:!!a["x-shaka-from-cache"],originalRequest:f};f=null;try{f=shaka.util.StringUtils.fromBytesAutoDetect(b)}catch(h){}shaka.log.debug("HTTP error text:",f);throw new shaka.util.Error(401==c||403==c?shaka.util.Error.Severity.CRITICAL:shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.NETWORK,
|
|
2600
2613
|
shaka.util.Error.Code.BAD_HTTP_STATUS,d,c,f,a,g,e||d);};shaka.net.HttpFetchPlugin=function(){};
|
|
2601
2614
|
shaka.net.HttpFetchPlugin.parse=function(a,b,c,d,e,f){var g=new shaka.net.HttpFetchPlugin.Headers_;shaka.util.MapUtils.asMap(b.headers).forEach(function(m,n){g.append(n,m)});var h=new shaka.net.HttpFetchPlugin.AbortController_,k={canceled:!1,timedOut:!1};a=shaka.net.HttpFetchPlugin.request_(a,b,c,{body:b.body||void 0,headers:g,method:b.method,signal:h.signal,credentials:b.allowCrossSiteCredentials?"include":void 0},k,d,e,b.streamDataCallback,f.minBytesForProgressEvents||0);a=new shaka.util.AbortableOperation(a,
|
|
2602
2615
|
function(){k.canceled=!0;h.abort();return Promise.resolve()});if(b=b.retryParameters.timeout){var l=new shaka.util.Timer(function(){k.timedOut=!0;h.abort()});l.tickAfter(b/1E3);a.finally(function(){l.stop()})}return a};
|
|
2603
|
-
shaka.net.HttpFetchPlugin.request_=function(a,b,c,d,e,f,g,h,k){var l,m,n,p,q,r,t,u,v,w,x,
|
|
2604
|
-
"non-HEAD responses should have a body");u=n.clone().body.getReader();w=(v=n.headers.get("Content-Length"))?parseInt(v,10):0;x=function(
|
|
2605
|
-
D.value.byteLength;if(!h){K.jumpTo(5);break}return K.yield(h(D.value),5);case 5:F=Date.now();
|
|
2606
|
-
shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.OPERATION_ABORTED,a,c);if(e.timedOut)throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.TIMEOUT,a,c);throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.HTTP_ERROR,a,
|
|
2616
|
+
shaka.net.HttpFetchPlugin.request_=function(a,b,c,d,e,f,g,h,k){var l,m,n,p,q,r,t,u,v,w,x,z,B;return $jscomp.asyncExecutePromiseGeneratorProgram(function(A){switch(A.nextAddress){case 1:return l=shaka.net.HttpFetchPlugin.fetch_,m=shaka.net.HttpFetchPlugin.ReadableStream_,p=new ArrayBuffer(0),r=q=0,t=Date.now(),A.setCatchFinallyBlocks(2),A.yield(l(a,d),4);case 4:n=A.yieldResult;g(shaka.net.HttpFetchPlugin.headersToGenericObject_(n.headers));if("HEAD"==d.method){A.jumpTo(5);break}goog.asserts.assert(n.body,
|
|
2617
|
+
"non-HEAD responses should have a body");u=n.clone().body.getReader();w=(v=n.headers.get("Content-Length"))?parseInt(v,10):0;x=function(y){var C=function(){var D,E,F,H,J;return $jscomp.asyncExecutePromiseGeneratorProgram(function(K){switch(K.nextAddress){case 1:return K.setCatchFinallyBlocks(2),K.yield(u.read(),4);case 4:D=K.yieldResult;K.leaveTryBlock(3);break;case 2:return E=K.enterCatchBlock(),shaka.log.v1("error reading from stream",E.message),K.return();case 3:if(D.done){K.jumpTo(5);break}q+=
|
|
2618
|
+
D.value.byteLength;if(!h){K.jumpTo(5);break}return K.yield(h(D.value),5);case 5:F=Date.now();H=q-r;if(100<F-t&&H>=k||D.done)J=D.done?0:w-q,f(F-t,H,J),r=q,t=F;D.done?(goog.asserts.assert(!D.value,'readObj should be unset when "done" is true.'),y.close()):(y.enqueue(D.value),C());K.jumpToEnd()}})};C()};new m({start:x});return A.yield(n.arrayBuffer(),6);case 6:p=A.yieldResult;case 5:A.leaveTryBlock(3);break;case 2:z=A.enterCatchBlock();if(e.canceled)throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,
|
|
2619
|
+
shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.OPERATION_ABORTED,a,c);if(e.timedOut)throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.TIMEOUT,a,c);throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.HTTP_ERROR,a,z,c);case 3:return B=shaka.net.HttpFetchPlugin.headersToGenericObject_(n.headers),A.return(shaka.net.HttpPluginUtils.makeResponse(B,p,n.status,
|
|
2607
2620
|
a,n.url,b,c))}})};shaka.net.HttpFetchPlugin.headersToGenericObject_=function(a){var b={};a.forEach(function(c,d){b[d.trim()]=c});return b};shaka.net.HttpFetchPlugin.isSupported=function(){if(window.ReadableStream)try{new ReadableStream({})}catch(a){return!1}else return!1;if(window.Response){if(!(new Response("")).body)return!1}else return!1;return!(!window.fetch||"polyfill"in window.fetch||!window.AbortController)};goog.exportSymbol("shaka.net.HttpFetchPlugin",shaka.net.HttpFetchPlugin);
|
|
2608
2621
|
goog.exportProperty(shaka.net.HttpFetchPlugin,"isSupported",shaka.net.HttpFetchPlugin.isSupported);goog.exportProperty(shaka.net.HttpFetchPlugin,"parse",shaka.net.HttpFetchPlugin.parse);shaka.net.HttpFetchPlugin.fetch_=window.fetch;shaka.net.HttpFetchPlugin.AbortController_=window.AbortController;shaka.net.HttpFetchPlugin.ReadableStream_=window.ReadableStream;shaka.net.HttpFetchPlugin.Headers_=window.Headers;
|
|
2609
2622
|
shaka.net.HttpFetchPlugin.isSupported()&&(shaka.net.NetworkingEngine.registerScheme("http",shaka.net.HttpFetchPlugin.parse,shaka.net.NetworkingEngine.PluginPriority.PREFERRED,!0),shaka.net.NetworkingEngine.registerScheme("https",shaka.net.HttpFetchPlugin.parse,shaka.net.NetworkingEngine.PluginPriority.PREFERRED,!0),shaka.net.NetworkingEngine.registerScheme("blob",shaka.net.HttpFetchPlugin.parse,shaka.net.NetworkingEngine.PluginPriority.PREFERRED,!0));shaka.net.HttpXHRPlugin=function(){};
|
|
2610
2623
|
shaka.net.HttpXHRPlugin.parse=function(a,b,c,d,e,f){var g=new shaka.net.HttpXHRPlugin.Xhr_,h=Date.now(),k=0,l=new Promise(function(m,n){g.open(b.method,a,!0);g.responseType="arraybuffer";g.timeout=b.retryParameters.timeout;g.withCredentials=b.allowCrossSiteCredentials;g.onabort=function(){n(new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.OPERATION_ABORTED,a,c))};var p=!1;g.onreadystatechange=function(t){2!=g.readyState||p||(t=shaka.net.HttpXHRPlugin.headersToGenericObject_(g),
|
|
2611
|
-
e(t),p=!0)};g.onload=function(t){var u=shaka.net.HttpXHRPlugin.headersToGenericObject_(g);goog.asserts.assert(g.response instanceof ArrayBuffer,"XHR should have a response by now!");var v=g.response;try{var w=Date.now();d(w-h,t.loaded-k,0);var x=shaka.net.HttpPluginUtils.makeResponse(u,v,g.status,a,g.responseURL,b,c);m(x)}catch(
|
|
2624
|
+
e(t),p=!0)};g.onload=function(t){var u=shaka.net.HttpXHRPlugin.headersToGenericObject_(g);goog.asserts.assert(g.response instanceof ArrayBuffer,"XHR should have a response by now!");var v=g.response;try{var w=Date.now();d(w-h,t.loaded-k,0);var x=shaka.net.HttpPluginUtils.makeResponse(u,v,g.status,a,g.responseURL,b,c);m(x)}catch(z){goog.asserts.assert(z instanceof shaka.util.Error,"Wrong error type!"),n(z)}};g.onerror=function(t){n(new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.NETWORK,
|
|
2612
2625
|
shaka.util.Error.Code.HTTP_ERROR,a,t,c))};g.ontimeout=function(t){n(new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.TIMEOUT,a,c))};g.onprogress=function(t){var u=Date.now(),v=f.minBytesForProgressEvents||0,w=t.loaded-k;if(100<u-h&&w>=v||t.lengthComputable&&t.loaded==t.total)d(u-h,w,4==g.readyState?0:t.total-t.loaded),k=t.loaded,h=u};for(var q in b.headers){var r=q.toLowerCase();g.setRequestHeader(r,b.headers[q])}g.send(b.body)});return new shaka.util.AbortableOperation(l,
|
|
2613
2626
|
function(){g.abort();return Promise.resolve()})};shaka.net.HttpXHRPlugin.headersToGenericObject_=function(a){var b=a.getAllResponseHeaders().trim().split("\r\n");a={};b=$jscomp.makeIterator(b);for(var c=b.next();!c.done;c=b.next())c=c.value.split(": "),a[c[0].toLowerCase()]=c.slice(1).join(": ");return a};goog.exportSymbol("shaka.net.HttpXHRPlugin",shaka.net.HttpXHRPlugin);goog.exportProperty(shaka.net.HttpXHRPlugin,"parse",shaka.net.HttpXHRPlugin.parse);shaka.net.HttpXHRPlugin.Xhr_=window.XMLHttpRequest;
|
|
2614
2627
|
shaka.net.NetworkingEngine.registerScheme("http",shaka.net.HttpXHRPlugin.parse,shaka.net.NetworkingEngine.PluginPriority.FALLBACK,!0);shaka.net.NetworkingEngine.registerScheme("https",shaka.net.HttpXHRPlugin.parse,shaka.net.NetworkingEngine.PluginPriority.FALLBACK,!0);shaka.net.NetworkingEngine.registerScheme("blob",shaka.net.HttpXHRPlugin.parse,shaka.net.NetworkingEngine.PluginPriority.FALLBACK,!0);shaka.offline={};shaka.offline.DownloadInfo=function(a,b,c,d,e){this.ref=a;this.estimateId=b;this.groupId=c;this.isInitSegment=d;this.refPosition=e};shaka.offline.DownloadInfo.idForSegmentRef=function(a){var b=a.getSegmentData();return b?shaka.util.Uint8ArrayUtils.toBase64(b):a.getUris().map(function(c){return"{"+encodeURI(c.split("#xywh=")[0])+"}"}).join("")+":"+a.startByte+":"+a.endByte};shaka.offline.DownloadInfo.prototype.getRefId=function(){return shaka.offline.DownloadInfo.idForSegmentRef(this.ref)};
|
|
@@ -2633,9 +2646,9 @@ shaka.offline.indexeddb.BaseStorageCell.prototype.getAllManifests=function(){var
|
|
|
2633
2646
|
d.return(c)})};shaka.offline.indexeddb.BaseStorageCell.prototype.convertSegmentData=function(a){return a};shaka.offline.indexeddb.BaseStorageCell.prototype.convertManifest=function(a){return Promise.resolve(a)};shaka.offline.indexeddb.BaseStorageCell.prototype.rejectAdd=function(a){return Promise.reject(new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.STORAGE,shaka.util.Error.Code.NEW_KEY_OPERATION_NOT_SUPPORTED,"Cannot add new value to "+a))};
|
|
2634
2647
|
shaka.offline.indexeddb.BaseStorageCell.prototype.rejectUpdate=function(a){return Promise.reject(new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.STORAGE,shaka.util.Error.Code.MODIFY_OPERATION_NOT_SUPPORTED,"Cannot modify values in "+a))};
|
|
2635
2648
|
shaka.offline.indexeddb.BaseStorageCell.prototype.add=function(a,b){var c=this,d,e,f,g,h,k,l;return $jscomp.asyncExecutePromiseGeneratorProgram(function(m){if(1==m.nextAddress){d=c.connection_.startReadWriteOperation(a);e=d.store();f=[];g=$jscomp.makeIterator(b);h=g.next();for(k={};!h.done;k={request$jscomp$60:void 0},h=g.next())l=h.value,k.request$jscomp$60=e.add(l),k.request$jscomp$60.onsuccess=function(n){return function(p){f.push(n.request$jscomp$60.result)}}(k);return m.yield(d.promise(),2)}return m.return(f)})};
|
|
2636
|
-
shaka.offline.indexeddb.BaseStorageCell.prototype.remove_=function(a,b,c){a=this.connection_.startReadWriteOperation(a);var d=a.store();b=$jscomp.makeIterator(b);for(var e=b.next(),f={};!e.done;f={key$jscomp$
|
|
2637
|
-
shaka.offline.indexeddb.BaseStorageCell.prototype.get_=function(a,b){var c=this,d,e,f,g,h,k,l;return $jscomp.asyncExecutePromiseGeneratorProgram(function(m){if(1==m.nextAddress){d=c.connection_.startReadOnlyOperation(a);e=d.store();f={};g=[];h=$jscomp.makeIterator(b);k=h.next();for(l={};!k.done;l={request$jscomp$61:void 0,key$jscomp$
|
|
2638
|
-
g.push(n.key$jscomp$
|
|
2649
|
+
shaka.offline.indexeddb.BaseStorageCell.prototype.remove_=function(a,b,c){a=this.connection_.startReadWriteOperation(a);var d=a.store();b=$jscomp.makeIterator(b);for(var e=b.next(),f={};!e.done;f={key$jscomp$145:void 0},e=b.next())f.key$jscomp$145=e.value,d.delete(f.key$jscomp$145).onsuccess=function(g){return function(){return c(g.key$jscomp$145)}}(f);return a.promise()};
|
|
2650
|
+
shaka.offline.indexeddb.BaseStorageCell.prototype.get_=function(a,b){var c=this,d,e,f,g,h,k,l;return $jscomp.asyncExecutePromiseGeneratorProgram(function(m){if(1==m.nextAddress){d=c.connection_.startReadOnlyOperation(a);e=d.store();f={};g=[];h=$jscomp.makeIterator(b);k=h.next();for(l={};!k.done;l={request$jscomp$61:void 0,key$jscomp$146:void 0},k=h.next())l.key$jscomp$146=k.value,l.request$jscomp$61=e.get(l.key$jscomp$146),l.request$jscomp$61.onsuccess=function(n){return function(){void 0==n.request$jscomp$61.result&&
|
|
2651
|
+
g.push(n.key$jscomp$146);f[n.key$jscomp$146]=n.request$jscomp$61.result}}(l);return m.yield(d.promise(),2)}if(g.length)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.STORAGE,shaka.util.Error.Code.KEY_NOT_FOUND,"Could not find values for "+g);return m.return(b.map(function(n){return f[n]}))})};shaka.offline.indexeddb.EmeSessionStorageCell=function(a,b){this.connection_=new shaka.offline.indexeddb.DBConnection(a);this.store_=b};shaka.offline.indexeddb.EmeSessionStorageCell.prototype.destroy=function(){return this.connection_.destroy()};
|
|
2639
2652
|
shaka.offline.indexeddb.EmeSessionStorageCell.prototype.getAll=function(){var a=this,b,c;return $jscomp.asyncExecutePromiseGeneratorProgram(function(d){return 1==d.nextAddress?(b=a.connection_.startReadOnlyOperation(a.store_),c=[],d.yield(b.forEachEntry(function(e,f){c.push(f)}),2)):3!=d.nextAddress?d.yield(b.promise(),3):d.return(c)})};
|
|
2640
2653
|
shaka.offline.indexeddb.EmeSessionStorageCell.prototype.add=function(a){var b=this.connection_.startReadWriteOperation(this.store_),c=b.store();a=$jscomp.makeIterator(a);for(var d=a.next();!d.done;d=a.next())c.add(d.value);return b.promise()};
|
|
2641
2654
|
shaka.offline.indexeddb.EmeSessionStorageCell.prototype.remove=function(a){var b=this,c;return $jscomp.asyncExecutePromiseGeneratorProgram(function(d){return 1==d.nextAddress?(c=b.connection_.startReadWriteOperation(b.store_),d.yield(c.forEachEntry(function(e,f,g){a.includes(f.sessionId)&&g.delete()}),2)):d.yield(c.promise(),0)})};shaka.offline.StorageCellHandle={};shaka.offline.StorageCellPath={};shaka.offline.StorageMuxer=function(){this.mechanisms_=new Map};shaka.offline.StorageMuxer.prototype.destroy=function(){for(var a=[],b=$jscomp.makeIterator(this.mechanisms_.values()),c=b.next();!c.done;c=b.next())a.push(c.value.destroy());this.mechanisms_.clear();return Promise.all(a)};
|
|
@@ -2709,36 +2722,36 @@ break;case 2:return e=g.enterCatchBlock(),shaka.log.warning("Error initializing
|
|
|
2709
2722
|
6);case 6:return g.yield(d.destroy(),7);case 7:return g.return(f)}})};shaka.offline.SessionDeleter.createBuckets_=function(a){var b=shaka.offline.SessionDeleter,c=[];a=$jscomp.makeIterator(a);for(var d=a.next();!d.done;d=a.next()){d=d.value;for(var e=!1,f=$jscomp.makeIterator(c),g=f.next();!g.done;g=f.next())if(g=g.value,b.isCompatible_(g.info,d)){g.sessionIds.push(d.sessionId);e=!0;break}e||c.push({info:d,sessionIds:[d.sessionId]})}return c};
|
|
2710
2723
|
shaka.offline.SessionDeleter.isCompatible_=function(a,b){var c=shaka.util.ArrayUtils,d=function(e,f){return e.robustness==f.robustness&&e.contentType==f.contentType};return a.keySystem==b.keySystem&&a.licenseUri==b.licenseUri&&c.hasSameElements(a.audioCapabilities,b.audioCapabilities,d)&&c.hasSameElements(a.videoCapabilities,b.videoCapabilities,d)};shaka.offline.StoredContentUtils=function(){};shaka.offline.StoredContentUtils.fromManifest=function(a,b,c,d){goog.asserts.assert(b.variants.length,"Cannot create stored content from manifest with no variants.");var e=b.presentationTimeline.getDuration();b=shaka.offline.StoredContentUtils.getTracks_(b);return{offlineUri:null,originalManifestUri:a,duration:e,size:c,expiration:Infinity,tracks:b,appMetadata:d,isIncomplete:!1}};
|
|
2711
2724
|
shaka.offline.StoredContentUtils.fromManifestDB=function(a,b){goog.asserts.assert(b.streams.length,"Cannot create stored content from manifestDB with no streams.");var c=(new shaka.offline.ManifestConverter(a.mechanism(),a.cell())).fromManifestDB(b),d=b.appMetadata||{};c=shaka.offline.StoredContentUtils.getTracks_(c);goog.asserts.assert(null!=b.expiration,"Manifest expiration must be set by now!");return{offlineUri:a.toString(),originalManifestUri:b.originalManifestUri,duration:b.duration,size:b.size,
|
|
2712
|
-
expiration:b.expiration,tracks:c,appMetadata:d,isIncomplete:b.isIncomplete||!1}};shaka.offline.StoredContentUtils.getTracks_=function(a){var b=shaka.util.StreamUtils,c=[],d=b.getPlayableVariants(a.variants);d=$jscomp.makeIterator(d);for(var e=d.next();!e.done;e=d.next())c.push(b.variantToTrack(e.value));a=$jscomp.makeIterator(a.textStreams);for(d=a.next();!d.done;d=a.next())c.push(b.textStreamToTrack(d.value));return c};shaka.offline.StreamBandwidthEstimator=function(){this.estimateByStreamId_=
|
|
2725
|
+
expiration:b.expiration,tracks:c,appMetadata:d,isIncomplete:b.isIncomplete||!1}};shaka.offline.StoredContentUtils.getTracks_=function(a){var b=shaka.util.StreamUtils,c=[],d=b.getPlayableVariants(a.variants);d=$jscomp.makeIterator(d);for(var e=d.next();!e.done;e=d.next())c.push(b.variantToTrack(e.value));a=$jscomp.makeIterator(a.textStreams);for(d=a.next();!d.done;d=a.next())c.push(b.textStreamToTrack(d.value));return c};shaka.offline.StreamBandwidthEstimator=function(){this.estimateByStreamId_=new Map};
|
|
2713
2726
|
shaka.offline.StreamBandwidthEstimator.prototype.addVariant=function(a){var b=a.audio,c=a.video;b&&!c&&this.setBitrate_(b.id,b.bandwidth||a.bandwidth);!b&&c&&this.setBitrate_(c.id,c.bandwidth||a.bandwidth);if(b&&c){var d=b.bandwidth||shaka.offline.StreamBandwidthEstimator.DEFAULT_AUDIO_BITRATE_,e=c.bandwidth||a.bandwidth-d;0>=e&&(shaka.log.warning("Audio bit rate consumes variants bandwidth. Setting video bandwidth to match variant's bandwidth."),e=a.bandwidth);this.setBitrate_(b.id,d);this.setBitrate_(c.id,
|
|
2714
|
-
e)}};shaka.offline.StreamBandwidthEstimator.prototype.setBitrate_=function(a,b){this.estimateByStreamId_
|
|
2727
|
+
e)}};shaka.offline.StreamBandwidthEstimator.prototype.setBitrate_=function(a,b){this.estimateByStreamId_.set(a,b)};shaka.offline.StreamBandwidthEstimator.prototype.addText=function(a){this.estimateByStreamId_.set(a.id,shaka.offline.StreamBandwidthEstimator.DEFAULT_TEXT_BITRATE_)};shaka.offline.StreamBandwidthEstimator.prototype.addImage=function(a){this.estimateByStreamId_.set(a.id,a.bandwidth||shaka.offline.StreamBandwidthEstimator.DEFAULT_IMAGE_BITRATE_)};
|
|
2715
2728
|
shaka.offline.StreamBandwidthEstimator.prototype.getSegmentEstimate=function(a,b){b=b.endTime-b.startTime;return this.getEstimate_(a)*b};shaka.offline.StreamBandwidthEstimator.prototype.getInitSegmentEstimate=function(a){return.5*this.getEstimate_(a)};
|
|
2716
|
-
shaka.offline.StreamBandwidthEstimator.prototype.getEstimate_=function(a){a=this.estimateByStreamId_
|
|
2729
|
+
shaka.offline.StreamBandwidthEstimator.prototype.getEstimate_=function(a){a=this.estimateByStreamId_.get(a);null==a&&(a=0,shaka.log.error("Asking for bitrate of stream not given to the estimator"));0==a&&shaka.log.warning("Using bitrate of 0, this stream won't affect progress");return a};shaka.offline.StreamBandwidthEstimator.DEFAULT_AUDIO_BITRATE_=393216;shaka.offline.StreamBandwidthEstimator.DEFAULT_TEXT_BITRATE_=52;shaka.offline.StreamBandwidthEstimator.DEFAULT_IMAGE_BITRATE_=2048;shaka.offline.Storage=function(a){var b=this;if(a&&a.constructor!=shaka.Player)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.STORAGE,shaka.util.Error.Code.LOCAL_PLAYER_INSTANCE_REQUIRED);this.networkingEngine_=this.config_=null;a?(this.config_=a.getSharedConfiguration(),this.networkingEngine_=a.getNetworkingEngine(),goog.asserts.assert(this.networkingEngine_,"Storage should not be initialized with a player that had |destroy| called on it.")):(this.config_=
|
|
2717
2730
|
shaka.util.PlayerConfiguration.createDefault(),this.networkingEngine_=new shaka.net.NetworkingEngine);this.openOperations_=[];this.openDownloadManagers_=[];var c=!a;this.destroyer_=new shaka.util.Destroyer(function(){var d,e,f,g,h;return $jscomp.asyncExecutePromiseGeneratorProgram(function(k){switch(k.nextAddress){case 1:return k.yield(Promise.all(b.openDownloadManagers_.map(function(l){return l.abortAll()})),2);case 2:d=function(){};e=[];f=$jscomp.makeIterator(b.openOperations_);for(g=f.next();!g.done;g=
|
|
2718
2731
|
f.next())h=g.value,e.push(h.then(d,d));return k.yield(Promise.all(e),3);case 3:if(!c){k.jumpTo(4);break}return k.yield(b.networkingEngine_.destroy(),4);case 4:b.config_=null,b.networkingEngine_=null,k.jumpToEnd()}})});this.nextExternalStreamId_=1E9};shaka.offline.Storage.support=function(){return shaka.util.Platform.supportsMediaSource()?shaka.offline.StorageMuxer.support():!1};shaka.offline.Storage.prototype.destroy=function(){return this.destroyer_.destroy()};
|
|
2719
2732
|
shaka.offline.Storage.prototype.configure=function(a,b){goog.asserts.assert("object"==typeof a||2==arguments.length,"String configs should have values!");2==arguments.length&&"string"==typeof a&&(a=shaka.util.ConfigUtils.convertToConfigObject(a,b));goog.asserts.assert("object"==typeof a,"Should be an object!");goog.asserts.assert(this.config_,"Cannot reconfigure storage after calling destroy.");return shaka.util.PlayerConfiguration.mergeConfigObjects(this.config_,a)};
|
|
2720
2733
|
shaka.offline.Storage.prototype.getConfiguration=function(){goog.asserts.assert(this.config_,"Config must not be null!");var a=shaka.util.PlayerConfiguration.createDefault();shaka.util.PlayerConfiguration.mergeConfigObjects(a,this.config_,shaka.util.PlayerConfiguration.createDefault());return a};shaka.offline.Storage.prototype.getNetworkingEngine=function(){return this.networkingEngine_};
|
|
2721
2734
|
shaka.offline.Storage.prototype.store=function(a,b,c,d,e){var f=this;goog.asserts.assert(this.networkingEngine_,"Cannot call |store| after calling |destroy|.");var g=this.getConfiguration(),h=new shaka.offline.DownloadManager(this.networkingEngine_);this.openDownloadManagers_.push(h);b=this.store_(a,b||{},d||[],e||[],function(){var k;return $jscomp.asyncExecutePromiseGeneratorProgram(function(l){if(1==l.nextAddress)return goog.asserts.assert(f.networkingEngine_,"Should not call |store| after |destroy|"),
|
|
2722
2735
|
c?l.jumpTo(2):l.yield(shaka.net.NetworkingUtils.getMimeType(a,f.networkingEngine_,g.manifest.retryParameters),3);2!=l.nextAddress&&(c=l.yieldResult);k=shaka.media.ManifestParser.getFactory(a,c||null);return l.return(k())})},g,h);b=new shaka.util.AbortableOperation(b,function(){return h.abortAll()});b.finally(function(){shaka.util.ArrayUtils.remove(f.openDownloadManagers_,h)});return this.startAbortableOperation_(b)};
|
|
2723
|
-
shaka.offline.Storage.prototype.store_=function(a,b,c,d,e,f,g){var h=this,k,l,m,n,p,q,r,t,u,v,w,x,
|
|
2724
|
-
if(!t)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.STORAGE,shaka.util.Error.Code.CANNOT_STORE_LIVE_OFFLINE,a);u=$jscomp.makeIterator(c);v=u.next();case 7:if(v.done){
|
|
2725
|
-
r.variants),
|
|
2726
|
-
A.language,A.kind,A.mime,A.codecs),14);case 14:
|
|
2727
|
-
|
|
2728
|
-
F));case 3:return
|
|
2729
|
-
shaka.offline.Storage.prototype.downloadSegments_=function(a,b,c,d,e,f,g,h,k){var l=this,m,n,p,q,r,t,u,v,w,x,
|
|
2730
|
-
|
|
2731
|
-
|
|
2732
|
-
if(!l.getManifestIsEncrypted_(g)||!r||l.getManifestIncludesInitData_(g)){
|
|
2733
|
-
b,c,v,w,function(){return p()}),9);case 9:p(),goog.asserts.assert(!c.isIncomplete,"The manifest should be complete by now");case 7:
|
|
2736
|
+
shaka.offline.Storage.prototype.store_=function(a,b,c,d,e,f,g){var h=this,k,l,m,n,p,q,r,t,u,v,w,x,z,B,A,y,C,D,E,F,H,J,K,L;return $jscomp.asyncExecutePromiseGeneratorProgram(function(G){switch(G.nextAddress){case 1:return h.requireSupport_(),l=k=null,m=new shaka.offline.StorageMuxer,q=p=n=null,G.setCatchFinallyBlocks(2,3),G.yield(e(),5);case 5:return k=G.yieldResult,G.yield(h.parseManifest(a,k,f),6);case 6:r=G.yieldResult;h.ensureNotDestroyed_();t=!r.presentationTimeline.isLive()&&!r.presentationTimeline.isInProgress();
|
|
2737
|
+
if(!t)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.STORAGE,shaka.util.Error.Code.CANNOT_STORE_LIVE_OFFLINE,a);u=$jscomp.makeIterator(c);v=u.next();case 7:if(v.done){G.jumpTo(9);break}w=v.value;return G.yield(h.createExternalImageStream_(w,r),10);case 10:x=G.yieldResult;r.imageStreams.push(x);h.ensureNotDestroyed_();v=u.next();G.jumpTo(7);break;case 9:z=$jscomp.makeIterator(d),B=z.next();case 11:if(B.done)return shaka.drm.DrmEngine.configureClearKey(f.drm.clearKeys,
|
|
2738
|
+
r.variants),C=r.variants.some(function(M){if(M.audio)for(var I=$jscomp.makeIterator(M.audio.drmInfos),N=I.next();!N.done;N=I.next())if(N.value.licenseServerUri.startsWith("data:"))return!0;if(M.video)for(M=$jscomp.makeIterator(M.video.drmInfos),I=M.next();!I.done;I=M.next())if(I.value.licenseServerUri.startsWith("data:"))return!0;return!1}),D=f.offline.usePersistentLicense,C&&(D=!1),G.yield(h.createDrmEngine(r,function(M){q=q||M},f,D),15);A=B.value;return G.yield(h.createExternalTextStream_(r,A.uri,
|
|
2739
|
+
A.language,A.kind,A.mime,A.codecs),14);case 14:y=G.yieldResult;r.textStreams.push(y);h.ensureNotDestroyed_();B=z.next();G.jumpTo(11);break;case 15:l=G.yieldResult;h.ensureNotDestroyed_();if(q)throw q;return G.yield(h.filterManifest_(r,l,f,D),16);case 16:return G.yield(m.init(),17);case 17:return h.ensureNotDestroyed_(),G.yield(m.getActive(),18);case 18:return n=G.yieldResult,h.ensureNotDestroyed_(),goog.asserts.assert(l,"drmEngine should be non-null here."),E=h.makeManifestDB_(l,r,a,b,f,g,D),F=E.manifestDB,
|
|
2740
|
+
H=E.toDownload,G.yield(n.cell.addManifests([F]),19);case 19:J=G.yieldResult;h.ensureNotDestroyed_();p=J[0];goog.asserts.assert(l,"drmEngine should be non-null here.");h.ensureNotDestroyed_();if(q)throw q;return G.yield(h.downloadSegments_(H,p,F,g,f,n.cell,r,l,D),20);case 20:return h.ensureNotDestroyed_(),h.setManifestDrmFields_(r,F,l,D),G.yield(n.cell.updateManifest(p,F),21);case 21:return h.ensureNotDestroyed_(),K=shaka.offline.OfflineUri.manifest(n.path.mechanism,n.path.cell,p),G.return(shaka.offline.StoredContentUtils.fromManifestDB(K,
|
|
2741
|
+
F));case 3:return G.enterFinallyBlock(),G.yield(m.destroy(),22);case 22:if(!k){G.jumpTo(23);break}return G.yield(k.stop(),23);case 23:if(!l){G.jumpTo(25);break}return G.yield(l.destroy(),25);case 25:G.leaveFinallyBlock(0);break;case 2:L=G.enterCatchBlock();if(null==p){G.jumpTo(27);break}return G.yield(shaka.offline.Storage.cleanStoredManifest(p),27);case 27:throw q||L;}})};
|
|
2742
|
+
shaka.offline.Storage.prototype.downloadSegments_=function(a,b,c,d,e,f,g,h,k){var l=this,m,n,p,q,r,t,u,v,w,x,z;return $jscomp.asyncExecutePromiseGeneratorProgram(function(B){switch(B.nextAddress){case 1:m={};n=0;p=function(){if(l.destroyer_.destroyed()||d.isAborted())throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.STORAGE,shaka.util.Error.Code.OPERATION_ABORTED);};q=function(A,y){var C,D,E,F,H,J,K,L,G;return $jscomp.asyncExecutePromiseGeneratorProgram(function(M){if(1==
|
|
2743
|
+
M.nextAddress){C=$jscomp.makeIterator(A);D=C.next();for(E={};!D.done;E={download$jscomp$1:void 0},D=C.next())E.download$jscomp$1=D.value,p(),F=E.download$jscomp$1.makeSegmentRequest(e),H=E.download$jscomp$1.estimateId,J=E.download$jscomp$1.isInitSegment,K=function(I){return function(N){var P,O,W;return $jscomp.asyncExecutePromiseGeneratorProgram(function(Q){switch(Q.nextAddress){case 1:P=I.download$jscomp$1.ref;O=shaka.offline.DownloadInfo.idForSegmentRef(P);if(!P.aesKey){Q.jumpTo(2);break}return Q.yield(shaka.media.SegmentUtils.aesDecrypt(N,
|
|
2744
|
+
P.aesKey,I.download$jscomp$1.refPosition),3);case 3:N=Q.yieldResult;case 2:return Q.yield(f.addSegments([{data:N}]),4);case 4:W=Q.yieldResult,p(),m[O]=W[0],n+=N.byteLength,Q.jumpToEnd()}})}}(E),L=E.download$jscomp$1.ref,(G=L.getSegmentData())?d.queueData(E.download$jscomp$1.groupId,G,H,J,K):d.queue(E.download$jscomp$1.groupId,F,H,J,K);return M.yield(d.waitToFinish(),2)}p();if(!y||d.isAborted())return M.jumpTo(0);l.setManifestDrmFields_(g,c,h,k);return M.yield(f.updateManifest(b,c),0)})};r=!1;B.setCatchFinallyBlocks(2);
|
|
2745
|
+
if(!l.getManifestIsEncrypted_(g)||!r||l.getManifestIncludesInitData_(g)){B.jumpTo(4);break}return B.yield(q(a.filter(function(A){return A.isInitSegment}),!0),5);case 5:return p(),a=a.filter(function(A){return!A.isInitSegment}),t=m,u=n,m={},n=0,B.yield(shaka.offline.Storage.assignSegmentsToManifest(f,b,c,t,u,function(){return l.ensureNotDestroyed_()}),6);case 6:p();case 4:if(r){B.jumpTo(7);break}return B.yield(q(a,!1),8);case 8:return p(),v=m,w=n,m={},n=0,B.yield(shaka.offline.Storage.assignSegmentsToManifest(f,
|
|
2746
|
+
b,c,v,w,function(){return p()}),9);case 9:p(),goog.asserts.assert(!c.isIncomplete,"The manifest should be complete by now");case 7:B.leaveTryBlock(0);break;case 2:return x=B.enterCatchBlock(),z=Object.values(m),B.yield(f.removeSegments(z,function(A){}),10);case 10:throw x;}})};
|
|
2734
2747
|
shaka.offline.Storage.cleanStoredManifest=function(a){var b,c,d,e;return $jscomp.asyncExecutePromiseGeneratorProgram(function(f){switch(f.nextAddress){case 1:return b=new shaka.offline.StorageMuxer,f.yield(b.init(),2);case 2:return f.yield(b.getActive(),3);case 3:return c=f.yieldResult,d=shaka.offline.OfflineUri.manifest(c.path.mechanism,c.path.cell,a),f.yield(b.destroy(),4);case 4:return e=new shaka.offline.Storage,f.yield(e.remove(d.toString()),0)}})};
|
|
2735
2748
|
shaka.offline.Storage.assignSegmentsToManifest=function(a,b,c,d,e,f){var g,h,k,l,m,n,p,q,r,t,u;return $jscomp.asyncExecutePromiseGeneratorProgram(function(v){switch(v.nextAddress){case 1:g=!1;v.setCatchFinallyBlocks(2);h=!0;k=$jscomp.makeIterator(c.streams);for(l=k.next();!l.done;l=k.next())for(m=l.value,n=$jscomp.makeIterator(m.segments),p=n.next();!p.done;p=n.next())q=p.value,r=q.pendingSegmentRefId?d[q.pendingSegmentRefId]:null,null!=r&&(q.dataKey=r,q.pendingSegmentRefId=void 0),r=q.pendingInitSegmentRefId?
|
|
2736
2749
|
d[q.pendingInitSegmentRefId]:null,null!=r&&(q.initSegmentKey=r,q.pendingInitSegmentRefId=void 0),q.pendingSegmentRefId&&(h=!1),q.pendingInitSegmentRefId&&(h=!1);c.size+=e;h&&(c.isIncomplete=!1);return v.yield(a.updateManifest(b,c),4);case 4:g=!0;f();v.leaveTryBlock(0);break;case 2:return t=v.enterCatchBlock(),v.yield(shaka.offline.Storage.cleanStoredManifest(b),5);case 5:if(g){v.jumpTo(6);break}u=Object.values(d);return v.yield(a.removeSegments(u,function(w){}),6);case 6:throw t;}})};
|
|
2737
|
-
shaka.offline.Storage.prototype.filterManifest_=function(a,b,c,d){var e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,
|
|
2750
|
+
shaka.offline.Storage.prototype.filterManifest_=function(a,b,c,d){var e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,z,B,A,y,C,D,E,F,H,J,K,L,G,M;return $jscomp.asyncExecutePromiseGeneratorProgram(function(I){switch(I.nextAddress){case 1:return e={width:Infinity,height:Infinity},shaka.util.StreamUtils.filterByRestrictions(a,c.restrictions,e),I.yield(shaka.util.StreamUtils.filterManifestByMediaCapabilities(b,a,d,c.drm.preferredKeySystems,c.drm.keySystemsMapping),2);case 2:f=[];g=c.preferredDecodingAttributes;h=c.preferredVideoCodecs;
|
|
2738
2751
|
k=c.preferredAudioCodecs;l=c.preferredTextFormats;shaka.util.StreamUtils.chooseCodecsAndFilterManifest(a,h,k,g,l);m=$jscomp.makeIterator(a.variants);for(n=m.next();!n.done;n=m.next())p=n.value,goog.asserts.assert(shaka.util.StreamUtils.isPlayable(p),'We should have already filtered by "is playable"'),f.push(shaka.util.StreamUtils.variantToTrack(p));q=$jscomp.makeIterator(a.textStreams);for(r=q.next();!r.done;r=q.next())t=r.value,f.push(shaka.util.StreamUtils.textStreamToTrack(t));u=$jscomp.makeIterator(a.imageStreams);
|
|
2739
|
-
for(v=u.next();!v.done;v=u.next())w=v.value,f.push(shaka.util.StreamUtils.imageStreamToTrack(w));return
|
|
2740
|
-
shaka.util.Error.Code.STORAGE_LIMIT_REACHED);
|
|
2741
|
-
"text"==
|
|
2752
|
+
for(v=u.next();!v.done;v=u.next())w=v.value,f.push(shaka.util.StreamUtils.imageStreamToTrack(w));return I.yield(c.offline.trackSelectionCallback(f),3);case 3:x=I.yieldResult;z=a.presentationTimeline.getDuration();B=0;A=$jscomp.makeIterator(x);for(y=A.next();!y.done;y=A.next())C=y.value,D=C.bandwidth*z/8,B+=D;I.setCatchFinallyBlocks(4);return I.yield(c.offline.downloadSizeCallback(B),6);case 6:E=I.yieldResult;if(!E)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.STORAGE,
|
|
2753
|
+
shaka.util.Error.Code.STORAGE_LIMIT_REACHED);I.leaveTryBlock(5);break;case 4:F=I.enterCatchBlock();if(F instanceof shaka.util.Error)throw F;shaka.log.warning("downloadSizeCallback has produced an unexpected error",F);throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.STORAGE,shaka.util.Error.Code.DOWNLOAD_SIZE_CALLBACK_ERROR);case 5:H=new Set;J=new Set;K=new Set;L=$jscomp.makeIterator(x);for(G=L.next();!G.done;G=L.next())M=G.value,"variant"==M.type&&H.add(M.id),
|
|
2754
|
+
"text"==M.type&&J.add(M.id),"image"==M.type&&K.add(M.id);a.variants=a.variants.filter(function(N){return H.has(N.id)});a.textStreams=a.textStreams.filter(function(N){return J.has(N.id)});a.imageStreams=a.imageStreams.filter(function(N){return K.has(N.id)});shaka.offline.Storage.validateManifest_(a);I.jumpToEnd()}})};
|
|
2742
2755
|
shaka.offline.Storage.prototype.makeManifestDB_=function(a,b,c,d,e,f,g){var h=shaka.offline.StoredContentUtils.fromManifest(c,b,0,d),k=e.offline.progressCallback;f.setCallbacks(function(r,t){h.size=t;k(h,r)},function(r,t){l&&g&&m==t&&a.newInitData("cenc",r)});var l=this.getManifestIsEncrypted_(b)&&!this.getManifestIncludesInitData_(b),m=null;if(l){var n=a.getDrmInfo();m=shaka.offline.Storage.defaultSystemIds_.get(n.keySystem)}n=new shaka.offline.StreamBandwidthEstimator;for(var p=$jscomp.makeIterator(b.textStreams),
|
|
2743
2756
|
q=p.next();!q.done;q=p.next())n.addText(q.value);p=$jscomp.makeIterator(b.imageStreams);for(q=p.next();!q.done;q=p.next())n.addImage(q.value);p=$jscomp.makeIterator(b.variants);for(q=p.next();!q.done;q=p.next())n.addVariant(q.value);f=this.createStreams_(f,n,a,b,e);e=f.streams;f=f.toDownload;(n=a.getDrmInfo())&&g&&(n.initData=[]);return{manifestDB:{creationTime:Date.now(),originalManifestUri:c,duration:b.presentationTimeline.getDuration(),size:0,expiration:a.getExpiration(),streams:e,sessionIds:g?
|
|
2744
2757
|
a.getSessionIds():[],drmInfo:n,appMetadata:d,isIncomplete:!0,sequenceMode:b.sequenceMode,type:b.type},toDownload:f}};shaka.offline.Storage.prototype.getManifestIsEncrypted_=function(a){return a.variants.some(function(b){var c=b.audio&&b.audio.encrypted;return b.video&&b.video.encrypted||c})};
|
|
@@ -2801,10 +2814,10 @@ d.jumpTo(2):2!=d.nextAddress?(c=d.yieldResult,d.return(c)):d.return(shaka.media.
|
|
|
2801
2814
|
shaka.polyfill.MediaCapabilities.checkDrmSupport_=function(a,b,c){var d,e,f,g,h,k,l,m,n,p,q,r;return $jscomp.asyncExecutePromiseGeneratorProgram(function(t){switch(t.nextAddress){case 1:d=shaka.util.MimeUtils;e=[];f=[];c.audio&&(g={robustness:c.audio.robustness||"",contentType:b.contentType},shaka.util.Platform.isTizen()&&b.contentType.includes('codecs="ac-3"')&&(g.contentType='audio/mp4; codecs="ec-3"'),c.audio.encryptionScheme&&(g.encryptionScheme=c.audio.encryptionScheme),e.push(g));c.video&&(h=
|
|
2802
2815
|
{robustness:c.video.robustness||"",contentType:a.contentType},c.video.encryptionScheme&&(h.encryptionScheme=c.video.encryptionScheme),f.push(h));k={initDataTypes:[c.initDataType],distinctiveIdentifier:c.distinctiveIdentifier,persistentState:c.persistentState,sessionTypes:c.sessionTypes};e.length&&(k.audioCapabilities=e);f.length&&(k.videoCapabilities=f);l=a?a.contentType:"";m=b?b.contentType:"";n=d.getBasicType(l)+";"+d.getCodecBase(l);p=d.getBasicType(m)+";"+d.getCodecBase(m);q=c.keySystem;r=null;
|
|
2803
2816
|
t.setCatchFinallyBlocks(2);if(shaka.drm.DrmUtils.hasMediaKeySystemAccess(n,p,q)){r=shaka.drm.DrmUtils.getMediaKeySystemAccess(n,p,q);t.jumpTo(4);break}return t.yield(navigator.requestMediaKeySystemAccess(c.keySystem,[k]),5);case 5:r=t.yieldResult,shaka.drm.DrmUtils.setMediaKeySystemAccess(n,p,q,r);case 4:t.leaveTryBlock(3);break;case 2:t.enterCatchBlock(),shaka.log.info("navigator.requestMediaKeySystemAccess failed.");case 3:return t.return(r)}})};
|
|
2804
|
-
shaka.polyfill.MediaCapabilities.canCastDisplayType_=function(a){var b,c,d,e;return $jscomp.asyncExecutePromiseGeneratorProgram(function(
|
|
2805
|
-
(b+="; width="+a.width+"; height="+a.height);a.framerate&&(c=Math.round(a.framerate),24>c||30<c)&&(b+="; framerate="+a.framerate);d=a.transferFunction||"";switch(d){case "":case "srgb":break;case "pq":b+="; eotf=smpte2084";break;case "hlg":b+="; eotf=arib-std-b67";break;default:return
|
|
2806
|
-
|
|
2807
|
-
shaka.polyfill.
|
|
2817
|
+
shaka.polyfill.MediaCapabilities.canCastDisplayType_=function(a){var b,c,d,e,f;return $jscomp.asyncExecutePromiseGeneratorProgram(function(g){if(1==g.nextAddress){if(!(window.cast&&cast.__platform__&&cast.__platform__.canDisplayType))return shaka.log.warning("Expected cast APIs to be available! Falling back to shaka.media.Capabilities.isTypeSupported() for type support."),g.return(shaka.media.Capabilities.isTypeSupported(a.contentType));b=a.contentType;a.width&&a.height&&1280<a.width&&720<a.height&&
|
|
2818
|
+
(b+="; width="+a.width+"; height="+a.height);a.framerate&&(c=Math.round(a.framerate),24>c||30<c)&&(b+="; framerate="+a.framerate);d=a.transferFunction||"";switch(d){case "":case "srgb":break;case "pq":b+="; eotf=smpte2084";break;case "hlg":b+="; eotf=arib-std-b67";break;default:return g.return(!1)}e=!1;f=shaka.polyfill.MediaCapabilities.memoizedCanDisplayTypeRequests_;return f.has(b)?(e=f.get(b),g.jumpTo(2)):g.yield(cast.__platform__.canDisplayType(b),3)}2!=g.nextAddress&&(e=g.yieldResult,f.set(b,
|
|
2819
|
+
e));return g.return(e)})};goog.exportProperty(shaka.polyfill,"MediaCapabilities",shaka.polyfill.MediaCapabilities);goog.exportProperty(shaka.polyfill.MediaCapabilities,"install",shaka.polyfill.MediaCapabilities.install);shaka.polyfill.MediaCapabilities.originalMcap=null;goog.exportProperty(shaka.polyfill.MediaCapabilities,"originalMcap",shaka.polyfill.MediaCapabilities.originalMcap);shaka.polyfill.MediaCapabilities.memoizedCanDisplayTypeRequests_=new Map;
|
|
2820
|
+
shaka.polyfill.register(shaka.polyfill.MediaCapabilities.install,-1);shaka.polyfill.MediaSource=function(){};
|
|
2808
2821
|
shaka.polyfill.MediaSource.install=function(){shaka.log.debug("MediaSource.install");var a=shaka.util.Platform.safariVersion();window.MediaSource||window.ManagedMediaSource?a&&window.MediaSource?10>=a?(shaka.log.info("Blacklisting MSE on Safari <= 10."),shaka.polyfill.MediaSource.blacklist_()):12>=a?(shaka.log.info("Patching Safari 11 & 12 MSE bugs."),shaka.polyfill.MediaSource.stubAbort_(),shaka.polyfill.MediaSource.patchRemovalRange_()):15>=a&&(shaka.log.info("Patching Safari 13 & 14 & 15 MSE bugs."),shaka.polyfill.MediaSource.stubAbort_()):
|
|
2809
2822
|
shaka.util.Platform.isZenterio()?(shaka.polyfill.MediaSource.stubAbort_(),shaka.polyfill.MediaSource.patchRemovalRange_()):shaka.util.Platform.isTizen2()||shaka.util.Platform.isTizen3()||shaka.util.Platform.isTizen4()?(shaka.log.info("Rejecting Opus."),shaka.polyfill.MediaSource.rejectCodec_("opus")):shaka.util.Platform.isComcastX1()?(shaka.polyfill.MediaSource.stubAbort_(),shaka.polyfill.MediaSource.patchRemovalRange_()):shaka.log.info("Using native MSE as-is."):shaka.log.info("No MSE implementation available.");
|
|
2810
2823
|
(window.MediaSource||window.ManagedMediaSource)&&shaka.polyfill.MediaSource.rejectContainer_("mp2t");window.MediaSource&&MediaSource.isTypeSupported('video/webm; codecs="vp9"')&&!MediaSource.isTypeSupported('video/webm; codecs="vp09.00.10.08"')&&(shaka.log.info("Patching vp09 support queries."),shaka.polyfill.MediaSource.patchVp09_())};shaka.polyfill.MediaSource.blacklist_=function(){window.MediaSource=null};
|
|
@@ -2907,16 +2920,16 @@ g,"subFrameRate"),p=f.getAttributeNSList(l,g,"frameRateMultiplier"),q=f.getAttri
|
|
|
2907
2920
|
"metadata")[0];p=(p?p.children:[]).filter(function(v){return"\n"!=v});q=f.getElementsByTagName(l,"style");l=f.getElementsByTagName(l,"region");r=[];t=$jscomp.makeIterator(l);for(var u=t.next();!u.done;u=t.next())(u=e.parseCueRegion_(u.value,q,g))&&r.push(u);if(f.findChildren(k,"p").length)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.TEXT,shaka.util.Error.Code.INVALID_TEXT_CUE,"<p> can only be inside <div> in TTML");g=$jscomp.makeIterator(f.findChildren(k,
|
|
2908
2921
|
"div"));for(t=g.next();!t.done;t=g.next())if(f.findChildren(t.value,"span").length)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.TEXT,shaka.util.Error.Code.INVALID_TEXT_CUE,"<span> can only be inside <p> in TTML");if(b=e.parseCue_(k,b,m,p,q,l,r,h,n,null,!1,c,d))b.backgroundColor||(b.backgroundColor="transparent"),a.push(b);return a};
|
|
2909
2922
|
shaka.text.TtmlTextParser.parseCue_=function(a,b,c,d,e,f,g,h,k,l,m,n,p){var q=shaka.util.TXml,r=shaka.util.StringUtils,t=l;if(q.isText(a)){if(!m)return null;var u={tagName:"span",children:[q.getTextContents(a)],attributes:{},parent:null}}else u=a;goog.asserts.assert(u,"cueElement should be non-null!");for(var v=null,w=$jscomp.makeIterator(shaka.text.TtmlTextParser.smpteNsList_),x=w.next();!x.done&&!(v=shaka.text.TtmlTextParser.getElementsFromCollection_(u,"backgroundImage",d,"#",x.value)[0]);x=w.next());
|
|
2910
|
-
w=null;x=q.getAttributeNSList(u,shaka.text.TtmlTextParser.smpteNsList_,"backgroundImage");var
|
|
2911
|
-
A=
|
|
2912
|
-
p=null==p?Infinity:p+b.periodStart;n=Math.max(n,b.segmentStart);p=Math.min(p,b.segmentEnd);if(!
|
|
2913
|
-
k=shaka.text.TtmlTextParser.getElementsFromCollection_(u,"region",f,"")[0];if(u.attributes.region&&k&&k.attributes["xml:id"]){var
|
|
2923
|
+
w=null;x=q.getAttributeNSList(u,shaka.text.TtmlTextParser.smpteNsList_,"backgroundImage");var z=/^(urn:)(mpeg:[a-z0-9][a-z0-9-]{0,31}:)(subs:)([0-9]+)$/;if(x&&z.test(x)){w=parseInt(x.split(":").pop(),10)-1;if(w>=p.length)return null;w=p[w]}else n&&x&&!x.startsWith("#")&&(z=new goog.Uri(n),x=new goog.Uri(x),(x=z.resolve(x).toString())&&(w=x));if("p"==a.tagName||v||w)m=!0;a=m;x="default"==(u.attributes["xml:space"]||(h?"default":"preserve"));z=u.children.every(q.isText);h=[];if(!z)for(var B=$jscomp.makeIterator(u.children),
|
|
2924
|
+
A=B.next();!A.done;A=B.next())(A=shaka.text.TtmlTextParser.parseCue_(A.value,b,c,d,e,f,g,x,k,u,m,n,p))&&h.push(A);d=null!=l;n=q.getTextContents(u);n=u.children.length&&n&&/\S/.test(n);B=u.attributes.begin||u.attributes.end||u.attributes.dur;if(!(B||n||"br"==u.tagName||0!=h.length||d&&!x))return null;p=shaka.text.TtmlTextParser.parseTime_(u,c);n=p.start;for(p=p.end;t&&q.isNode(t)&&"tt"!=t.tagName;)p=shaka.text.TtmlTextParser.resolveTime_(t,c,n,p),n=p.start,p=p.end,t=t.parent;null==n&&(n=0);n+=b.periodStart;
|
|
2925
|
+
p=null==p?Infinity:p+b.periodStart;n=Math.max(n,b.segmentStart);p=Math.min(p,b.segmentEnd);if(!B&&0<h.length)for(n=Infinity,p=0,b=$jscomp.makeIterator(h),c=b.next();!c.done;c=b.next())c=c.value,n=Math.min(n,c.startTime),p=Math.max(p,c.endTime);if("br"==u.tagName)return e=new shaka.text.Cue(n,p,""),e.lineBreak=!0,e;b="";z&&(b=r.htmlUnescape(shaka.util.TXml.getTextContents(u)||""),x&&(b=b.replace(/\s+/g," ")));r=new shaka.text.Cue(n,p,b);r.nestedCues=h;m||(r.isContainer=!0);k&&(r.cellResolution=k);
|
|
2926
|
+
k=shaka.text.TtmlTextParser.getElementsFromCollection_(u,"region",f,"")[0];if(u.attributes.region&&k&&k.attributes["xml:id"]){var y=k.attributes["xml:id"];r.region=g.filter(function(C){return C.id==y})[0]}g=k;l&&d&&!u.attributes.region&&!u.attributes.style&&(g=shaka.text.TtmlTextParser.getElementsFromCollection_(l,"region",f,"")[0]);shaka.text.TtmlTextParser.addStyle_(r,u,g,v,w,e,a,0==h.length);return r};
|
|
2914
2927
|
shaka.text.TtmlTextParser.parseCueRegion_=function(a,b,c){var d=shaka.text.TtmlTextParser,e=new shaka.text.CueRegion,f=a.attributes["xml:id"];if(!f)return shaka.log.warning("TtmlTextParser parser encountered a region with no id. Region will be ignored."),null;e.id=f;f=null;c&&(f=d.percentValues_.exec(c)||d.pixelValues_.exec(c));c=f?Number(f[1]):null;f=f?Number(f[2]):null;var g,h=d.getStyleAttributeFromRegion_(a,b,"extent");if(h){var k=(g=d.percentValues_.exec(h))||d.pixelValues_.exec(h);null!=k&&
|
|
2915
2928
|
(e.width=Number(k[1]),e.height=Number(k[2]),g||(null!=c&&(e.width=100*e.width/c),null!=f&&(e.height=100*e.height/f)),e.widthUnits=g||null!=c?shaka.text.CueRegion.units.PERCENTAGE:shaka.text.CueRegion.units.PX,e.heightUnits=g||null!=f?shaka.text.CueRegion.units.PERCENTAGE:shaka.text.CueRegion.units.PX)}if(a=d.getStyleAttributeFromRegion_(a,b,"origin"))if(k=(g=d.percentValues_.exec(a))||d.pixelValues_.exec(a),null!=k)e.viewportAnchorX=Number(k[1]),e.viewportAnchorY=Number(k[2]),g?h||(e.width=100-e.viewportAnchorX,
|
|
2916
2929
|
e.widthUnits=shaka.text.CueRegion.units.PERCENTAGE,e.height=100-e.viewportAnchorY,e.heightUnits=shaka.text.CueRegion.units.PERCENTAGE):(null!=f&&(e.viewportAnchorY=100*e.viewportAnchorY/f),null!=c&&(e.viewportAnchorX=100*e.viewportAnchorX/c)),e.viewportAnchorUnits=g||null!=c?shaka.text.CueRegion.units.PERCENTAGE:shaka.text.CueRegion.units.PX;return e};
|
|
2917
2930
|
shaka.text.TtmlTextParser.convertTTMLrgbaToHTMLrgba_=function(a){var b=a.match(/rgba\(([^)]+)\)/);return b&&(b=b[1].split(","),4==b.length)?(b[3]=String(Number(b[3])/255),"rgba("+b.join(",")+")"):a};
|
|
2918
2931
|
shaka.text.TtmlTextParser.addStyle_=function(a,b,c,d,e,f,g,h){var k=shaka.text.TtmlTextParser,l=shaka.util.TXml,m=shaka.text.Cue;g=g||h;"rtl"==k.getStyleAttribute_(b,c,f,"direction",g)&&(a.direction=m.direction.HORIZONTAL_RIGHT_TO_LEFT);h=k.getStyleAttribute_(b,c,f,"writingMode",g);"tb"==h||"tblr"==h?a.writingMode=m.writingMode.VERTICAL_LEFT_TO_RIGHT:"tbrl"==h?a.writingMode=m.writingMode.VERTICAL_RIGHT_TO_LEFT:"rltb"==h||"rl"==h?a.direction=m.direction.HORIZONTAL_RIGHT_TO_LEFT:h&&(a.direction=m.direction.HORIZONTAL_LEFT_TO_RIGHT);
|
|
2919
|
-
(h=k.getStyleAttribute_(b,c,f,"textAlign",!0))?(a.positionAlign=k.textAlignToPositionAlign_
|
|
2932
|
+
(h=k.getStyleAttribute_(b,c,f,"textAlign",!0))?(a.positionAlign=k.textAlignToPositionAlign_.get(h),a.lineAlign=k.textAlignToLineAlign_.get(h),goog.asserts.assert(h.toUpperCase()in m.textAlign,h.toUpperCase()+" Should be in Cue.textAlign values!"),a.textAlign=m.textAlign[h.toUpperCase()]):a.textAlign=m.textAlign.CENTER;if(h=k.getStyleAttribute_(b,c,f,"displayAlign",!0))goog.asserts.assert(h.toUpperCase()in m.displayAlign,h.toUpperCase()+" Should be in Cue.displayAlign values!"),a.displayAlign=m.displayAlign[h.toUpperCase()];
|
|
2920
2933
|
if(h=k.getStyleAttribute_(b,c,f,"color",g))a.color=k.convertTTMLrgbaToHTMLrgba_(h);if(h=k.getStyleAttribute_(b,c,f,"backgroundColor",g))a.backgroundColor=k.convertTTMLrgbaToHTMLrgba_(h);if(h=k.getStyleAttribute_(b,c,f,"border",g))a.border=h;if(h=k.getStyleAttribute_(b,c,f,"fontFamily",g))switch(h){case "monospaceSerif":a.fontFamily="Courier New,Liberation Mono,Courier,monospace";break;case "proportionalSansSerif":a.fontFamily="Arial,Helvetica,Liberation Sans,sans-serif";break;case "sansSerif":a.fontFamily=
|
|
2921
2934
|
"sans-serif";break;case "monospaceSansSerif":a.fontFamily="Consolas,monospace";break;case "proportionalSerif":a.fontFamily="serif";break;default:a.fontFamily=h.split(",").filter(function(n){return"default"!=n}).join(",")}(h=k.getStyleAttribute_(b,c,f,"fontWeight",g))&&"bold"==h&&(a.fontWeight=m.fontWeight.BOLD);h=k.getStyleAttribute_(b,c,f,"wrapOption",g);a.wrapLine=h&&"noWrap"==h?!1:!0;(h=k.getStyleAttribute_(b,c,f,"lineHeight",g))&&h.match(k.unitValues_)&&(a.lineHeight=h);(h=k.getStyleAttribute_(b,
|
|
2922
2935
|
c,f,"fontSize",g))&&(h.match(k.unitValues_)||h.match(k.percentValue_))&&(a.fontSize=h);if(h=k.getStyleAttribute_(b,c,f,"fontStyle",g))goog.asserts.assert(h.toUpperCase()in m.fontStyle,h.toUpperCase()+" Should be in Cue.fontStyle values!"),a.fontStyle=m.fontStyle[h.toUpperCase()];d?(e=d.attributes.imageType||d.attributes.imagetype,m=d.attributes.encoding,d=l.getTextContents(d).trim(),"PNG"==e&&"Base64"==m&&d&&(a.backgroundImage="data:image/png;base64,"+d)):e&&(a.backgroundImage=e);if(d=k.getStyleAttribute_(b,
|
|
@@ -2937,8 +2950,8 @@ shaka.text.TtmlTextParser.parseTimeFromRegex_=function(a,b){a=a.exec(b);return n
|
|
|
2937
2950
|
goog.exportProperty(shaka.text.TtmlTextParser.prototype,"parseMedia",shaka.text.TtmlTextParser.prototype.parseMedia);goog.exportProperty(shaka.text.TtmlTextParser.prototype,"setManifestType",shaka.text.TtmlTextParser.prototype.setManifestType);goog.exportProperty(shaka.text.TtmlTextParser.prototype,"setSequenceMode",shaka.text.TtmlTextParser.prototype.setSequenceMode);goog.exportProperty(shaka.text.TtmlTextParser.prototype,"parseInit",shaka.text.TtmlTextParser.prototype.parseInit);
|
|
2938
2951
|
shaka.text.TtmlTextParser.RateInfo_=function(a,b,c,d){this.frameRate=Number(a)||30;this.subFrameRate=Number(b)||1;this.tickRate=Number(d);0==this.tickRate&&(this.tickRate=a?this.frameRate*this.subFrameRate:1);c&&(a=/^(\d+) (\d+)$/g.exec(c))&&(this.frameRate*=Number(a[1])/Number(a[2]))};shaka.text.TtmlTextParser.percentValues_=/^(\d{1,2}(?:\.\d+)?|100(?:\.0+)?)% (\d{1,2}(?:\.\d+)?|100(?:\.0+)?)%$/;shaka.text.TtmlTextParser.percentValue_=/^(\d{1,4}(?:\.\d+)?|100)%$/;
|
|
2939
2952
|
shaka.text.TtmlTextParser.unitValues_=/^(\d+px|\d+em|\d*\.?\d+c)$/;shaka.text.TtmlTextParser.pixelValues_=/^(\d+)px (\d+)px$/;shaka.text.TtmlTextParser.timeColonFormatFrames_=/^(\d{2,}):(\d{2}):(\d{2}):(\d{2})\.?(\d+)?$/;shaka.text.TtmlTextParser.timeColonFormat_=/^(?:(\d{2,}):)?(\d{2}):(\d{2})$/;shaka.text.TtmlTextParser.timeColonFormatMilliseconds_=/^(?:(\d{2,}):)?(\d{2}):(\d{2}\.\d+)$/;shaka.text.TtmlTextParser.timeFramesFormat_=/^(\d*(?:\.\d*)?)f$/;shaka.text.TtmlTextParser.timeTickFormat_=/^(\d*(?:\.\d*)?)t$/;
|
|
2940
|
-
shaka.text.TtmlTextParser.timeHMSFormat_=RegExp("^(?:(\\d*(?:\\.\\d*)?)h)?(?:(\\d*(?:\\.\\d*)?)m)?(?:(\\d*(?:\\.\\d*)?)s)?(?:(\\d*(?:\\.\\d*)?)ms)?$");shaka.text.TtmlTextParser.textAlignToLineAlign_=
|
|
2941
|
-
shaka.text.TtmlTextParser.textAlignToPositionAlign_=
|
|
2953
|
+
shaka.text.TtmlTextParser.timeHMSFormat_=RegExp("^(?:(\\d*(?:\\.\\d*)?)h)?(?:(\\d*(?:\\.\\d*)?)m)?(?:(\\d*(?:\\.\\d*)?)s)?(?:(\\d*(?:\\.\\d*)?)ms)?$");shaka.text.TtmlTextParser.textAlignToLineAlign_=(new Map).set("left",shaka.text.Cue.lineAlign.START).set("center",shaka.text.Cue.lineAlign.CENTER).set("right",shaka.text.Cue.lineAlign.END).set("start",shaka.text.Cue.lineAlign.START).set("end",shaka.text.Cue.lineAlign.END);
|
|
2954
|
+
shaka.text.TtmlTextParser.textAlignToPositionAlign_=(new Map).set("left",shaka.text.Cue.positionAlign.LEFT).set("center",shaka.text.Cue.positionAlign.CENTER).set("right",shaka.text.Cue.positionAlign.RIGHT);shaka.text.TtmlTextParser.parameterNs_=["http://www.w3.org/ns/ttml#parameter","http://www.w3.org/2006/10/ttaf1#parameter"];shaka.text.TtmlTextParser.styleNs_=["http://www.w3.org/ns/ttml#styling","http://www.w3.org/2006/10/ttaf1#styling"];shaka.text.TtmlTextParser.styleEbuttsNs_="urn:ebu:tt:style";
|
|
2942
2955
|
shaka.text.TtmlTextParser.smpteNsList_=["http://www.smpte-ra.org/schemas/2052-1/2010/smpte-tt","http://www.smpte-ra.org/schemas/2052-1/2013/smpte-tt"];shaka.text.TextEngine.registerParser("application/ttml+xml",function(){return new shaka.text.TtmlTextParser});shaka.text.Mp4TtmlParser=function(){this.parser_=new shaka.text.TtmlTextParser};
|
|
2943
2956
|
shaka.text.Mp4TtmlParser.prototype.parseInit=function(a){var b=shaka.util.Mp4Parser,c=!1;(new b).box("moov",b.children).box("trak",b.children).box("mdia",b.children).box("minf",b.children).box("stbl",b.children).fullBox("stsd",b.sampleDescription).box("stpp",function(d){c=!0;d.parser.stop()}).parse(a);if(!c)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.TEXT,shaka.util.Error.Code.INVALID_MP4_TTML);};shaka.text.Mp4TtmlParser.prototype.setSequenceMode=function(a){};
|
|
2944
2957
|
shaka.text.Mp4TtmlParser.prototype.setManifestType=function(a){};
|
|
@@ -3011,7 +3024,7 @@ shaka.transmuxer.TransmuxerEngine.registerTransmuxer("audio/aac",function(){retu
|
|
|
3011
3024
|
shaka.transmuxer.Ac3.parseFrame=function(a,b){if(b+8>a.length||11!==a[b]||119!==a[b+1])return null;var c=a[b+4]>>6;if(3<=c)return null;var d=a[b+4]&63,e=2*[64,69,96,64,70,96,80,87,120,80,88,120,96,104,144,96,105,144,112,121,168,112,122,168,128,139,192,128,140,192,160,174,240,160,175,240,192,208,288,192,209,288,224,243,336,224,244,336,256,278,384,256,279,384,320,348,480,320,349,480,384,417,576,384,418,576,448,487,672,448,488,672,512,557,768,512,558,768,640,696,960,640,697,960,768,835,1152,768,836,
|
|
3012
3025
|
1152,896,975,1344,896,976,1344,1024,1114,1536,1024,1115,1536,1152,1253,1728,1152,1254,1728,1280,1393,1920,1280,1394,1920][3*d+c];if(b+e>a.length)return null;var f=a[b+6]>>5,g=0;2===f?g+=2:(f&1&&1!==f&&(g+=2),f&4&&(g+=2));g=(a[b+6]<<8|a[b+7])>>12-g&1;var h=a[b+5]&7;a=new Uint8Array([c<<6|a[b+5]>>3<<1|h>>2,(h&3)<<6|f<<3|g<<2|d>>4,d<<4&224]);return{sampleRate:[48E3,44100,32E3][c],channelCount:[2,1,2,3,3,4,4,5][f]+g,audioConfig:a,frameLength:e}};
|
|
3013
3026
|
shaka.transmuxer.Ac3.probe=function(a,b){if(11===a[b]&&119===a[b+1]){var c=0,d=5;b+=d;for(var e,f;0<d;){f=a[b];var g=Math.min(d,8),h=8-g;e=4278190080>>>24+h<<h;e=(f&e)>>h;c=c?c<<g|e:e;b+=1;d-=g}if(16>c)return!0}return!1};shaka.transmuxer.Ac3.AC3_SAMPLES_PER_FRAME=1536;shaka.transmuxer.Ac3Transmuxer=function(a){this.originalMimeType_=a;this.frameIndex_=0;this.initSegments=new Map;this.lastInitSegment_=null};shaka.transmuxer.Ac3Transmuxer.prototype.destroy=function(){this.initSegments.clear()};shaka.transmuxer.Ac3Transmuxer.prototype.isSupported=function(a,b){b=shaka.media.Capabilities;return this.isAc3Container_(a)?b.isTypeSupported(this.convertCodecs(shaka.util.ManifestParserUtils.ContentType.AUDIO,a)):!1};
|
|
3014
|
-
shaka.transmuxer.Ac3Transmuxer.prototype.isAc3Container_=function(a){return"audio/ac3"==a.toLowerCase().split(";")[0]};shaka.transmuxer.Ac3Transmuxer.prototype.convertCodecs=function(a,b){return this.isAc3Container_(b)?'audio/mp4; codecs="ac-3"':b};shaka.transmuxer.Ac3Transmuxer.prototype.getOriginalMimeType=function(){return this.originalMimeType_};
|
|
3027
|
+
shaka.transmuxer.Ac3Transmuxer.prototype.isAc3Container_=function(a){return"audio/ac3"==a.toLowerCase().split(";")[0]};shaka.transmuxer.Ac3Transmuxer.prototype.convertCodecs=function(a,b){return this.isAc3Container_(b)?shaka.util.Platform.requiresEC3InitSegments()?'audio/mp4; codecs="ec-3"':'audio/mp4; codecs="ac-3"':b};shaka.transmuxer.Ac3Transmuxer.prototype.getOriginalMimeType=function(){return this.originalMimeType_};
|
|
3015
3028
|
shaka.transmuxer.Ac3Transmuxer.prototype.transmux=function(a,b,c,d){var e=shaka.transmuxer.Ac3,f=shaka.util.Uint8ArrayUtils;a=shaka.util.BufferUtils.toUint8(a);for(var g=shaka.util.Id3Utils.getID3Data(a),h=g.length;h<a.length&&!e.probe(a,h);h++);var k=1E3*c.endTime;g=shaka.util.Id3Utils.getID3Frames(g);g.length&&c&&(g=g.find(function(q){return"com.apple.streaming.transportStreamTimestamp"===q.description}))&&(k=g.data);g=0;for(var l=new Uint8Array([]),m=[];h<a.length;){var n=e.parseFrame(a,h);if(!n)return Promise.reject(new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
|
|
3016
3029
|
shaka.util.Error.Category.MEDIA,shaka.util.Error.Code.TRANSMUXING_FAILED,c?c.getUris()[0]:null));b.audioSamplingRate=n.sampleRate;b.channelsCount=n.channelCount;g=n.sampleRate;l=n.audioConfig;var p=a.subarray(h,h+n.frameLength);m.push({data:p,size:n.frameLength,duration:e.AC3_SAMPLES_PER_FRAME,cts:0,flags:{isLeading:0,isDependedOn:0,hasRedundancy:0,degradPrio:0,dependsOn:2,isNonSync:0}});h+=n.frameLength}e=Math.floor(k*g/1E3);d={id:b.id,type:shaka.util.ManifestParserUtils.ContentType.AUDIO,codecs:"ac-3",
|
|
3017
3030
|
encrypted:b.encrypted&&0<b.drmInfos.length,timescale:g,duration:d,videoNalus:[],audioConfig:l,videoConfig:new Uint8Array([]),hSpacing:0,vSpacing:0,data:{sequenceNumber:this.frameIndex_,baseMediaDecodeTime:e,samples:m},stream:b};d=new shaka.util.Mp4Generator([d]);c=b.id+"_"+c.discontinuitySequence;this.initSegments.has(c)?b=this.initSegments.get(c):(b=d.initSegment(),this.initSegments.set(c,b));c=this.lastInitSegment_!==b;d=d.segmentData();this.lastInitSegment_=b;this.frameIndex_++;return c?(f=f.concat(b,
|
|
@@ -3037,15 +3050,15 @@ shaka.transmuxer.H265.parseInfo=function(a){var b=shaka.transmuxer.H265;if(!a.le
|
|
|
3037
3050
|
generalProfileSpace:a.generalProfileSpace,generalTierFlag:a.generalTierFlag,generalLevelIdc:a.generalLevelIdc,generalProfileIdc:a.generalProfileIdc,generalProfileCompatibilityFlags1:a.generalProfileCompatibilityFlags1,generalProfileCompatibilityFlags2:a.generalProfileCompatibilityFlags2,generalProfileCompatibilityFlags3:a.generalProfileCompatibilityFlags3,generalProfileCompatibilityFlags4:a.generalProfileCompatibilityFlags4,generalConstraintIndicatorFlags1:a.generalConstraintIndicatorFlags1,generalConstraintIndicatorFlags2:a.generalConstraintIndicatorFlags2,
|
|
3038
3051
|
generalConstraintIndicatorFlags3:a.generalConstraintIndicatorFlags3,generalConstraintIndicatorFlags4:a.generalConstraintIndicatorFlags4,generalConstraintIndicatorFlags5:a.generalConstraintIndicatorFlags5,generalConstraintIndicatorFlags6:a.generalConstraintIndicatorFlags6,constantFrameRate:a.constantFrameRate,minSpatialSegmentationIdc:a.minSpatialSegmentationIdc,chromaFormatIdc:a.chromaFormatIdc,bitDepthLumaMinus8:a.bitDepthLumaMinus8,bitDepthChromaMinus8:a.bitDepthChromaMinus8,parallelismType:g.parallelismType});
|
|
3039
3052
|
return{height:a.height,width:a.width,videoConfig:c,hSpacing:a.sarWidth,vSpacing:a.sarHeight}};shaka.transmuxer.H265.parseVPS_=function(a){var b=new shaka.util.ExpGolomb(a,!0);b.readUnsignedByte();b.readUnsignedByte();b.readBits(4);b.readBits(2);b.readBits(6);a=b.readBits(3);b=b.readBoolean();return{numTemporalLayers:a+1,temporalIdNested:b}};
|
|
3040
|
-
shaka.transmuxer.H265.parseSPS_=function(a){a=new shaka.util.ExpGolomb(a,!0);a.readUnsignedByte();a.readUnsignedByte();var b=0,c=0,d=0,e=0;a.readBits(4);var f=a.readBits(3);a.readBoolean();for(var g=a.readBits(2),h=a.readBits(1),k=a.readBits(5),l=a.readUnsignedByte(),m=a.readUnsignedByte(),n=a.readUnsignedByte(),p=a.readUnsignedByte(),q=a.readUnsignedByte(),r=a.readUnsignedByte(),t=a.readUnsignedByte(),u=a.readUnsignedByte(),v=a.readUnsignedByte(),w=a.readUnsignedByte(),x=a.readUnsignedByte(),
|
|
3041
|
-
|
|
3042
|
-
if(a.readBoolean())for(var E=0;E<=f;E++)a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb();else a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb();a.readUnsignedExpGolomb();a.readUnsignedExpGolomb();a.readUnsignedExpGolomb();a.readUnsignedExpGolomb();a.readUnsignedExpGolomb();a.readUnsignedExpGolomb();if(a.readBoolean()&&a.readBoolean())for(E=0;4>E;E++)for(var F=0;F<(3===E?2:6);F++)if(a.readBoolean()){var
|
|
3043
|
-
for(var
|
|
3044
|
-
F=K+
|
|
3045
|
-
a.readBoolean()&&a.readBoolean();a.readBoolean()&&(a.readBits(3),a.readBoolean(),a.readBoolean()&&(a.readUnsignedByte(),a.readUnsignedByte(),a.readUnsignedByte()));a.readBoolean()&&(a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb());a.readBoolean();a.readBoolean();a.readBoolean();if(
|
|
3046
|
-
a.readBoolean())){K=!1;
|
|
3047
|
-
a.readUnsignedExpGolomb());a.readBoolean()}if(
|
|
3048
|
-
generalProfileCompatibilityFlags2:m,generalProfileCompatibilityFlags3:n,generalProfileCompatibilityFlags4:p,generalConstraintIndicatorFlags1:q,generalConstraintIndicatorFlags2:r,generalConstraintIndicatorFlags3:t,generalConstraintIndicatorFlags4:u,generalConstraintIndicatorFlags5:v,generalConstraintIndicatorFlags6:w,minSpatialSegmentationIdc:F,constantFrameRate:0,chromaFormatIdc:
|
|
3053
|
+
shaka.transmuxer.H265.parseSPS_=function(a){a=new shaka.util.ExpGolomb(a,!0);a.readUnsignedByte();a.readUnsignedByte();var b=0,c=0,d=0,e=0;a.readBits(4);var f=a.readBits(3);a.readBoolean();for(var g=a.readBits(2),h=a.readBits(1),k=a.readBits(5),l=a.readUnsignedByte(),m=a.readUnsignedByte(),n=a.readUnsignedByte(),p=a.readUnsignedByte(),q=a.readUnsignedByte(),r=a.readUnsignedByte(),t=a.readUnsignedByte(),u=a.readUnsignedByte(),v=a.readUnsignedByte(),w=a.readUnsignedByte(),x=a.readUnsignedByte(),z=[],
|
|
3054
|
+
B=[],A=0;A<f;A++)z.push(a.readBoolean()),B.push(a.readBoolean());if(0<f)for(A=f;8>A;A++)a.readBits(2);for(A=0;A<f;A++)z[A]&&a.readBits(88),B[A]&&a.readUnsignedByte();a.readUnsignedExpGolomb();z=a.readUnsignedExpGolomb();3==z&&a.readBits(1);B=a.readUnsignedExpGolomb();A=a.readUnsignedExpGolomb();a.readBoolean()&&(b+=a.readUnsignedExpGolomb(),c+=a.readUnsignedExpGolomb(),d+=a.readUnsignedExpGolomb(),e+=a.readUnsignedExpGolomb());var y=a.readUnsignedExpGolomb(),C=a.readUnsignedExpGolomb(),D=a.readUnsignedExpGolomb();
|
|
3055
|
+
if(a.readBoolean())for(var E=0;E<=f;E++)a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb();else a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb();a.readUnsignedExpGolomb();a.readUnsignedExpGolomb();a.readUnsignedExpGolomb();a.readUnsignedExpGolomb();a.readUnsignedExpGolomb();a.readUnsignedExpGolomb();if(a.readBoolean()&&a.readBoolean())for(E=0;4>E;E++)for(var F=0;F<(3===E?2:6);F++)if(a.readBoolean()){var H=Math.min(64,1<<4+(E<<1));1<E&&a.readExpGolomb();
|
|
3056
|
+
for(var J=0;J<H;J++)a.readExpGolomb()}else a.readUnsignedExpGolomb();a.readBoolean();a.readBoolean();a.readBoolean()&&(a.readUnsignedByte(),a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb(),a.readBoolean());E=a.readUnsignedExpGolomb();for(H=F=0;H<E;H++)if(J=!1,0!==H&&(J=a.readBoolean()),J){H===E&&a.readUnsignedExpGolomb();a.readBoolean();a.readUnsignedExpGolomb();for(var K=J=0;K<=F;K++){var L=a.readBoolean(),G=!1;L||(G=a.readBoolean());(L||G)&&J++}F=J}else{K=a.readUnsignedExpGolomb();J=a.readUnsignedExpGolomb();
|
|
3057
|
+
F=K+J;for(L=0;L<K;L++)a.readUnsignedExpGolomb(),a.readBoolean();for(K=0;K<J;K++)a.readUnsignedExpGolomb(),a.readBoolean()}if(a.readBoolean())for(E=a.readUnsignedExpGolomb(),F=0;F<E;F++){for(H=0;H<D+4;H++)a.readBits(1);a.readBits(1)}E=D=1;F=0;a.readBoolean();a.readBoolean();if(a.readBoolean()){a.readBoolean()&&(H=a.readUnsignedByte(),J=[1,12,10,16,40,24,20,32,80,18,15,64,160,4,3,2],K=[1,11,11,11,33,11,11,11,33,11,11,33,99,3,2,1],0<H&&16>=H?(D=J[H-1],E=K[H-1]):255===H&&(D=a.readBits(16),E=a.readBits(16)));
|
|
3058
|
+
a.readBoolean()&&a.readBoolean();a.readBoolean()&&(a.readBits(3),a.readBoolean(),a.readBoolean()&&(a.readUnsignedByte(),a.readUnsignedByte(),a.readUnsignedByte()));a.readBoolean()&&(a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb());a.readBoolean();a.readBoolean();a.readBoolean();if(H=a.readBoolean())a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb();if(a.readBoolean()&&(a.readBits(32),a.readBits(32),a.readBoolean()&&a.readUnsignedExpGolomb(),
|
|
3059
|
+
a.readBoolean())){K=!1;H=a.readBoolean();J=a.readBoolean();if(H||J){if(K=a.readBoolean())a.readUnsignedByte(),a.readBits(5),a.readBoolean(),a.readBits(5);a.readBits(4);a.readBits(4);K&&a.readBits(4);a.readBits(5);a.readBits(5);a.readBits(5)}for(L=0;L<=f;L++){var M=!0;G=1;a.readBoolean()||(M=a.readBoolean());var I=!1;M?a.readUnsignedExpGolomb():I=a.readBoolean();I||(G=a.readUnsignedExpGolomb()+1);if(H){for(M=0;M<G;M++)a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb(),K&&(a.readUnsignedExpGolomb(),
|
|
3060
|
+
a.readUnsignedExpGolomb());a.readBoolean()}if(J){for(M=0;M<G;M++)a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb(),K&&(a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb());a.readBoolean()}}}a.readBoolean()&&(a.readBoolean(),a.readBoolean(),a.readBoolean(),F=a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb())}return{generalLevelIdc:x,generalProfileSpace:g,generalTierFlag:h,generalProfileIdc:k,generalProfileCompatibilityFlags1:l,
|
|
3061
|
+
generalProfileCompatibilityFlags2:m,generalProfileCompatibilityFlags3:n,generalProfileCompatibilityFlags4:p,generalConstraintIndicatorFlags1:q,generalConstraintIndicatorFlags2:r,generalConstraintIndicatorFlags3:t,generalConstraintIndicatorFlags4:u,generalConstraintIndicatorFlags5:v,generalConstraintIndicatorFlags6:w,minSpatialSegmentationIdc:F,constantFrameRate:0,chromaFormatIdc:z,bitDepthLumaMinus8:y,bitDepthChromaMinus8:C,width:B-(b+c)*(1===z||2===z?2:1),height:A-(d+e)*(1===z?2:1),sarWidth:D,sarHeight:E}};
|
|
3049
3062
|
shaka.transmuxer.H265.parsePPS_=function(a){var b=new shaka.util.ExpGolomb(a,!0);b.readUnsignedByte();b.readUnsignedByte();b.readUnsignedExpGolomb();b.readUnsignedExpGolomb();b.readBoolean();b.readBoolean();b.readBits(3);b.readBoolean();b.readBoolean();b.readUnsignedExpGolomb();b.readUnsignedExpGolomb();b.readExpGolomb();b.readBoolean();b.readBoolean();b.readBoolean()&&b.readUnsignedExpGolomb();b.readExpGolomb();b.readExpGolomb();b.readBoolean();b.readBoolean();b.readBoolean();b.readBoolean();a=b.readBoolean();
|
|
3050
3063
|
b=b.readBoolean();var c=1;b&&a?c=0:b?c=3:a&&(c=2);return{parallelismType:c}};
|
|
3051
3064
|
shaka.transmuxer.H265.getVideoConfiguration_=function(a,b,c,d){var e=shaka.transmuxer.H265,f=new Uint8Array(23+(5+a.byteLength)+(5+b.byteLength)+(5+c.byteLength));f[0]=1;f[1]=(d.generalProfileSpace&3)<<6|(d.generalTierFlag?1:0)<<5|d.generalProfileIdc&31;f[2]=d.generalProfileCompatibilityFlags1;f[3]=d.generalProfileCompatibilityFlags2;f[4]=d.generalProfileCompatibilityFlags3;f[5]=d.generalProfileCompatibilityFlags4;f[6]=d.generalConstraintIndicatorFlags1;f[7]=d.generalConstraintIndicatorFlags2;f[8]=
|
|
@@ -3143,7 +3156,7 @@ h.videoCapabilities.length&&!k.length||h.audioCapabilities&&h.audioCapabilities.
|
|
|
3143
3156
|
(r=e[0].audioCapabilities[0].encryptionScheme));return t.return(new EmeEncryptionSchemePolyfillMediaKeySystemAccess(p,q,r))})};EmeEncryptionSchemePolyfill.filterCapabilities_=function(a,b){return a?a.filter(function(c){return checkSupportedScheme(c.encryptionScheme,b)}):a};goog.exportSymbol("EmeEncryptionSchemePolyfill",EmeEncryptionSchemePolyfill);goog.exportProperty(EmeEncryptionSchemePolyfill,"install",EmeEncryptionSchemePolyfill.install);var McEncryptionSchemePolyfill=function(){};
|
|
3144
3157
|
McEncryptionSchemePolyfill.install=function(){McEncryptionSchemePolyfill.originalDecodingInfo_||navigator.mediaCapabilitiesEncryptionSchemePolyfilled?console.debug("McEncryptionSchemePolyfill: Already installed."):navigator.mediaCapabilities?(McEncryptionSchemePolyfill.originalDecodingInfo_=navigator.mediaCapabilities.decodingInfo,console.debug("McEncryptionSchemePolyfill: Waiting to detect encryptionScheme support."),navigator.mediaCapabilities.decodingInfo=McEncryptionSchemePolyfill.probeDecodingInfo_,
|
|
3145
3158
|
navigator.mediaCapabilitiesEncryptionSchemePolyfilled=!0):console.debug("McEncryptionSchemePolyfill: MediaCapabilities not found")};
|
|
3146
|
-
McEncryptionSchemePolyfill.probeDecodingInfo_=function(a){var b=this,c,d;return $jscomp.asyncExecutePromiseGeneratorProgram(function(e){switch(e.nextAddress){case 1:return console.assert(b==navigator.mediaCapabilities,'bad "this" for decodingInfo'),e.yield(McEncryptionSchemePolyfill.originalDecodingInfo_.call(b,a),2);case 2:c=e.yieldResult;if(!a.keySystemConfiguration)return e.return(c);if((d=c.keySystemAccess)&&hasEncryptionScheme(d))return console.debug("McEncryptionSchemePolyfill: Native encryptionScheme support found."),
|
|
3159
|
+
McEncryptionSchemePolyfill.probeDecodingInfo_=function(a){var b=this,c,d;return $jscomp.asyncExecutePromiseGeneratorProgram(function(e){switch(e.nextAddress){case 1:return console.assert(b==navigator.mediaCapabilities,'bad "this" for decodingInfo'),e.yield(McEncryptionSchemePolyfill.originalDecodingInfo_.call(b,a),2);case 2:c=e.yieldResult;if(!c.supported||!a.keySystemConfiguration)return e.return(c);if((d=c.keySystemAccess)&&hasEncryptionScheme(d))return console.debug("McEncryptionSchemePolyfill: Native encryptionScheme support found."),
|
|
3147
3160
|
navigator.mediaCapabilities.decodingInfo=McEncryptionSchemePolyfill.originalDecodingInfo_,e.return(c);console.debug("McEncryptionSchemePolyfill: No native encryptionScheme support found. Patching encryptionScheme support.");navigator.mediaCapabilities.decodingInfo=McEncryptionSchemePolyfill.polyfillDecodingInfo_;if(d){e.jumpTo(3);break}return e.yield(McEncryptionSchemePolyfill.getMediaKeySystemAccess_(a),4);case 4:return c.keySystemAccess=e.yieldResult,e.return(c);case 3:return e.return(McEncryptionSchemePolyfill.polyfillDecodingInfo_.call(b,
|
|
3148
3161
|
a))}})};
|
|
3149
3162
|
McEncryptionSchemePolyfill.polyfillDecodingInfo_=function(a){var b=this,c,d,e,f,g,h,k;return $jscomp.asyncExecutePromiseGeneratorProgram(function(l){switch(l.nextAddress){case 1:return console.assert(b==navigator.mediaCapabilities,'bad "this" for decodingInfo'),d=c=null,!a.keySystemConfiguration||(e=a.keySystemConfiguration,f=e.keySystem,d=e.audio&&e.audio.encryptionScheme,c=e.video&&e.video.encryptionScheme,g=guessSupportedScheme(f),h={powerEfficient:!1,smooth:!1,supported:!1,keySystemAccess:null,configuration:a},
|