shaka-player 4.13.0 → 4.13.1
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/dist/deps.js +3 -3
- package/dist/locales.js +34 -34
- 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 +265 -260
- package/dist/shaka-player.compiled.debug.map +4 -4
- package/dist/shaka-player.compiled.externs.js +2 -9
- package/dist/shaka-player.compiled.js +1410 -1403
- 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 +492 -486
- package/dist/shaka-player.ui.debug.map +4 -4
- package/dist/shaka-player.ui.externs.js +2 -9
- package/dist/shaka-player.ui.js +1613 -1605
- package/dist/shaka-player.ui.map +4 -4
- package/lib/cast/cast_proxy.js +2 -2
- 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/hls/hls_parser.js +95 -98
- 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 +13 -0
- 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 +12 -10
- package/lib/polyfill/media_capabilities.js +8 -9
- package/lib/text/text_engine.js +7 -7
- package/lib/text/ttml_text_parser.js +14 -16
- 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 +16 -6
- package/lib/util/player_configuration.js +1 -1
- package/lib/util/stream_utils.js +22 -17
- package/package.json +2 -2
- package/third_party/closure-uri/uri.js +13 -13
- package/ui/ad_statistics_button.js +15 -16
- package/ui/audio_language_selection.js +6 -1
- package/ui/statistics_button.js +33 -34
|
@@ -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,
|
|
@@ -144,8 +143,8 @@ if(window.console){var $jscomp$compprop0={};shaka.log.logMap_=($jscomp$compprop0
|
|
|
144
143
|
return console.info.apply(console,$jscomp.arrayFromIterable(a))},$jscomp$compprop0[shaka.log.Level.DEBUG]=function(){var a=$jscomp.getRestArguments.apply(0,arguments);return console.log.apply(console,$jscomp.arrayFromIterable(a))},$jscomp$compprop0[shaka.log.Level.V1]=function(){var a=$jscomp.getRestArguments.apply(0,arguments);return console.debug.apply(console,$jscomp.arrayFromIterable(a))},$jscomp$compprop0[shaka.log.Level.V2]=function(){var a=$jscomp.getRestArguments.apply(0,arguments);return console.debug.apply(console,
|
|
145
144
|
$jscomp.arrayFromIterable(a))},$jscomp$compprop0);shaka.log.alwaysWarn=function(){var a=$jscomp.getRestArguments.apply(0,arguments);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_[c],
|
|
146
145
|
"Unexpected log level"),shaka.log.logMap_[c]):function(){}};shaka.log.currentLevel=a;shaka.log.error=b(shaka.log.Level.ERROR);shaka.log.warning=b(shaka.log.Level.WARNING);shaka.log.info=b(shaka.log.Level.INFO);shaka.log.debug=b(shaka.log.Level.DEBUG);shaka.log.v1=b(shaka.log.Level.V1);shaka.log.v2=b(shaka.log.Level.V2)},shaka.log.setLevel(shaka.log.MAX_LOG_LEVEL)):(shaka.log.MAX_LOG_LEVEL>=shaka.log.Level.ERROR&&(shaka.log.error=shaka.log.logMap_[shaka.log.Level.ERROR]),shaka.log.MAX_LOG_LEVEL>=shaka.log.Level.WARNING&&
|
|
147
|
-
(shaka.log.warning=shaka.log.logMap_[shaka.log.Level.WARNING]),shaka.log.MAX_LOG_LEVEL>=shaka.log.Level.INFO&&(shaka.log.info=shaka.log.logMap_[shaka.log.Level.INFO]),shaka.log.MAX_LOG_LEVEL>=shaka.log.Level.DEBUG&&(shaka.log.debug=shaka.log.logMap_[shaka.log.Level.DEBUG]),shaka.log.MAX_LOG_LEVEL>=shaka.log.Level.V1&&(shaka.log.v1=shaka.log.logMap_[shaka.log.Level.V1]),shaka.log.MAX_LOG_LEVEL>=shaka.log.Level.V2&&(shaka.log.v2=shaka.log.logMap_[shaka.log.Level.V2]))};shaka.util={};shaka.util.IReleasable=function(){};shaka.util.IReleasable.prototype.release=function(){};shaka.util.MultiMap=function(){this.map_=
|
|
148
|
-
shaka.util.MultiMap.prototype.remove=function(a,b){
|
|
146
|
+
(shaka.log.warning=shaka.log.logMap_[shaka.log.Level.WARNING]),shaka.log.MAX_LOG_LEVEL>=shaka.log.Level.INFO&&(shaka.log.info=shaka.log.logMap_[shaka.log.Level.INFO]),shaka.log.MAX_LOG_LEVEL>=shaka.log.Level.DEBUG&&(shaka.log.debug=shaka.log.logMap_[shaka.log.Level.DEBUG]),shaka.log.MAX_LOG_LEVEL>=shaka.log.Level.V1&&(shaka.log.v1=shaka.log.logMap_[shaka.log.Level.V1]),shaka.log.MAX_LOG_LEVEL>=shaka.log.Level.V2&&(shaka.log.v2=shaka.log.logMap_[shaka.log.Level.V2]))};shaka.util={};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||
|
|
@@ -201,8 +200,8 @@ shaka.util.Platform.isMobile=function(){return/(?:iPhone|iPad|iPod|Android)/.tes
|
|
|
201
200
|
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
201
|
shaka.util.Platform.isSmartTV=function(){var a=shaka.util.Platform;return a.isTizen()||a.isWebOS()||a.isXboxOne()||a.isPS4()||a.isPS5()||a.isAmazonFireTV()||a.isEOS()||a.isAPL()||a.isVirginMedia()||a.isOrange()||a.isComcastX1()||a.isChromecast()||a.isHisense()||a.isZenterio()?!0:!1};shaka.util.Platform.userAgentContains_=function(a){return(navigator.userAgent||"").includes(a)};
|
|
203
202
|
shaka.util.Platform.anyMediaElement=function(){var a=shaka.util.Platform;if(a.cachedMediaElement_)return a.cachedMediaElement_;a.cacheExpirationTimer_||(a.cacheExpirationTimer_=new shaka.util.Timer(function(){a.cachedMediaElement_=null}));a.cachedMediaElement_=document.getElementsByTagName("video")[0]||document.getElementsByTagName("audio")[0];a.cachedMediaElement_||(a.cachedMediaElement_=document.createElement("video"));a.cacheExpirationTimer_.tickAfter(1);return a.cachedMediaElement_};
|
|
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
|
|
203
|
+
shaka.util.Platform.requiresEncryptionInfoInAllInitSegments=function(a){var b=shaka.util.Platform;a=shaka.drm.DrmUtils.isPlayReadyKeySystem(a);return b.isTizen()||b.isXboxOne()||b.isOrange()||b.isEdge()&&b.isWindows()&&a};shaka.util.Platform.requiresEC3InitSegments=function(){return shaka.util.Platform.isTizen3()};shaka.util.Platform.supportsSequenceMode=function(){var a=shaka.util.Platform;return a.isTizen3()||a.isTizen2()||a.isWebOS3()||a.isPS4()?!1:!0};
|
|
204
|
+
shaka.util.Platform.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
205
|
shaka.util.Platform.detectMaxHardwareResolution=function(){var a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t;return $jscomp.asyncExecutePromiseGeneratorProgram(function(u){switch(u.nextAddress){case 1:a=shaka.util.Platform;b={width:Infinity,height:Infinity};if(a.isChromecast()){p=window.cast&&cast.__platform__&&cast.__platform__.canDisplayType;b.width=1280;b.height=720;u.setCatchFinallyBlocks(14);if(!(q=p)){u.jumpTo(16);break}return u.yield(cast.__platform__.canDisplayType('video/mp4; codecs="avc1.640028"; width=3840; height=2160'),
|
|
207
206
|
17)}if(a.isTizen()){b.width=1920;b.height=1080;try{webapis.systeminfo&&webapis.systeminfo.getMaxVideoResolution?(c=webapis.systeminfo.getMaxVideoResolution(),b.width=c.width,b.height=c.height):webapis.productinfo.is8KPanelSupported&&webapis.productinfo.is8KPanelSupported()?(b.width=7680,b.height=4320):webapis.productinfo.isUdPanelSupported&&webapis.productinfo.isUdPanelSupported()&&(b.width=3840,b.height=2160)}catch(v){shaka.log.alwaysWarn("Tizen: Error detecting screen size, default screen size 1920x1080.")}u.jumpTo(3);
|
|
208
207
|
break}if(a.isWebOS()){try{d=JSON.parse(window.PalmSystem.deviceInfo),b.width=Math.max(1920,d.screenWidth),b.height=Math.max(1080,d.screenHeight)}catch(v){shaka.log.alwaysWarn("WebOS: Error detecting screen size, default screen size 1920x1080."),b.width=1920,b.height=1080}u.jumpTo(3);break}if(a.isHisense()){window.Hisense_Get4KSupportState&&window.Hisense_Get4KSupportState()?(b.width=3840,b.height=2160):(b.width=1920,b.height=1080);u.jumpTo(3);break}if(!a.isPS4()&&!a.isPS5()){e=void 0;try{e="undefined"!==
|
|
@@ -272,10 +271,10 @@ goog.exportProperty(shaka.text.Cue,"positionAlign",shaka.text.Cue.positionAlign)
|
|
|
272
271
|
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
272
|
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
273
|
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_
|
|
274
|
+
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)};
|
|
275
|
+
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
276
|
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_=
|
|
277
|
+
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
278
|
shaka.transmuxer.TransmuxerEngine.PluginPriority={FALLBACK:1,PREFERRED_SECONDARY:2,PREFERRED:3,APPLICATION:4};goog.exportProperty(shaka.transmuxer.TransmuxerEngine,"PluginPriority",shaka.transmuxer.TransmuxerEngine.PluginPriority);/*
|
|
280
279
|
@license
|
|
281
280
|
Copyright 2008 The Closure Library Authors
|
|
@@ -299,11 +298,11 @@ goog.Uri.prototype.setFragment=function(a,b){this.fragment_=b?goog.Uri.decodeOrE
|
|
|
299
298
|
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
299
|
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
300
|
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=
|
|
301
|
+
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;
|
|
302
|
+
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};
|
|
303
|
+
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)||[]};
|
|
304
|
+
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())};
|
|
305
|
+
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
306
|
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
307
|
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
308
|
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 +312,10 @@ shaka.util.ManifestParserUtils.createDrmInfo=function(a,b,c,d){a={keySystem:a,en
|
|
|
313
312
|
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
313
|
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
314
|
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
|
|
315
|
+
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};
|
|
316
|
+
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
317
|
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_=
|
|
318
|
+
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
319
|
shaka.util.MimeUtils.getFullOrConvertedType=function(a,b,c){var d=shaka.util.MimeUtils,e=d.getFullType(a,b);b=d.getFullTypeWithAllCodecs(a,b);d=shaka.util.ManifestParserUtils.ContentType;var f=shaka.transmuxer.TransmuxerEngine;return f.isSupported(b,c)?f.convertCodecs(c,b):"video/mp2t"!=a&&c==d.AUDIO?e.replace("video","audio"):e};
|
|
321
320
|
shaka.util.MimeUtils.getExtendedType=function(a,b,c){var d=[b];shaka.util.MimeUtils.EXTENDED_MIME_PARAMETERS_.forEach(function(e,f){var g=a[f];"codecs"==f?shaka.util.MimeUtils.RAW_FORMATS.includes(a.mimeType)||d.push('codecs="'+c+'"'):g&&d.push(e+'="'+g+'"')});"PQ"==a.hdr&&d.push('eotf="smpte2084"');return d.join(";")};shaka.util.MimeUtils.getContainerType=function(a){return a.split(";")[0].split("/")[1]};shaka.util.MimeUtils.splitCodecs=function(a){return a.split(",")};
|
|
322
321
|
shaka.util.MimeUtils.getNormalizedCodec=function(a){var b=shaka.util.MimeUtils.getCodecParts_(a);a=b[0];b=b[1].toLowerCase();switch(!0){case "mp4a"===a&&"69"===b:case "mp4a"===a&&"6b"===b:case "mp4a"===a&&"40.34"===b:return"mp3";case "mp4a"===a&&"66"===b:case "mp4a"===a&&"67"===b:case "mp4a"===a&&"68"===b:case "mp4a"===a&&"40.2"===b:case "mp4a"===a&&"40.02"===b:case "mp4a"===a&&"40.5"===b:case "mp4a"===a&&"40.05"===b:case "mp4a"===a&&"40.29"===b:case "mp4a"===a&&"40.42"===b:return"aac";case "mp4a"===
|
|
@@ -324,10 +323,10 @@ a&&"a5"===b:return"ac-3";case "mp4a"===a&&"a6"===b:return"ec-3";case "mp4a"===a&
|
|
|
324
323
|
shaka.util.MimeUtils.getCodecBase=function(a){var b=[];a=$jscomp.makeIterator(a.split(","));for(var c=a.next();!c.done;c=a.next())c=shaka.util.MimeUtils.getCodecParts_(c.value),b.push(c[0]);return b.sort().join(",")};shaka.util.MimeUtils.getBasicType=function(a){return a.split(";")[0]};shaka.util.MimeUtils.getCodecs=function(a){a=a.split(/ *; */);a.shift();return(a=a.find(function(b){return b.startsWith("codecs=")}))?a.split("=")[1].replace(/^"|"$/g,""):""};
|
|
325
324
|
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
325
|
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_
|
|
326
|
+
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)};
|
|
327
|
+
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
328
|
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_
|
|
329
|
+
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
330
|
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
331
|
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
332
|
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 +339,7 @@ shaka.text.TextEngine.prototype.applyVideoTimestampOffsetRecursive_=function(a,b
|
|
|
340
339
|
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
340
|
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
341
|
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_=
|
|
342
|
+
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
343
|
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
344
|
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
345
|
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:"")};
|
|
@@ -369,12 +368,13 @@ shaka.util.StreamUtils.meetsRestrictions=function(a,b,c){var d=function(h,k,l){r
|
|
|
369
368
|
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
369
|
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
370
|
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=
|
|
371
|
+
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;
|
|
372
|
+
if(a.codecs.includes(e)){a.codecs=a.codecs.replace(e,f);break}}}};
|
|
373
373
|
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
374
|
!1:!0};
|
|
375
375
|
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
|
|
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.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);
|
|
377
|
+
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
378
|
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
379
|
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
380
|
JSON.stringify(a),l);return null})};
|
|
@@ -389,7 +389,8 @@ k.next())g=g.value,n={type:c?"file":"media-source"},h&&(n.video=h),g&&(n.audio=g
|
|
|
389
389
|
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
390
|
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
391
|
(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};
|
|
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};
|
|
393
|
+
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
394
|
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
395
|
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
396
|
"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})};
|
|
@@ -413,9 +414,9 @@ shaka.log.warning("No exact match for the text role could be found.")}else if(a=
|
|
|
413
414
|
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
415
|
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
416
|
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.
|
|
417
|
+
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()};
|
|
418
|
+
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);
|
|
419
|
+
shaka.util.StreamUtils.minWebPImage_="data:image/webp;base64,UklGRjoAAABXRUJQVlA4IC4AAACyAgCdASoCAAIALmk0mk0iIiIiIgBoSygABc6WWgAA/veff/0PP8bA//LwYAAA";shaka.util.StreamUtils.minAvifImage_="data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAAB0AAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAIAAAACAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQ0MAAAAABNjb2xybmNseAACAAIAAYAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAACVtZGF0EgAKCBgANogQEAwgMg8f8D///8WfhwB8+ErK42A=";
|
|
419
420
|
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
421
|
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
422
|
"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 +461,7 @@ TextChanged:"textchanged",TextTrackVisibility:"texttrackvisibility",ThirdQuartil
|
|
|
460
461
|
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
462
|
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
463
|
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_
|
|
464
|
+
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
465
|
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
466
|
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
467
|
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,7 +473,7 @@ f);this.operationManager_.manage(e);return e};
|
|
|
472
473
|
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
474
|
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
475
|
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
|
+
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();
|
|
476
477
|
v=Date.now();var w=shaka.net.NetworkingEngine.RequestType.SEGMENT,x=0;b.requestStartTime=Date.now();var y=n(b.uris[e],b,a,function(z,B,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_(z,B,E,b);m=!0;g.setBytes(D)}},function(z){u=!0;b.timeToFirstByte=Date.now()-b.requestStartTime;if(h.onHeadersReceived_)h.onHeadersReceived_(z,b,a)},{minBytesForProgressEvents:h.minBytesForProgressEvents_});if(!p)return y;var C=b.retryParameters.connectionTimeout;
|
|
477
478
|
C&&(q=new shaka.util.Timer(function(){t=!0;y.abort()}),q.tickAfter(C/1E3));var A=b.retryParameters.stallTimeout;A&&(r=new shaka.util.Timer(function(){t=!0;y.abort()}));return y}).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 y=new goog.Uri(w.uri);h.hostCommonAccessTokenMap_.set(y.getDomain(),x)}x={response:w,gotProgress:m};if(!u&&h.onHeadersReceived_)h.onHeadersReceived_(w.headers,
|
|
478
479
|
b,a);if(h.onDownloadCompleted_)h.onDownloadCompleted_(b,w);return x},function(w){q&&q.stop();r&&r.stop();if(h.onDownloadFailed_){var x=null,y=0;w instanceof shaka.util.Error&&(x=w,w.code==shaka.util.Error.Code.BAD_HTTP_STATUS&&(y=w.data[1]));h.onDownloadFailed_(b,x,y,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==
|
|
@@ -487,7 +488,7 @@ goog.exportProperty(shaka.net.NetworkingEngine.prototype,"setForceHTTP",shaka.ne
|
|
|
487
488
|
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
489
|
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
490
|
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_=
|
|
491
|
+
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
492
|
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
493
|
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
494
|
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 +501,9 @@ shaka.util.DataViewReader.prototype.seek=function(a){goog.asserts.assert(0<=a,"B
|
|
|
500
501
|
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
502
|
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
503
|
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_=
|
|
504
|
+
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
505
|
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_
|
|
506
|
+
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
507
|
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
508
|
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
509
|
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)};
|
|
@@ -581,17 +582,17 @@ shaka.drm.DrmEngine.prototype.unpackPlayReadyRequest_=function(a){var b=shaka.ut
|
|
|
581
582
|
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
583
|
!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
584
|
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,y,C,A,z,B,D,E,F,G,
|
|
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,R){var O,V,P,Q,S,T,U,Y,
|
|
587
|
-
V.includes("persistent-license"):!1;shaka.util.Platform.isTizen3()&&(P=!1);Q=R.getConfiguration().videoCapabilities;S=R.getConfiguration().audioCapabilities;T={persistentState:P,encryptionSchemes:[],videoRobustnessLevels:[],audioRobustnessLevels:[],minHdcpVersions:[]};q.has(N)&&q.get(N)?T=q.get(N):q.set(N,T);(U=Q[0].encryptionScheme)&&!T.encryptionSchemes.includes(U)&&T.encryptionSchemes.push(U);(
|
|
588
|
-
!T.audioRobustnessLevels.includes(
|
|
589
|
-
t=function(N,R,O,V){var P,Q,S,T,U,Y,
|
|
585
|
+
shaka.drm.DrmEngine.probeSupport=function(){var a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,y,C,A,z,B,D,E,F,G,J,L,K,H,M;return $jscomp.asyncExecutePromiseGeneratorProgram(function(I){if(1==I.nextAddress){a="org.w3.clearkey com.widevine.alpha com.widevine.alpha.experiment com.microsoft.playready com.microsoft.playready.hardware com.microsoft.playready.recommendation com.chromecast.playready com.apple.fps.1_0 com.apple.fps com.huawei.wiseplay".split(" ");if(!shaka.drm.DrmUtils.isBrowserSupported()){b={};
|
|
586
|
+
c=$jscomp.makeIterator(a);for(d=c.next();!d.done;d=c.next())e=d.value,b[e]=null;return I.return(b)}f="1.0 1.1 1.2 1.3 1.4 2.0 2.1 2.2 2.3".split(" ");g=["SW_SECURE_CRYPTO","SW_SECURE_DECODE","HW_SECURE_CRYPTO","HW_SECURE_DECODE","HW_SECURE_ALL"];h=["150","2000","3000"];k={"com.widevine.alpha":g,"com.widevine.alpha.experiment":g,"com.microsoft.playready.recommendation":h};l=[{contentType:'video/mp4; codecs="avc1.42E01E"'},{contentType:'video/webm; codecs="vp8"'}];m=[{contentType:'audio/mp4; codecs="mp4a.40.2"'},
|
|
587
|
+
{contentType:'audio/webm; codecs="opus"'}];n={videoCapabilities:l,audioCapabilities:m,initDataTypes:["cenc","sinf","skd","keyids"]};p=[null,"cenc","cbcs","cbcs-1-9"];q=new Map;r=function(N,R){var O,V,P,Q,S,T,U,W,Y,X,ca,ba,Z;return $jscomp.asyncExecutePromiseGeneratorProgram(function(aa){switch(aa.nextAddress){case 1:return aa.setCatchFinallyBlocks(2),aa.yield(R.createMediaKeys(),4);case 4:O=aa.yieldResult;aa.leaveTryBlock(3);break;case 2:return aa.enterCatchBlock(),aa.return();case 3:P=(V=R.getConfiguration().sessionTypes)?
|
|
588
|
+
V.includes("persistent-license"):!1;shaka.util.Platform.isTizen3()&&(P=!1);Q=R.getConfiguration().videoCapabilities;S=R.getConfiguration().audioCapabilities;T={persistentState:P,encryptionSchemes:[],videoRobustnessLevels:[],audioRobustnessLevels:[],minHdcpVersions:[]};q.has(N)&&q.get(N)?T=q.get(N):q.set(N,T);(U=Q[0].encryptionScheme)&&!T.encryptionSchemes.includes(U)&&T.encryptionSchemes.push(U);(W=Q[0].robustness)&&!T.videoRobustnessLevels.includes(W)&&T.videoRobustnessLevels.push(W);(Y=S[0].robustness)&&
|
|
589
|
+
!T.audioRobustnessLevels.includes(Y)&&T.audioRobustnessLevels.push(Y);if("getStatusForPolicy"in O){X=[];ca=$jscomp.makeIterator(f);ba=ca.next();for(Z={};!ba.done;Z={hdcpVersion:void 0},ba=ca.next())Z.hdcpVersion=ba.value,T.minHdcpVersions.includes(Z.hdcpVersion)||X.push(O.getStatusForPolicy({minHdcpVersion:Z.hdcpVersion}).then(function(ea){return function(fa){"usable"!=fa||T.minHdcpVersions.includes(ea.hdcpVersion)||T.minHdcpVersions.push(ea.hdcpVersion)}}(Z)));return aa.yield(Promise.all(X),0)}aa.jumpTo(0)}})};
|
|
590
|
+
t=function(N,R,O,V){var P,Q,S,T,U,W,Y,X,ca,ba;return $jscomp.asyncExecutePromiseGeneratorProgram(function(Z){switch(Z.nextAddress){case 1:Z.setCatchFinallyBlocks(2);P=shaka.util.ObjectUtils.cloneObject(n);Q=$jscomp.makeIterator(P.videoCapabilities);for(S=Q.next();!S.done;S=Q.next())T=S.value,T.encryptionScheme=R,T.robustness=O;U=$jscomp.makeIterator(P.audioCapabilities);for(W=U.next();!W.done;W=U.next())Y=W.value,Y.encryptionScheme=R,Y.robustness=V;X=shaka.util.ObjectUtils.cloneObject(P);X.persistentState=
|
|
590
591
|
"required";X.sessionTypes=["persistent-license"];ca=[X,P];return Z.yield(shaka.util.Functional.promiseWithTimeout(1,navigator.requestMediaKeySystemAccess(N,ca)),4);case 4:return ba=Z.yieldResult,Z.yield(r(N,ba),5);case 5:Z.leaveTryBlock(0);break;case 2:Z.enterCatchBlock(),Z.jumpToEnd()}})};u=function(N,R,O,V){var P,Q,S,T;return $jscomp.asyncExecutePromiseGeneratorProgram(function(U){switch(U.nextAddress){case 1:return U.setCatchFinallyBlocks(2),P={type:"media-source",video:{contentType:l[0].contentType,
|
|
591
592
|
width:640,height:480,bitrate:1,framerate:1},audio:{contentType:m[0].contentType,channels:2,bitrate:1,samplerate:1},keySystemConfiguration:{keySystem:N,video:{encryptionScheme:R,robustness:O},audio:{encryptionScheme:R,robustness:V}}},U.yield(shaka.util.Functional.promiseWithTimeout(1,navigator.mediaCapabilities.decodingInfo(P)),4);case 4:return Q=U.yieldResult,S=Q.keySystemAccess,U.yield(r(N,S),5);case 5:U.leaveTryBlock(0);break;case 2:T=U.enterCatchBlock(),shaka.log.v2("Failed to probe support for",
|
|
592
593
|
N,T),U.jumpToEnd()}})};v=$jscomp.makeIterator(a);for(w=v.next();!w.done;w=v.next())x=w.value,q.set(x,null);y=function(N){return shaka.drm.DrmUtils.isClearKeySystem(N)&&shaka.util.Platform.isSafari()||shaka.drm.DrmUtils.isFairPlayKeySystem(N)&&shaka.util.Platform.isWindows()||shaka.drm.DrmUtils.isPlayReadyKeySystem(N)&&(shaka.util.Platform.isMac()||shaka.util.Platform.isApple())||shaka.drm.DrmUtils.isPlayReadyKeySystem(N)&&shaka.util.Platform.isFirefox()||shaka.drm.DrmUtils.isWisePlayKeySystem(N)&&
|
|
593
|
-
(shaka.util.Platform.isWindows()||shaka.util.Platform.isMac())?!1:!0};C=[];A=$jscomp.makeIterator(p);for(z=A.next();!z.done;z=A.next())for(B=z.value,D=$jscomp.makeIterator(a),E=D.next();!E.done;E=D.next())F=E.value,y(F)&&(C.push(t(F,B,"","")),C.push(u(F,B,"","")));G=$jscomp.makeIterator(a);for(
|
|
594
|
-
"",
|
|
594
|
+
(shaka.util.Platform.isWindows()||shaka.util.Platform.isMac())?!1:!0};C=[];A=$jscomp.makeIterator(p);for(z=A.next();!z.done;z=A.next())for(B=z.value,D=$jscomp.makeIterator(a),E=D.next();!E.done;E=D.next())F=E.value,y(F)&&(C.push(t(F,B,"","")),C.push(u(F,B,"","")));G=$jscomp.makeIterator(a);for(J=G.next();!J.done;J=G.next())for(L=J.value,K=$jscomp.makeIterator(k[L]||[]),H=K.next();!H.done;H=K.next())M=H.value,y(L)&&(C.push(t(L,null,M,"")),C.push(t(L,null,"",M)),C.push(u(L,null,M,"")),C.push(u(L,null,
|
|
595
|
+
"",M)));return I.yield(Promise.all(C),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
596
|
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
597
|
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
598
|
"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 +620,8 @@ shaka.media.AdaptationSet.areVideosCompatible_=function(a,b,c){var d=shaka.media
|
|
|
619
620
|
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
621
|
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
622
|
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:
|
|
623
|
+
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,
|
|
624
|
+
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
625
|
@license
|
|
625
626
|
Shaka Player
|
|
626
627
|
Copyright 2023 Google LLC
|
|
@@ -633,12 +634,12 @@ shaka.media.ManifestFilterer.prototype.filterManifestWithRestrictions=function(a
|
|
|
633
634
|
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
635
|
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
636
|
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()?
|
|
637
|
+
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)};
|
|
638
|
+
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);
|
|
639
|
+
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);};
|
|
640
|
+
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
641
|
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=
|
|
642
|
+
shaka.media.ManifestParser.parsersByMime=new Map;shaka.media.ContentWorkarounds=function(){};
|
|
642
643
|
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
644
|
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
645
|
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 +649,9 @@ shaka.media.ContentWorkarounds.insertEncryptionMetadata_=function(a,b,c,d,e){var
|
|
|
648
649
|
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
650
|
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
651
|
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
|
-
|
|
652
|
+
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_):
|
|
653
|
+
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;
|
|
654
|
+
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
655
|
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
656
|
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
657
|
goog.exportProperty(shaka.media.InitSegmentReference.prototype,"getStartByte",shaka.media.InitSegmentReference.prototype.getStartByte);
|
|
@@ -778,13 +780,13 @@ a.queues_[m].length,m+" queue should be empty after destroy!");a.queues_={};a.lc
|
|
|
778
780
|
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
781
|
new shaka.util.PublicPromise;e.mediaSource_=e.createMediaSource(e.mediaSourceOpen_);return n.yield(e.mediaSourceOpen_,3);case 3:e.sequenceMode_=b,e.manifestType_=c,e.ignoreManifestTimestampsInSegmentsMode_=d,e.attemptTimestampOffsetCalculation_=!e.sequenceMode_&&e.manifestType_==shaka.media.ManifestParser.HLS&&!e.ignoreManifestTimestampsInSegmentsMode_,e.tsParsers_={},e.firstVideoTimestamp_=null,e.firstVideoReferenceStartTime_=null,e.firstAudioTimestamp_=null,e.firstAudioReferenceStartTime_=null,
|
|
780
782
|
e.audioCompensation_=new shaka.util.PublicPromise,g=$jscomp.makeIterator(a.keys()),h=g.next();case 5:if(h.done){n.jumpTo(7);break}k=h.value;l=a.get(k);return n.yield(e.initSourceBuffer_(k,l,l.codecs),8);case 8:e.needSplitMuxedContent_?(e.queues_[f.AUDIO]=[],e.queues_[f.VIDEO]=[]):e.queues_[k]=[];h=g.next();n.jumpTo(5);break;case 7:(m=a.get(f.AUDIO))&&m.isAudioMuxedInVideo&&(e.needSplitMuxedContent_=!0),n.jumpToEnd()}})};
|
|
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_[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,
|
|
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_[a]=t;d.sourceBufferTypes_[a]=h;d.expectedEncryption_[a]=!!b.drmInfos.length;u.jumpToEnd()}})};
|
|
785
|
-
shaka.media.MediaSourceEngine.prototype.
|
|
786
|
-
shaka.media.MediaSourceEngine.prototype.
|
|
787
|
-
shaka.media.MediaSourceEngine.prototype.bufferStart=function(a){return Object.keys(this.sourceBuffers_).length?a==shaka.util.ManifestParserUtils.ContentType.TEXT?this.textEngine_.bufferStart():shaka.media.TimeRangesUtils.bufferStart(this.getBuffered_(a)):null};
|
|
783
|
+
shaka.media.MediaSourceEngine.prototype.initSourceBuffer_=function(a,b,c){var d=this,e,f,g,h,k,l,m,n,p,q,r,t;return $jscomp.asyncExecutePromiseGeneratorProgram(function(u){switch(u.nextAddress){case 1:return e=shaka.util.ManifestParserUtils.ContentType,f=goog.asserts,g=f.assert,u.yield(shaka.media.MediaSourceEngine.isStreamSupported(b,a),2);case 2:g.call(f,u.yieldResult,"Type negotiation should happen before MediaSourceEngine.init!");a==e.AUDIO&&c&&(c=shaka.util.StreamUtils.getCorrectAudioCodecs(c,
|
|
784
|
+
b.mimeType));h=shaka.util.MimeUtils.getFullType(b.mimeType,c);if(a==e.TEXT){d.reinitText(h,d.sequenceMode_,b.external);u.jumpTo(0);break}k=d.config_.forceTransmux;if(!shaka.media.Capabilities.isTypeSupported(h)||!d.sequenceMode_&&shaka.util.MimeUtils.RAW_FORMATS.includes(h))k=!0;l=shaka.util.MimeUtils.getFullTypeWithAllCodecs(b.mimeType,c);if(!k){u.jumpTo(4);break}m=shaka.util.ManifestParserUtils.guessCodecsSafe(e.AUDIO,(c||"").split(","));n=shaka.util.ManifestParserUtils.guessCodecsSafe(e.VIDEO,
|
|
785
|
+
(c||"").split(","));if(!m||!n){u.jumpTo(5);break}d.needSplitMuxedContent_=!0;return u.yield(d.initSourceBuffer_(e.AUDIO,b,m),6);case 6:return u.yield(d.initSourceBuffer_(e.VIDEO,b,n),7);case 7:return u.return();case 5:if(p=shaka.transmuxer.TransmuxerEngine.findTransmuxer(l))q=p(),d.transmuxers_[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,
|
|
786
|
+
shaka.util.Error.Category.MEDIA,shaka.util.Error.Code.MEDIA_SOURCE_OPERATION_THREW,v,"The mediaSource_ status was "+d.mediaSource_.readyState+" expected 'open'",null);}d.sequenceMode_&&(t.mode=shaka.media.MediaSourceEngine.SourceBufferMode_.SEQUENCE);d.eventManager_.listen(t,"error",function(){return d.onError_(a)});d.eventManager_.listen(t,"updateend",function(){return d.onUpdateEnd_(a)});d.sourceBuffers_[a]=t;d.sourceBufferTypes_[a]=h;d.expectedEncryption_[a]=!!b.drmInfos.length;u.jumpToEnd()}})};
|
|
787
|
+
shaka.media.MediaSourceEngine.prototype.configure=function(a){this.config_=a;this.textEngine_&&this.textEngine_.setModifyCueCallback(a.modifyCueCallback)};shaka.media.MediaSourceEngine.prototype.isStreamingAllowed=function(){return this.streamingAllowed_&&!this.usingRemotePlayback_&&!this.reloadingMediaSource_};
|
|
788
|
+
shaka.media.MediaSourceEngine.prototype.reinitText=function(a,b,c){this.textEngine_||(this.textEngine_=new shaka.text.TextEngine(this.textDisplayer_),this.textEngine_.setModifyCueCallback(this.config_.modifyCueCallback));this.textEngine_.initParser(a,b,c||this.segmentRelativeVttTiming_,this.manifestType_)};shaka.media.MediaSourceEngine.prototype.ended=function(){return this.reloadingMediaSource_?!1:this.mediaSource_?"ended"==this.mediaSource_.readyState:!0};
|
|
789
|
+
shaka.media.MediaSourceEngine.prototype.closed=function(){return this.reloadingMediaSource_?!1:this.mediaSource_?"closed"==this.mediaSource_.readyState:!0};shaka.media.MediaSourceEngine.prototype.bufferStart=function(a){return Object.keys(this.sourceBuffers_).length?a==shaka.util.ManifestParserUtils.ContentType.TEXT?this.textEngine_.bufferStart():shaka.media.TimeRangesUtils.bufferStart(this.getBuffered_(a)):null};
|
|
788
790
|
shaka.media.MediaSourceEngine.prototype.bufferEnd=function(a){return Object.keys(this.sourceBuffers_).length?a==shaka.util.ManifestParserUtils.ContentType.TEXT?this.textEngine_.bufferEnd():shaka.media.TimeRangesUtils.bufferEnd(this.getBuffered_(a)):null};shaka.media.MediaSourceEngine.prototype.isBuffered=function(a,b){if(a==shaka.util.ManifestParserUtils.ContentType.TEXT)return this.textEngine_.isBuffered(b);a=this.getBuffered_(a);return shaka.media.TimeRangesUtils.isBuffered(a,b)};
|
|
789
791
|
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
792
|
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};
|
|
@@ -797,14 +799,14 @@ c.reader.readBytes(c.reader.getLength()-c.reader.getPosition());if(b&&b.includes
|
|
|
797
799
|
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
800
|
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
801
|
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,y,C,A,z,B,D,E,F,G,
|
|
801
|
-
|
|
802
|
-
|
|
802
|
+
shaka.media.MediaSourceEngine.prototype.appendBuffer=function(a,b,c,d,e,f,g,h,k){f=void 0===f?!1:f;g=void 0===g?!1:g;h=void 0===h?!1:h;k=void 0===k?!1:k;var l=this,m,n,p,q,r,t,u,v,w,x,y,C,A,z,B,D,E,F,G,J,L,K,H,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=
|
|
803
|
+
I.yieldResult,l.textEngine_.setTimestampOffset(n);case 3:return I.yield(l.textEngine_.appendBuffer(b,c?c.startTime:null,c?c.endTime:null,c?c.getUris()[0]:null),5);case 5:return I.return();case 2:if(k||!l.needSplitMuxedContent_){I.jumpTo(6);break}return I.yield(l.appendBuffer(m.AUDIO,b,c,d,e,f,g,h,!0),7);case 7:return I.yield(l.appendBuffer(m.VIDEO,b,c,d,e,f,g,h,!0),8);case 8:return I.return();case 6:if(!l.sourceBuffers_[a])return shaka.log.warning("Attempted to restore a non-existent source buffer"),
|
|
804
|
+
I.return();p=l.sourceBuffers_[a].timestampOffset;q=l.sourceBufferTypes_[a];l.transmuxers_[a]&&(q=l.transmuxers_[a].getOriginalMimeType());if(c&&(r=l.getTimestampAndDispatchMetadata(a,b,c,d,q),t=r.timestamp,u=r.metadata,null!=t&&(null==l.firstVideoTimestamp_&&a==m.VIDEO&&(l.firstVideoTimestamp_=t,l.firstVideoReferenceStartTime_=c.startTime,null!=l.firstAudioTimestamp_&&(v=0,l.firstVideoReferenceStartTime_==l.firstAudioReferenceStartTime_&&(v=l.firstVideoTimestamp_-l.firstAudioTimestamp_),l.audioCompensation_.resolve(v))),
|
|
803
805
|
null==l.firstAudioTimestamp_&&a==m.AUDIO&&(l.firstAudioTimestamp_=t,l.firstAudioReferenceStartTime_=c.startTime,null!=l.firstVideoTimestamp_&&(w=0,l.firstVideoReferenceStartTime_==l.firstAudioReferenceStartTime_&&(w=l.firstVideoTimestamp_-l.firstAudioTimestamp_),l.audioCompensation_.resolve(w))),x=t,y=shaka.util.MimeUtils.RAW_FORMATS,!l.sequenceMode_&&y.includes(l.sourceBufferTypes_[a])&&(x=0),C=c.startTime-x,A=Math.abs(p-C),(.001<=A||f||g)&&(!h||0<C||!p)&&(p=C,l.attemptTimestampOffsetCalculation_&&
|
|
804
806
|
(l.enqueueOperation_(a,function(){return l.abort_(a)},null),l.enqueueOperation_(a,function(){return l.setTimestampOffset_(a,p)},null))),(z=a==m.VIDEO||!(m.VIDEO in l.sourceBuffers_))&&l.textSequenceModeOffset_.resolve(p)),u.length))l.playerInterface_.onMetadata(u,p,c?c.endTime:null);e&&a==m.VIDEO&&(l.textEngine_||l.reinitText(shaka.util.MimeUtils.CEA608_CLOSED_CAPTION_MIMETYPE,l.sequenceMode_,!1),l.captionParser_||(B=q.split(";",1)[0],l.captionParser_=l.getCaptionParser(B)),c?(D=l.captionParser_.parseFrom(b),
|
|
805
|
-
D.length&&l.textEngine_.storeAndAppendClosedCaptions(D,c.startTime,c.endTime,p)):l.captionParser_.init(b,g));if(!l.transmuxers_[a]){
|
|
806
|
-
a!=m.AUDIO||!l.sourceBuffers_[m.VIDEO]){
|
|
807
|
-
|
|
807
|
+
D.length&&l.textEngine_.storeAndAppendClosedCaptions(D,c.startTime,c.endTime,p)):l.captionParser_.init(b,g));if(!l.transmuxers_[a]){I.jumpTo(9);break}return I.yield(l.transmuxers_[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||l.needSplitMuxedContent_||
|
|
808
|
+
a!=m.AUDIO||!l.sourceBuffers_[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 G=null,I.yield(l.enqueueOperation_(a,function(){goog.DEBUG&&c&&!c.isPreload()&&!h&&(G=l.getBuffered_(a));l.append_(a,b,p)},c?c.getUris()[0]:null),15);case 15:goog.DEBUG&&c&&!c.isPreload()&&!h&&(J=l.getBuffered_(a),
|
|
809
|
+
L=shaka.media.TimeRangesUtils.computeAddedRange(G,J))&&(K=c.endTime-c.startTime,H=L.end-L.start,M=Math.abs(L.end-c.endTime),.1<K&&(M>K/2||.03<Math.abs(K-H))&&shaka.log.error("Possible encoding problem detected!","Unexpected buffered range for reference",c,"from URIs",c.getUris(),"should be",{start:c.startTime,end:c.endTime},"but got",L)),I.jumpToEnd()}})};
|
|
808
810
|
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
811
|
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
812
|
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)},
|
|
@@ -831,7 +833,8 @@ b.queues_[h].push(k),c.push(g.ready),1==b.queues_[h].length&&k.start();y.setCatc
|
|
|
831
833
|
new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MEDIA,shaka.util.Error.Code.MEDIA_SOURCE_OPERATION_THREW,x,b.video_.error||"No error in the media element",null);}})};shaka.media.MediaSourceEngine.prototype.popFromQueue_=function(a){goog.asserts.assert(this.queues_[a],"Queue should exist");this.queues_[a].shift();this.startOperation_(a)};
|
|
832
834
|
shaka.media.MediaSourceEngine.prototype.startOperation_=function(a){var b=this.queues_[a][0];if(b)try{b.start()}catch(c){"QuotaExceededError"==c.name?b.p.reject(new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MEDIA,shaka.util.Error.Code.QUOTA_EXCEEDED_ERROR,a)):b.p.reject(new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MEDIA,shaka.util.Error.Code.MEDIA_SOURCE_OPERATION_THREW,c,this.video_.error||"No error in the media element",b.uri)),
|
|
833
835
|
this.popFromQueue_(a)}};shaka.media.MediaSourceEngine.prototype.getTextDisplayer=function(){goog.asserts.assert(this.textDisplayer_,"TextDisplayer should only be null when this is destroyed");return this.textDisplayer_};shaka.media.MediaSourceEngine.prototype.setTextDisplayer=function(a){this.textDisplayer_=a;this.textEngine_&&this.textEngine_.setDisplayer(a)};shaka.media.MediaSourceEngine.prototype.setSegmentRelativeVttTiming=function(a){this.segmentRelativeVttTiming_=a};
|
|
834
|
-
shaka.media.MediaSourceEngine.prototype.workAroundBrokenPlatforms_=function(a,b,c,d){var e=shaka.util.Platform;b=null==b;var f=this.expectedEncryption_[c],g=this.playerInterface_.getKeySystem();this.config_.insertFakeEncryptionInInit&&b&&f&&e.requiresEncryptionInfoInAllInitSegments(g)&&"mp4"==shaka.util.MimeUtils.getContainerType(this.sourceBufferTypes_[c])&&(shaka.log.debug("Forcing fake encryption information in init segment."),a=shaka.media.ContentWorkarounds.fakeEncryption(a,d));
|
|
836
|
+
shaka.media.MediaSourceEngine.prototype.workAroundBrokenPlatforms_=function(a,b,c,d){var e=shaka.util.Platform;b=null==b;var f=this.expectedEncryption_[c],g=this.playerInterface_.getKeySystem();this.config_.insertFakeEncryptionInInit&&b&&f&&e.requiresEncryptionInfoInAllInitSegments(g)&&"mp4"==shaka.util.MimeUtils.getContainerType(this.sourceBufferTypes_[c])&&(shaka.log.debug("Forcing fake encryption information in init segment."),a=shaka.media.ContentWorkarounds.fakeEncryption(a,d));b&&e.requiresEC3InitSegments()&&
|
|
837
|
+
"mp4"==shaka.util.MimeUtils.getContainerType(this.sourceBufferTypes_[c])&&(shaka.log.debug("Forcing fake EC-3 information in init segment."),a=shaka.media.ContentWorkarounds.fakeEC3(a));return a};
|
|
835
838
|
shaka.media.MediaSourceEngine.prototype.change_=function(a,b,c){a===shaka.util.ManifestParserUtils.ContentType.TEXT?shaka.log.debug("Change not supported for "+a):(shaka.log.debug("Change Type: "+this.sourceBufferTypes_[a]+" -> "+b),shaka.media.Capabilities.isChangeTypeSupported()?(this.transmuxers_[a]&&(this.transmuxers_[a].destroy(),delete this.transmuxers_[a]),c&&(this.transmuxers_[a]=c),c=this.addExtraFeaturesToMimeType_(b),this.sourceBuffers_[a].changeType(c),this.sourceBufferTypes_[a]=b):shaka.log.debug("Change Type not supported"),
|
|
836
839
|
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)};
|
|
837
840
|
shaka.media.MediaSourceEngine.prototype.reset_=function(a){var b=this,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x;return $jscomp.asyncExecutePromiseGeneratorProgram(function(y){switch(y.nextAddress){case 1:c=shaka.util.ManifestParserUtils.ContentType;b.reloadingMediaSource_=!0;b.needSplitMuxedContent_=!1;d=b.video_.currentTime;e=b.video_.autoplay;f=b.video_.paused;b.playbackHasBegun_&&(b.video_.autoplay=!1);y.setFinallyBlock(2);b.eventManager_.removeAll();for(g in b.transmuxers_)b.transmuxers_[g].destroy();
|
|
@@ -1042,8 +1045,8 @@ this.playerInterface_.getPlaybackRate(),a.stream.segmentIndex&&(a.segmentIterato
|
|
|
1042
1045
|
(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
1046
|
shaka.media.StreamingEngine.prototype.fetchAndAppend_=function(a,b,c,d){var e=this,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,y,C,A,z,B;return $jscomp.asyncExecutePromiseGeneratorProgram(function(D){switch(D.nextAddress){case 1:f=shaka.util.ManifestParserUtils.ContentType;g=shaka.media.StreamingEngine;h=g.logPrefix_(a);shaka.log.v1(h,"fetchAndAppend_:","presentationTime="+b,"reference.startTime="+c.startTime,"reference.endTime="+c.endTime);k=a.stream;l=a.segmentIterator;a.performingUpdate=!0;D.setCatchFinallyBlocks(2);
|
|
1044
1047
|
if(c.getStatus()==shaka.media.SegmentReference.Status.MISSING)throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.SEGMENT_MISSING);return D.yield(e.initSourceBuffer_(a,c,d),4);case 4:e.destroyer_.ensureNotDestroyed();if(e.fatalError_)return D.return();shaka.log.v2(h,"fetching segment");m="video/mp4"==k.mimeType||"audio/mp4"==k.mimeType;n=window.ReadableStream;if((p=e.config_.lowLatencyMode&&e.manifest_.isLowLatency)&&n&&m&&(e.manifest_.type!=
|
|
1045
|
-
shaka.media.ManifestParser.HLS||c.hasByterangeOptimization()))return t=new Uint8Array(0),v=u=!1,x=function(E){var F,G,
|
|
1046
|
-
t=t.subarray(G);return
|
|
1048
|
+
shaka.media.ManifestParser.HLS||c.hasByterangeOptimization()))return t=new Uint8Array(0),v=u=!1,x=function(E){var F,G,J,L;return $jscomp.asyncExecutePromiseGeneratorProgram(function(K){switch(K.nextAddress){case 1:if(u)return K.return();v=!0;e.destroyer_.ensureNotDestroyed();if(e.fatalError_)return K.return();K.setCatchFinallyBlocks(2);t=e.concatArray_(t,E);F=!1;G=0;(new shaka.util.Mp4Parser).box("mdat",function(H){G=H.size+H.start;F=!0}).parse(t,!1,!0);if(!F){K.jumpTo(4);break}J=t.subarray(0,G);
|
|
1049
|
+
t=t.subarray(G);return K.yield(e.append_(a,b,k,c,J,!0,d),5);case 5:a.segmentPrefetch&&a.segmentIterator&&a.segmentPrefetch.prefetchSegmentsByTime(c.startTime,!0);case 4:K.leaveTryBlock(0);break;case 2:w=L=K.enterCatchBlock(),K.jumpToEnd()}})},D.yield(e.fetch_(a,c,x),9);p&&!n&&shaka.log.warning("Low latency streaming mode is enabled, but ReadableStream is not supported by the browser.");q=e.fetch_(a,c);return D.yield(q,7);case 7:r=D.yieldResult;e.destroyer_.ensureNotDestroyed();if(e.fatalError_)return D.return();
|
|
1047
1050
|
e.destroyer_.ensureNotDestroyed();return a.waitingToClearBuffer?(shaka.log.info(h,"waitingToClearBuffer, skip append"),a.performingUpdate=!1,e.scheduleUpdate_(a,0),D.return()):D.yield(e.append_(a,b,k,c,r,!1,d),6);case 9:y=D.yieldResult;if(w)throw w;if(v){D.jumpTo(10);break}u=!0;e.destroyer_.ensureNotDestroyed();return e.fatalError_?D.return():a.waitingToClearBuffer?(shaka.log.info(h,"waitingToClearBuffer, skip append"),a.performingUpdate=!1,e.scheduleUpdate_(a,0),D.return()):D.yield(e.append_(a,b,
|
|
1048
1051
|
k,c,y,!1,d),10);case 10:a.segmentPrefetch&&a.segmentIterator&&a.segmentPrefetch.prefetchSegmentsByTime(c.startTime,!0);case 6:e.destroyer_.ensureNotDestroyed();if(e.fatalError_)return D.return();a.lastSegmentReference=c;C=l.next().value;shaka.log.v2(h,"advancing to next segment",C);a.performingUpdate=!1;a.recovering=!1;A=e.playerInterface_.mediaSourceEngine.getBufferedInfo();z=A[a.type];shaka.log.v1(h,"finished fetch and append",JSON.stringify(z));if(!a.waitingToClearBuffer)e.playerInterface_.onSegmentAppended(c,
|
|
1049
1052
|
a.stream);e.scheduleUpdate_(a,0);D.leaveTryBlock(0);break;case 2:B=D.enterCatchBlock();e.destroyer_.ensureNotDestroyed(B);if(e.fatalError_)return D.return();goog.asserts.assert(B instanceof shaka.util.Error,"Should only receive a Shaka error");a.performingUpdate=!1;if(B.code==shaka.util.Error.Code.OPERATION_ABORTED)a.performingUpdate=!1,e.cancelUpdate_(a),e.scheduleUpdate_(a,0),D.jumpTo(0);else if(a.type==f.TEXT&&e.config_.ignoreTextStreamFailures)B.code==shaka.util.Error.Code.BAD_HTTP_STATUS?shaka.log.warning(h,
|
|
@@ -1057,11 +1060,11 @@ return n.yield(c.evict_(a,m),2)}c.scheduleUpdate_(a,4);n.jumpToEnd()})};
|
|
|
1057
1060
|
shaka.media.StreamingEngine.prototype.initSourceBuffer_=function(a,b,c){var d=this,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,y,C,A;return $jscomp.asyncExecutePromiseGeneratorProgram(function(z){switch(z.nextAddress){case 1:e=shaka.util.ManifestParserUtils.ContentType;f=shaka.util.MimeUtils;g=shaka.media.StreamingEngine;h=g.logPrefix_(a);k=null==a.lastSegmentReference;l=[];m=Math.max(0,Math.max(b.appendWindowStart,d.playRangeStart_)-g.APPEND_WINDOW_START_FUDGE_);n=Math.min(b.appendWindowEnd,d.playRangeEnd_)+
|
|
1058
1061
|
g.APPEND_WINDOW_END_FUDGE_;goog.asserts.assert(b.startTime<=n,h+" segment should start before append window end");p=b.codecs||a.stream.codecs;q=f.getCodecBase(p);r=f.getBasicType(b.mimeType||a.stream.mimeType);t=b.timestampOffset;if(t==a.lastTimestampOffset&&m==a.lastAppendWindowStart&&n==a.lastAppendWindowEnd&&q==a.lastCodecs&&r==a.lastMimeType){z.jumpTo(2);break}shaka.log.v1(h,"setting timestamp offset to "+t);shaka.log.v1(h,"setting append window start to "+m);shaka.log.v1(h,"setting append window end to "+
|
|
1059
1062
|
n);u=a.lastCodecs&&a.lastMimeType&&d.playerInterface_.mediaSourceEngine.isResetMediaSourceNecessary(a.type,r,p);if(!u){z.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){z.jumpTo(3);break}return z.yield(d.abortOperations_(v).catch(function(){}),5);case 5:v.lastInitSegmentReference=null,v.lastAppendWindowStart=null,v.lastAppendWindowEnd=null,d.forceClearBuffer_(v);case 3:return z.yield(d.setProperties_(a,t,m,n,b,q,r),2);
|
|
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 B,D,E,F,G,
|
|
1061
|
-
D=null,E=new Map,F={projection:null,hfov:null},G=new shaka.util.Mp4Parser,
|
|
1062
|
-
|
|
1063
|
-
F.projection=
|
|
1064
|
-
c),6);case 6:
|
|
1063
|
+
case 2:return shaka.media.InitSegmentReference.equal(b.initSegmentReference,a.lastInitSegmentReference)||(a.lastInitSegmentReference=b.initSegmentReference,b.isIndependent()&&b.initSegmentReference&&(shaka.log.v1(h,"fetching init segment"),w=d.fetch_(a,b.initSegmentReference),x=function(){var B,D,E,F,G,J,L,K,H;return $jscomp.asyncExecutePromiseGeneratorProgram(function(M){switch(M.nextAddress){case 1:return M.setCatchFinallyBlocks(2),M.yield(w,4);case 4:return B=M.yieldResult,d.destroyer_.ensureNotDestroyed(),
|
|
1064
|
+
D=null,E=new Map,F={projection:null,hfov:null},G=new shaka.util.Mp4Parser,J=shaka.util.Mp4Parser,L=shaka.util.Mp4BoxParsers,G.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=L.parseMDHD(I.reader,I.version).timescale}).box("hdlr",function(I){switch(L.parseHDLR(I.reader).handlerType){case "soun":E.set(e.AUDIO,D);break;case "vide":E.set(e.VIDEO,D)}D=null}).box("minf",
|
|
1065
|
+
J.children).box("stbl",J.children).fullBox("stsd",J.sampleDescription).box("encv",J.visualSampleEntry).box("avc1",J.visualSampleEntry).box("avc3",J.visualSampleEntry).box("hev1",J.visualSampleEntry).box("hvc1",J.visualSampleEntry).box("dvav",J.visualSampleEntry).box("dva1",J.visualSampleEntry).box("dvh1",J.visualSampleEntry).box("dvhe",J.visualSampleEntry).box("dvc1",J.visualSampleEntry).box("dvi1",J.visualSampleEntry).box("vexu",J.children).box("proj",J.children).fullBox("prji",function(I){I=L.parsePRJI(I.reader);
|
|
1066
|
+
F.projection=I.projection}).box("hfov",function(I){I=L.parseHFOV(I.reader);F.hfov=I.hfov}).parse(B),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"),K=a.stream.closedCaptions&&0<a.stream.closedCaptions.size,M.yield(d.playerInterface_.beforeAppendSegment(a.type,B),5);case 5:return M.yield(d.playerInterface_.mediaSourceEngine.appendBuffer(a.type,B,null,a.stream,K,a.seeked,
|
|
1067
|
+
c),6);case 6:M.leaveTryBlock(0);break;case 2:throw H=M.enterCatchBlock(),a.lastInitSegmentReference=null,H;}})},y=b.startTime,k&&(C=d.playerInterface_.mediaSourceEngine.bufferEnd(a.type),null!=C&&(y=C)),d.playerInterface_.onInitSegmentAppended(y,b.initSegmentReference),l.push(x()))),A=a.lastSegmentReference?a.lastSegmentReference.discontinuitySequence:null,b.discontinuitySequence!=A&&l.push(d.playerInterface_.mediaSourceEngine.resync(a.type,b.startTime)),z.yield(Promise.all(l),0)}})};
|
|
1065
1068
|
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
1069
|
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
1070
|
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&&
|
|
@@ -1116,8 +1119,8 @@ shaka.util.FairPlayUtils.commonFairPlayResponse=function(a,b,c){if(a===shaka.net
|
|
|
1116
1119
|
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
1120
|
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
1121
|
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");
|
|
1122
|
+
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),
|
|
1123
|
+
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
1124
|
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
1125
|
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
1126
|
"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 +1191,10 @@ weAre:a,invoke:function(e,f){return c.onEvent_("exit",e,f)}},{weWere:b,weAre:d,i
|
|
|
1188
1191
|
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
1192
|
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
1193
|
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_
|
|
1194
|
+
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
1195
|
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
|
|
1196
|
+
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",
|
|
1197
|
+
"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
1198
|
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
1199
|
(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
1200
|
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";
|
|
@@ -1300,10 +1303,10 @@ null;a&&(shaka.Deprecate.deprecateFeature(5,"Player w/ mediaElement","Please mig
|
|
|
1300
1303
|
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
1304
|
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
1305
|
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_
|
|
1306
|
+
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
1307
|
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=
|
|
1308
|
+
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(),
|
|
1309
|
+
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
1310
|
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
1311
|
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
1312
|
shaka.Player.prototype.attachCanvas=function(a){this.lcevcCanvas_=a};
|
|
@@ -1358,7 +1361,7 @@ this.loadEventManager_.listen(a.audioTracks,"change",function(){return c.onTrack
|
|
|
1358
1361
|
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
1362
|
shaka.Player.prototype.loadInner_=function(a,b,c){var d=this,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,y,C,A,z,B,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
1363
|
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,G,
|
|
1364
|
+
d.config_.playRangeStart,d.config_.playRangeEnd),d.abrManager_.init(function(F,G,J){return d.switch_(F,G,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
1365
|
"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
1366
|
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
1367
|
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,
|
|
@@ -1448,13 +1451,13 @@ imageHeight:l,imageWidth:k,height:n,positionX:u,positionY:v,startTime:t,duration
|
|
|
1448
1451
|
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
1452
|
!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
1453
|
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().");
|
|
1454
|
+
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
1455
|
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
1456
|
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
1457
|
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
|
-
|
|
1458
|
+
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||""});
|
|
1459
|
+
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),
|
|
1460
|
+
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
1461
|
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
1462
|
!this.isRemotePlayback()))return;(function(){var f=shaka.util.StreamUtils.filterStreamsByLanguageAndRole(d.getTextTracks(),a,b||"",c||!1)[0];f&&d.selectTextTrack(f)})()};
|
|
1460
1463
|
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:"",
|
|
@@ -1578,7 +1581,7 @@ goog.exportProperty(shaka.Player.prototype,"getNonDefaultConfiguration",shaka.Pl
|
|
|
1578
1581
|
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
1582
|
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
1583
|
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.
|
|
1584
|
+
goog.exportProperty(shaka.Player.prototype,"destroy",shaka.Player.prototype.destroy);shaka.Player.LoadMode={DESTROYED:0,NOT_LOADED:1,MEDIA_SOURCE:2,SRC_EQUALS:3};goog.exportProperty(shaka.Player,"LoadMode",shaka.Player.LoadMode);shaka.Player.TYPICAL_BUFFERING_THRESHOLD_=.5;shaka.Player.version="v4.13.1-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
1585
|
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
1586
|
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
1587
|
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_};
|
|
@@ -1705,12 +1708,12 @@ w=B}});f.adEventManager_.listenOnce(f.player_,"firstquartile",function(){q();f.o
|
|
|
1705
1708
|
"play",function(){f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.AD_RESUMED))});f.adEventManager_.listen(f.video_,"pause",function(){var B=f.player_.getConfiguration();if(f.video_.currentTime>=B.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))});
|
|
1706
1709
|
z.setCatchFinallyBlocks(4);f.updatePlayerConfig_();a.startTime&&a.endTime&&Infinity!=a.endTime&&a.startTime!=a.endTime&&(x=a.endTime-a.startTime,0<x&&f.player_.configure("playRangeEnd",x));a.playoutLimit&&!f.playoutLimitTimer_&&(f.playoutLimitTimer_=(new shaka.util.Timer(function(){f.lastOnSkip_()})).tickAfter(a.playoutLimit),f.player_.configure("playRangeEnd",a.playoutLimit));return z.yield(f.player_.attach(f.video_),6);case 6:return f.preloadManagerInterstitials_.has(a)?z.yield(f.preloadManagerInterstitials_.get(a),
|
|
1707
1710
|
10):z.yield(f.player_.load(a.uri,null,a.mimeType||void 0),8);case 10:return y=z.yieldResult,f.preloadManagerInterstitials_.delete(a),y?z.yield(f.player_.load(y),8):z.yield(f.player_.load(a.uri,null,a.mimeType||void 0),8);case 8:C=(Date.now()-g)/1E3;f.onEvent_(new shaka.util.FakeEvent(shaka.ads.Utils.ADS_LOADED,(new Map).set("loadTime",C)));f.usingBaseVideo_&&f.baseVideo_.play();z.leaveTryBlock(0);break;case 4:A=z.enterCatchBlock();if(!f.playingAd_)return z.return();t(A);z.jumpToEnd()}})};
|
|
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,y,C,A,z,B,D,E,F,G,
|
|
1711
|
+
shaka.ads.InterstitialAdManager.prototype.getInterstitialsInfo_=function(a){var b=this,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,y,C,A,z,B,D,E,F,G,J,L,K,H,M,I,N,R,O,V,P,Q,S,T,U,W;return $jscomp.asyncExecutePromiseGeneratorProgram(function(Y){switch(Y.nextAddress){case 1:c=[];if(!a)return Y.return(c);d=a.values.find(function(X){return"X-ASSET-URI"==X.key});e=a.values.find(function(X){return"X-ASSET-LIST"==X.key});if(!d&&!e)return Y.return(c);f=null;if(g=a.values.find(function(X){return"ID"==X.key}))f=g.data;
|
|
1709
1712
|
h=null==f?Math.floor(10*a.startTime)/10:a.startTime;(k=a.endTime)&&Infinity!=a.endTime&&"number"==typeof a.endTime&&(k=null==f?Math.floor(10*a.endTime)/10:a.endTime);l=a.values.find(function(X){return"X-RESTRICT"==X.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(X){return"X-ENABLE-SKIP-AFTER"==X.key}))t=r.data,q=parseFloat(t),isNaN(q)&&(q=m?0:null);u=null;if(v=a.values.find(function(X){return"X-ENABLE-SKIP-FOR"==X.key}))w=v.data,
|
|
1710
|
-
u=parseFloat(w),isNaN(q)&&(u=null);x=null;if(y=a.values.find(function(X){return"X-RESUME-OFFSET"==X.key}))C=y.data,x=parseFloat(C),isNaN(x)&&(x=null);A=null;if(z=a.values.find(function(X){return"X-PLAYOUT-LIMIT"==X.key}))B=z.data,A=parseFloat(B),isNaN(A)&&(A=null);F=E=D=!1;if(G=a.values.find(function(X){return"CUE"==X.key}))
|
|
1711
|
-
!y&&b.basePlayer_.isLive()&&(
|
|
1712
|
-
R),6);case 6:O=
|
|
1713
|
-
timelineRange:
|
|
1713
|
+
u=parseFloat(w),isNaN(q)&&(u=null);x=null;if(y=a.values.find(function(X){return"X-RESUME-OFFSET"==X.key}))C=y.data,x=parseFloat(C),isNaN(x)&&(x=null);A=null;if(z=a.values.find(function(X){return"X-PLAYOUT-LIMIT"==X.key}))B=z.data,A=parseFloat(B),isNaN(A)&&(A=null);F=E=D=!1;if(G=a.values.find(function(X){return"CUE"==X.key}))J=G.data,D=J.includes("ONCE"),E=J.includes("PRE"),F=J.includes("POST");L=!1;(K=a.values.find(function(X){return"X-TIMELINE-OCCUPIES"==X.key}))?(H=K.data,L=H.includes("RANGE")):
|
|
1714
|
+
!y&&b.basePlayer_.isLive()&&(L=!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:L,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;R={type:N.AdvancedRequestType.INTERSTITIAL_ASSET_LIST};return Y.yield(b.makeAdRequest_(I,
|
|
1715
|
+
R),6);case 6:O=Y.yieldResult;V=shaka.util.StringUtils.fromUTF8(O);P=JSON.parse(V);if(Q=P["SKIP-CONTROL"])S=Q["ENABLE-SKIP-AFTER"],"number"==typeof S&&(q=parseFloat(S),isNaN(S)&&(q=m?0:null)),T=Q["ENABLE-SKIP-FOR"],"number"==typeof T&&(u=parseFloat(T),isNaN(T)&&(u=null));for(U=0;U<P.ASSETS.length;U++)W=P.ASSETS[U],W.URI&&c.push({id:f+"_shaka_asset_"+U,groupId:f,startTime:h,endTime:k,uri:W.URI,mimeType:null,isSkippable:m,skipOffset:q,skipFor:u,canJump:n,resumeOffset:x,playoutLimit:A,once:D,pre:E,post:F,
|
|
1716
|
+
timelineRange:L,loop:!1,overlay:null});Y.leaveTryBlock(2);break;case 4:Y.enterCatchBlock();case 2:return Y.return(c)}})};
|
|
1714
1717
|
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
1718
|
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
1719
|
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)};
|
|
@@ -1838,11 +1841,11 @@ shaka.cast.CastUtils.unpackTimeRanges_=function(a){var b={__type__:"TimeRanges",
|
|
|
1838
1841
|
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
1842
|
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
1843
|
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_=
|
|
1844
|
+
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",
|
|
1845
|
+
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);
|
|
1846
|
+
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(" ");
|
|
1847
|
+
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,
|
|
1848
|
+
l)};this.cachedProperties_={video:{},player:{}};this.nextAsyncCallId_=0;this.asyncCallPromises_=new Map;this.castPromise_=null;shaka.cast.CastSender.instances_.add(this)};
|
|
1846
1849
|
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
1850
|
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
1851
|
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,20 +1854,20 @@ a.onGCastApiAvailable_)};shaka.cast.CastSender.prototype.setAppData=function(a){
|
|
|
1851
1854
|
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
1855
|
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
1856
|
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
|
|
1857
|
+
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!");
|
|
1858
|
+
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
1859
|
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
1860
|
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
1861
|
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_
|
|
1862
|
+
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
1863
|
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
1864
|
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
1865
|
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
1866
|
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
1867
|
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
|
|
1868
|
+
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
1869
|
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_
|
|
1870
|
+
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
1871
|
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
1872
|
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
1873
|
shaka.cast.CastSender.onGCastApiAvailable_=function(a){shaka.cast.CastSender.__onGCastApiAvailable_?window.__onGCastApiAvailable=shaka.cast.CastSender.__onGCastApiAvailable_:delete window.__onGCastApiAvailable;shaka.cast.CastSender.__onGCastApiAvailable_=null;shaka.cast.CastSender.onSdkLoaded_(a);"function"===typeof window.__onGCastApiAvailable&&window.__onGCastApiAvailable(a)};shaka.cast.CastProxy=function(a,b,c,d){d=void 0===d?!1:d;shaka.util.FakeEventTarget.call(this);var e=this;this.localVideo_=a;this.localPlayer_=b;this.eventManager_=this.playerEventTarget_=this.videoEventTarget_=this.playerProxy_=this.videoProxy_=null;this.receiverAppId_=c;this.androidReceiverCompatible_=d;this.compiledToExternNames_=new Map;this.sender_=new shaka.cast.CastSender(c,function(){return e.onCastStatusChanged_()},function(){return e.onFirstCastStateUpdate_()},function(f,g){return e.onRemoteEvent_(f,
|
|
@@ -1890,7 +1893,7 @@ shaka.cast.CastProxy.prototype.videoProxyGet_=function(a){var b=this;if("addEven
|
|
|
1890
1893
|
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
1894
|
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
1895
|
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
|
|
1896
|
+
!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
1897
|
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
1898
|
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
1899
|
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 +1911,9 @@ shaka.cast.CastReceiver.prototype.onCastStatusChanged_=function(){var a=this,b;r
|
|
|
1908
1911
|
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
1912
|
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
1913
|
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
|
-
|
|
1914
|
+
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,
|
|
1915
|
+
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_()};
|
|
1916
|
+
shaka.cast.CastReceiver.prototype.maybeSendMediaInfoMessage_=function(){return this.initialStatusUpdatePending_&&(this.video_.duration||this.player_.isLive())?(this.sendMediaInfoMessage_(),this.initialStatusUpdatePending_=!1,!0):!1};
|
|
1914
1917
|
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
1918
|
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
1919
|
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(),
|
|
@@ -2016,9 +2019,9 @@ g=g.trackId;b.trackIdToTimescale_.has(g)&&(h.timescale=b.trackIdToTimescale_.get
|
|
|
2016
2019
|
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
2020
|
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
2021
|
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
|
|
2022
|
+
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};
|
|
2023
|
+
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",
|
|
2024
|
+
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
2025
|
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
2026
|
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
2027
|
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 +2035,7 @@ shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.DASH_CONFLICTING_AES_12
|
|
|
2032
2035
|
!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
2036
|
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
2037
|
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""};
|
|
2038
|
+
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
2039
|
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
2040
|
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
2041
|
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 +2052,9 @@ a=b.attributes.IV;b=shaka.util.StringUtils.htmlUnescape(b.attributes.keyUriTempl
|
|
|
2049
2052
|
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
2053
|
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
2054
|
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})};
|
|
2055
|
+
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),
|
|
2056
|
+
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);
|
|
2057
|
+
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
2058
|
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
2059
|
"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
2060
|
"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-
|
|
@@ -2100,7 +2103,7 @@ shaka.dash.SegmentBase.checkSegmentIndexSupport=function(a,b){var c=shaka.util.M
|
|
|
2100
2103
|
"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
2104
|
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
2105
|
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
|
|
2106
|
+
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
2107
|
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
2108
|
shaka.dash.SegmentList.fromInheritance_=function(a){return a.segmentList};
|
|
2106
2109
|
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,
|
|
@@ -2114,24 +2117,24 @@ w,a+t,x,u.segment$jscomp$9.start,u.segment$jscomp$9.end,f,p,a,q,[],"",null,null,
|
|
|
2114
2117
|
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
2118
|
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
2119
|
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};
|
|
2120
|
+
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),
|
|
2121
|
+
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(),
|
|
2122
|
+
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,
|
|
2123
|
+
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
2124
|
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
2125
|
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
2126
|
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
2127
|
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
2128
|
"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
2129
|
"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
|
|
2129
|
-
a.bandwidth||null,x=a.representation.id,y=a.representation.getBaseUris,C=a.urlParams,A=n-b.scaledPresentationTimeOffset,z=function(){var
|
|
2130
|
-
n});
|
|
2131
|
-
|
|
2132
|
-
0==h?0<P&&Q.markAsNonIndependent():0!=P%h&&Q.markAsNonIndependent();N.push(Q)}
|
|
2133
|
-
B=m.getSegmentAvailabilityEnd()<r();E=m.isLive();if(B||E){var
|
|
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.
|
|
2130
|
+
shaka.dash.SegmentTemplate.generateSegmentIndexFromIndexTemplate_=function(a,b,c,d){var e=shaka.dash.MpdUtils,f=shaka.util.ManifestParserUtils;goog.asserts.assert(d.indexTemplate,"must be using index template");e=e.fillUriTemplate(d.indexTemplate,a.representation.originalId,null,null,a.bandwidth||null,null);f=f.resolveUris(a.representation.getBaseUris(),[e]);return shaka.dash.SegmentBase.generateSegmentIndexFromUris(a,b,c,f,0,null,d.scaledPresentationTimeOffset)};
|
|
2131
|
+
shaka.dash.SegmentTemplate.generateSegmentIndexFromDuration_=function(a,b,c,d,e,f,g,h){goog.asserts.assert(b.mediaTemplate,"There should be a media template with duration");var k=shaka.dash.MpdUtils,l=shaka.util.ManifestParserUtils,m=a.presentationTimeline,n=a.periodInfo.start,p=a.period.id,q=a.periodInfo.duration,r=function(){var L=null!=p&&e.get(p)||q;return L?n+L:Infinity},t=b.segmentDuration;goog.asserts.assert(null!=t,"Segment duration must not be null!");var u=b.startNumber,v=b.mediaTemplate,
|
|
2132
|
+
w=a.bandwidth||null,x=a.representation.id,y=a.representation.getBaseUris,C=a.urlParams,A=n-b.scaledPresentationTimeOffset,z=function(){var L=[Math.max(m.getSegmentAvailabilityStart(),n),Math.min(m.getSegmentAvailabilityEnd(),r())];goog.asserts.assert(L.every(isFinite),"Available presentation times must be finite!");goog.asserts.assert(L.every(function(K){return 0<=K}),"Available presentation times must be positive!");goog.asserts.assert(null!=t,"Segment duration must not be null!");L=L.map(function(K){return K-
|
|
2133
|
+
n});L=[Math.ceil(L[0]/t),Math.ceil(L[1]/t)-1];a.representation.availabilityTimeOffset&&L[1]++;return L.map(function(K){return K+u})},B=z();c=a.dynamic?Math.max(B[0],B[1]-c+1):B[0];g=g||B[1];B=[];var D=function(L){goog.asserts.assert(null!=t,"Segment duration must not be null!");var K=L-u,H=K*t,M=b.unscaledSegmentDuration;goog.asserts.assert(null!=M,"Segment duration must not be null!");var I=K*M;"BigInt"in window&&I>Number.MAX_SAFE_INTEGER&&(I=BigInt(K)*BigInt(M));H+=n;K=H+t;M=Math.min(K,r());goog.asserts.assert(H<
|
|
2134
|
+
M,"Generated a segment outside of the period!");var N=[],R=b.numChunks;if(R)for(var O=(M-H)/R,V={},P=0;P<R;V={subNumber$jscomp$1:void 0},P++){var Q=H+O*P,S=Q+O;V.subNumber$jscomp$1=P+1;V=function(T){return function(){var U=k.fillUriTemplate(v,x,L,T.subNumber$jscomp$1,w,I);return l.resolveUris(y(),[U],C())}}(V);Q=new shaka.media.SegmentReference(Q,S,V,0,null,d,A,n,r(),[],"",null,null,shaka.media.SegmentReference.Status.AVAILABLE,f);Q.codecs=a.representation.codecs;Q.mimeType=a.representation.mimeType;
|
|
2135
|
+
0==h?0<P&&Q.markAsNonIndependent():0!=P%h&&Q.markAsNonIndependent();N.push(Q)}H=new shaka.media.SegmentReference(H,M,function(){if(R)return[];var T=k.fillUriTemplate(v,x,L,null,w,I);return l.resolveUris(y(),[T],C())},0,null,d,A,n,r(),N,"",null,null,shaka.media.SegmentReference.Status.AVAILABLE,f,0<N.length);H.codecs=a.representation.codecs;H.mimeType=a.representation.mimeType;H.bandwidth=a.bandwidth;H.trueEndTime=K;return H},E=c;for(;E<=g;++E){var F=D(E);B.push(F)}var G=new shaka.media.SegmentIndex(B);
|
|
2136
|
+
B=m.getSegmentAvailabilityEnd()<r();E=m.isLive();if(B||E){var J=Math.max(c,g+1);c=t;a.representation.availabilityTimeOffset&&(c=.1);G.updateEvery(c,function(){var L=m.getSegmentAvailabilityStart();G.evict(L);var K=$jscomp.makeIterator(z());K.next();K=K.next().value;for(var H=[];J<=K;){var M=D(J);H.push(M);J++}return L>r()&&!H.length?null:H})}return Promise.resolve(G)};
|
|
2137
|
+
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
2138
|
"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
2139
|
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
2140
|
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 +2166,19 @@ shaka.util.PeriodCombiner.prototype.deleteStream=function(a,b){if(a){var c=shaka
|
|
|
2163
2166
|
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
2167
|
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
2168
|
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,y,C,A,z,B,D,E,F,G,
|
|
2167
|
-
Array.from(h[0].values()),d.textStreams_=Array.from(k[0].values()),d.imageStreams_=Array.from(l[0].values()),
|
|
2169
|
+
shaka.util.PeriodCombiner.prototype.combinePeriods=function(a,b,c){c=void 0===c?!1:c;var d=this,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,y,C,A,z,B,D,E,F,G,J,L,K,H,M;return $jscomp.asyncExecutePromiseGeneratorProgram(function(I){if(1==I.nextAddress){e=shaka.util.ManifestParserUtils.ContentType;if(!b&&1==a.length)return f=d.getStreamsPerPeriod_(a,!1),g=f.audioStreamsPerPeriod,h=f.videoStreamsPerPeriod,k=f.textStreamsPerPeriod,l=f.imageStreamsPerPeriod,d.audioStreams_=Array.from(g[0].values()),d.videoStreams_=
|
|
2170
|
+
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_,
|
|
2168
2171
|
shaka.util.PeriodCombiner.concatenateStreams_,m),d.combine_(d.videoStreams_,u,n,shaka.util.PeriodCombiner.cloneStream_,shaka.util.PeriodCombiner.concatenateStreams_,m),d.combine_(d.textStreams_,v,n,shaka.util.PeriodCombiner.cloneStream_,shaka.util.PeriodCombiner.concatenateStreams_,m),d.combine_(d.imageStreams_,w,n,shaka.util.PeriodCombiner.cloneStream_,shaka.util.PeriodCombiner.concatenateStreams_,m)]),2)}x=0;y=[];if(d.videoStreams_.length&&d.audioStreams_.length)for(E=$jscomp.makeIterator(d.audioStreams_),
|
|
2169
|
-
F=E.next();!F.done;F=E.next())for(G=F.value,
|
|
2170
|
-
decodingInfos:[]}));else for(C=d.videoStreams_.length?d.videoStreams_:d.audioStreams_,A=$jscomp.makeIterator(C),z=A.next();!z.done;z=A.next())B=z.value,D=x++,y.push({id:D,language:B.language,disabledUntilTime:0,primary:B.primary,audio:B.type==e.AUDIO?B:null,video:B.type==e.VIDEO?B:null,bandwidth:B.bandwidth||0,drmInfos:B.drmInfos,allowedByApplication:!0,allowedByKeySystem:!0,decodingInfos:[]});d.variants_=y;
|
|
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,y,C,A,z,B,D,E,F,G,
|
|
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
|
|
2172
|
+
F=E.next();!F.done;F=E.next())for(G=F.value,J=$jscomp.makeIterator(d.videoStreams_),L=J.next();!L.done;L=J.next())K=L.value,H=shaka.drm.DrmUtils.getCommonDrmInfos(G.drmInfos,K.drmInfos),G.drmInfos.length&&K.drmInfos.length&&!H.length?shaka.log.warning("Incompatible DRM in audio & video, skipping variant creation.",G,K):(M=x++,y.push({id:M,language:G.language,disabledUntilTime:0,primary:G.primary,audio:G,video:K,bandwidth:(G.bandwidth||0)+(K.bandwidth||0),drmInfos:H,allowedByApplication:!0,allowedByKeySystem:!0,
|
|
2173
|
+
decodingInfos:[]}));else for(C=d.videoStreams_.length?d.videoStreams_:d.audioStreams_,A=$jscomp.makeIterator(C),z=A.next();!z.done;z=A.next())B=z.value,D=x++,y.push({id:D,language:B.language,disabledUntilTime:0,primary:B.primary,audio:B.type==e.AUDIO?B:null,video:B.type==e.VIDEO?B:null,bandwidth:B.bandwidth||0,drmInfos:B.drmInfos,allowedByApplication:!0,allowedByKeySystem:!0,decodingInfos:[]});d.variants_=y;I.jumpToEnd()})};
|
|
2174
|
+
shaka.util.PeriodCombiner.combineDbStreams=function(a){var b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,y,C,A,z,B,D,E,F,G,J,L,K;return $jscomp.asyncExecutePromiseGeneratorProgram(function(H){switch(H.nextAddress){case 1:b=shaka.util.ManifestParserUtils.ContentType;c=shaka.util.PeriodCombiner;if(1==a.length)return H.return(a[0]);d=a.map(function(M){return new Map(M.filter(function(I){return I.type===b.AUDIO}).map(function(I){return[c.generateAudioKey_(I),I]}))});e=a.map(function(M){return new Map(M.filter(function(I){return I.type===
|
|
2175
|
+
b.VIDEO}).map(function(I){return[c.generateVideoKey_(I),I]}))});f=a.map(function(M){return new Map(M.filter(function(I){return I.type===b.TEXT}).map(function(I){return[c.generateTextKey_(I),I]}))});g=a.map(function(M){return new Map(M.filter(function(I){return I.type===b.IMAGE}).map(function(I){return[c.generateImageKey_(I),I]}))});h=$jscomp.makeIterator(f);for(k=h.next();!k.done;k=h.next())l=k.value,m=c.dummyStreamDB_(b.TEXT),l.set(c.generateTextKey_(m),m);n=$jscomp.makeIterator(g);for(p=n.next();!p.done;p=
|
|
2176
|
+
n.next())q=p.value,r=c.dummyStreamDB_(b.IMAGE),q.set(c.generateImageKey_(r),r);t=new shaka.util.PeriodCombiner;return H.yield(t.combine_([],d,0,shaka.util.PeriodCombiner.cloneStreamDB_,shaka.util.PeriodCombiner.concatenateStreamDBs_,0),2);case 2:return u=H.yieldResult,H.yield(t.combine_([],e,0,shaka.util.PeriodCombiner.cloneStreamDB_,shaka.util.PeriodCombiner.concatenateStreamDBs_,0),3);case 3:return v=H.yieldResult,H.yield(t.combine_([],f,0,shaka.util.PeriodCombiner.cloneStreamDB_,shaka.util.PeriodCombiner.concatenateStreamDBs_,
|
|
2177
|
+
0),4);case 4:return w=H.yieldResult,H.yield(t.combine_([],g,0,shaka.util.PeriodCombiner.cloneStreamDB_,shaka.util.PeriodCombiner.concatenateStreamDBs_,0),5);case 5:x=H.yieldResult;y=0;if(v.length&&u.length)for(D=$jscomp.makeIterator(u),E=D.next();!E.done;E=D.next())for(F=E.value,G=$jscomp.makeIterator(v),J=G.next();!J.done;J=G.next())L=J.value,K=y++,L.variantIds.push(K),F.variantIds.push(K);else for(C=v.concat(u),A=$jscomp.makeIterator(C),z=A.next();!z.done;z=A.next())B=z.value,B.variantIds=[y++];
|
|
2178
|
+
return H.return(v.concat(u).concat(w).concat(x))}})};
|
|
2176
2179
|
shaka.util.PeriodCombiner.prototype.combine_=function(a,b,c,d,e,f){var g=this,h,k,l,m,n,p,q,r,t,u,v,w,x,y,C,A,z,B,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,
|
|
2177
2180
|
shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.PERIOD_FLATTENING_FAILED);m=l.next();F.jumpTo(2);break;case 4:q=$jscomp.makeIterator(h);for(r=q.next();!r.done;r=q.next())for(t=r.value,u=$jscomp.makeIterator(t),v=u.next();!v.done;v=u.next())w=v.value,(x=g.createNewOutputStream_(w,b,d,e,h))&&a.push(x);y=$jscomp.makeIterator(h);for(C=y.next();!C.done;C=y.next())for(A=C.value,z=$jscomp.makeIterator(A),B=z.next(),D={};!B.done;D={stream$jscomp$93:void 0},B=z.next())if(D.stream$jscomp$93=B.value,
|
|
2178
|
-
!shaka.util.PeriodCombiner.isDummy_(D.stream$jscomp$93)&&(E=a.some(function(G){return function(
|
|
2181
|
+
!shaka.util.PeriodCombiner.isDummy_(D.stream$jscomp$93)&&(E=a.some(function(G){return function(J){return g.areAVStreamsCompatible_(G.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
2182
|
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
2183
|
c,d,e,f);return h.return(!0)})};
|
|
2181
2184
|
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 +2220,14 @@ shaka.util.PeriodCombiner.BetterOrWorse={BETTER:1,EQUAL:0,WORSE:-1};shaka.util.P
|
|
|
2217
2220
|
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
2221
|
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
2222
|
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_=
|
|
2223
|
+
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
2224
|
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
2225
|
!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
2226
|
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
2227
|
shaka.media.Capabilities.isChangeTypeSupported()),this.periodCombiner_.setUseStreamOnce(this.config_.dash.useStreamOnceInPeriodFlattening))};
|
|
2225
2228
|
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
2229
|
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(
|
|
2230
|
+
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
2231
|
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
2232
|
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
2233
|
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 +2238,24 @@ p);return q.return(p)})};
|
|
|
2235
2238
|
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
2239
|
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
2240
|
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,y,C,A,z,B,D,E,F,G,
|
|
2241
|
+
shaka.dash.DashParser.prototype.processManifest_=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,y,C,A,z,B,D,E,F,G,J,L,K,H,M,I,N,R,O,V,P,Q,S,T,U,W,Y,X,ca,ba,Z,aa,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
2242
|
"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
2243
|
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
2244
|
c.contentSteeringManager_.setBaseUris(e),c.contentSteeringManager_.setDefaultPathwayId(v),w=d.getContents(u))(x=d.parseAttr(u,"queryBeforeStart",d.parseBoolean,!1))?t=c.contentSteeringManager_.requestInfo(w):c.contentSteeringManager_.requestInfo(w);y=$jscomp.makeIterator(g.keys());for(C=y.next();!C.done;C=y.next())A=C.value,z=g.get(A),c.contentSteeringManager_.addLocation("Location",A,z)}B=d.findChildren(a,"BaseURL");D=!1;if(c.contentSteeringManager_)for(E=$jscomp.makeIterator(B),F=E.next();!F.done;F=
|
|
2242
|
-
E.next())G=F.value,
|
|
2243
|
-
(
|
|
2244
|
-
d.parseDuration));Q=a.attributes.type||"static";c.manifest_&&c.manifest_.presentationTimeline&&(c.isTransitionFromDynamicToStatic_=c.manifest_.presentationTimeline.isLive()&&"static"==Q);c.manifestPatchContext_.type=Q;if(c.manifest_)for(S=c.manifest_.presentationTimeline,T=S.getSegmentAvailabilityStart(),U=$jscomp.makeIterator(
|
|
2245
|
-
|
|
2246
|
-
|
|
2247
|
-
S.
|
|
2248
|
-
|
|
2249
|
-
|
|
2245
|
+
E.next())G=F.value,J=G.attributes.serviceLocation,L=d.getContents(G),J&&L&&(c.contentSteeringManager_.addLocation("BaseURL",J,L),D=!0);c.lastCalculatedBaseUris_=null;D&&c.contentSteeringManager_||(K=B.map(d.getContents),c.lastCalculatedBaseUris_=shaka.util.ManifestParserUtils.resolveUris(e,K));H=function(){return c.contentSteeringManager_&&D?c.contentSteeringManager_.getLocations("BaseURL"):c.lastCalculatedBaseUris_?c.lastCalculatedBaseUris_:[]};c.manifestPatchContext_.getBaseUris=H;M=0;B&&B.length&&
|
|
2246
|
+
(M=d.parseAttr(B[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);R=c.config_.dash.ignoreSuggestedPresentationDelay;O=null;R||(O=d.parseAttr(a,"suggestedPresentationDelay",d.parseDuration));V=c.config_.dash.ignoreMaxSegmentDuration;P=null;V||(P=d.parseAttr(a,"maxSegmentDuration",
|
|
2247
|
+
d.parseDuration));Q=a.attributes.type||"static";c.manifest_&&c.manifest_.presentationTimeline&&(c.isTransitionFromDynamicToStatic_=c.manifest_.presentationTimeline.isLive()&&"static"==Q);c.manifestPatchContext_.type=Q;if(c.manifest_)for(S=c.manifest_.presentationTimeline,T=S.getSegmentAvailabilityStart(),U=$jscomp.makeIterator(c.streamMap_.values()),W=U.next();!W.done;W=U.next())Y=W.value,Y.segmentIndex&&Y.segmentIndex.evict(T);else X=c.config_.dash.ignoreMinBufferTime,ca=0,X||(ca=d.parseAttr(a,"minBufferTime",
|
|
2248
|
+
d.parseDuration)||0),ba=0,ba=null!=O?Math.min(O,N||Infinity):0<c.config_.defaultPresentationDelay?c.config_.defaultPresentationDelay:Math.min(1.5*ca,N||Infinity),S=new shaka.media.PresentationTimeline(I,ba,c.config_.dash.autoCorrectDrift);S.setStatic("static"==Q);(Z=S.isLive())&&!isNaN(c.config_.availabilityWindowOverride)&&(N=c.config_.availabilityWindowOverride);null==N&&(N=Infinity);S.setSegmentAvailabilityDuration(N);aa=a.attributes.profiles||"";c.manifestPatchContext_.profiles=aa.split(",");
|
|
2249
|
+
ea={dynamic:"static"!=Q,presentationTimeline:S,period:null,periodInfo:null,adaptationSet:null,representation:null,bandwidth:0,indexRangeWarningGiven:!1,availabilityTimeOffset:M,mediaPresentationDuration:null,profiles:aa.split(","),roles:null,urlParams:function(){return""}};c.gapCount_=0;fa=c.parsePeriods_(ea,H,a,!1);ia=fa.duration;ha=fa.periods;("static"!=Q||c.isTransitionFromDynamicToStatic_)&&fa.durationDerivedFromPeriods||S.setDuration(ia||Infinity);c.isLowLatency_&&c.lowLatencyMode_&&S.setAvailabilityTimeOffset(c.minTotalAvailabilityTimeOffset_);
|
|
2250
|
+
S.notifyMaxSegmentDuration(P||1);goog.DEBUG&&!c.isTransitionFromDynamicToStatic_&&S.assertIsValid();return da.yield(t,2);case 2:c.isLowLatency_&&c.lowLatencyMode_&&(ja=null!=O?O:c.config_.defaultPresentationDelay,S.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:S,variants:c.periodCombiner_.getVariants(),
|
|
2251
|
+
textStreams:c.periodCombiner_.getTextStreams(),imageStreams:c.periodCombiner_.getImageStreams(),offlineSessionIds:[],sequenceMode:c.config_.dash.sequenceMode,ignoreManifestTimestampsInSegmentsMode:!1,type:shaka.media.ManifestParser.DASH,serviceDescription:c.parseServiceDescription_(a),nextUrl:c.parseMpdChaining_(a),periodCount:ha.length,gapCount:c.gapCount_,isLowLatency:c.isLowLatency_,startTime:null};if(!S.usingPresentationStartTime()){da.jumpTo(7);break}ka=shaka.util.TXml;la=ka.findChildren(a,"UTCTiming");
|
|
2252
|
+
return da.yield(c.parseUtcTiming_(H,la),8);case 8:ma=da.yieldResult;if(!c.playerInterface_)return da.return();S.setClockOffset(ma);case 7:S.lockStartTime();case 4:c.playerInterface_.makeTextStreamsForClosedCaptions(c.manifest_),c.cleanStreamMap_(),da.jumpToEnd()}})};
|
|
2250
2253
|
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,y,C,A,z,B,D,E,F,G,
|
|
2254
|
+
shaka.dash.DashParser.prototype.processPatchManifest_=function(a){var b=this,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,y,C,A,z,B,D,E,F,G,J,L;return $jscomp.asyncExecutePromiseGeneratorProgram(function(K){if(1==K.nextAddress){c=shaka.util.TXml;d=a.attributes.mpdId;e=c.parseAttr(a,"originalPublishTime",c.parseDate);if(!d||d!==b.manifestPatchContext_.mpdId||e!==b.manifestPatchContext_.publishTime)throw b.patchLocationNodes_=[],new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.MANIFEST,
|
|
2252
2255
|
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
2256
|
q.attribute&&"add"===m.tagName?g.push(m):n=!1;else if("PatchLocation"===q.name)b.updatePatchLocationNodes_(m);else if("Period"===q.name)"add"===m.tagName?g.push(m):"remove"===m.tagName&&q.id&&b.removePatchPeriod_(q.id);else if("SegmentTemplate"===q.name)for(u=b.modifySegmentTemplate_(m),v=$jscomp.makeIterator(u),w=v.next();!w.done;w=v.next())x=w.value,h.add(x);else if("SegmentTimeline"===q.name||"S"===q.name)for(y=b.modifyTimepoints_(m),C=$jscomp.makeIterator(y),A=C.next();!A.done;A=C.next())z=A.value,
|
|
2254
|
-
h.add(z);else n=!1;n||shaka.log.warning("Unhandled "+m.tagName+" operation",m.attributes.sel)}B=$jscomp.makeIterator(h);for(D=B.next();!D.done;D=B.next())E=D.value,b.parsePatchSegment_(E);F=$jscomp.makeIterator(g);for(G=F.next();!G.done;G=F.next())
|
|
2255
|
-
(
|
|
2257
|
+
h.add(z);else n=!1;n||shaka.log.warning("Unhandled "+m.tagName+" operation",m.attributes.sel)}B=$jscomp.makeIterator(h);for(D=B.next();!D.done;D=B.next())E=D.value,b.parsePatchSegment_(E);F=$jscomp.makeIterator(g);for(G=F.next();!G.done;G=F.next())J=G.value,f.push.apply(f,$jscomp.arrayFromIterable(b.parsePatchPeriod_(J)));if(!f.length)return K.jumpTo(2);b.manifest_.periodCount+=f.length;b.manifest_.gapCount=b.gapCount_;return K.yield(b.postPeriodProcessing_(f,!0),2)}"static"==b.manifestPatchContext_.type&&
|
|
2258
|
+
(L=b.manifestPatchContext_.mediaPresentationDuration,b.manifest_.presentationTimeline.setDuration(L||Infinity));K.jumpToEnd()})};shaka.dash.DashParser.prototype.parsePatchMpdTypeChange_=function(a){this.manifest_.presentationTimeline.setStatic("static"==a);this.manifestPatchContext_.type=a;for(var b=$jscomp.makeIterator(this.contextCache_.values()),c=b.next();!c.done;c=b.next())c.value.dynamic="dynamic"==a;"static"==a&&(this.updatePeriod_=-1)};
|
|
2256
2259
|
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
2260
|
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
2261
|
mediaPresentationDuration:this.manifestPatchContext_.mediaPresentationDuration,roles:null,urlParams:function(){return""}},this.manifestPatchContext_.getBaseUris,a,!0).periods};
|
|
@@ -2261,56 +2264,56 @@ shaka.dash.DashParser.prototype.getContextIdsFromPath_=function(a){var b="",c=""
|
|
|
2261
2264
|
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
2265
|
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
2266
|
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_
|
|
2267
|
+
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
2268
|
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
2269
|
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
2270
|
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
2271
|
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
2272
|
"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&&
|
|
2273
|
+
!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
2274
|
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
2275
|
"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),
|
|
2276
|
+
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,
|
|
2277
|
+
c),this.streamMap_.delete(f)))}d&&this.indexStreamMap_.delete(c)}};
|
|
2275
2278
|
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
2279
|
"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
2280
|
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
2281
|
$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
2282
|
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
2283
|
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
|
+
shaka.dash.DashParser.prototype.parseAdaptationSet_=function(a,b,c){var d=this,e=shaka.util.TXml,f=shaka.util.Functional,g=shaka.util.ManifestParserUtils,h=g.ContentType,k=shaka.dash.ContentProtection;a.adaptationSet=this.createFrame_(c,a.period,null);a.adaptationSet.position=b;var l=!1,m=e.findChildren(c,"Role"),n=m.map(function(J){return J.attributes.value}).filter(f.isNotNull),p=void 0;if(b=a.adaptationSet.contentType==h.TEXT)p=g.TextStreamKind.SUBTITLE;f=$jscomp.makeIterator(m);for(m=f.next();!m.done;m=
|
|
2285
|
+
f.next()){m=m.value;var q=m.attributes.schemeIdUri;if(null==q||"urn:mpeg:dash:role:2011"==q)switch(m=m.attributes.value,m){case "main":l=!0;break;case "caption":case "subtitle":p=m}}m=function(J){switch(J){case 1:case 6:case 13:case 14:case 15:return"SDR";case 16:return"PQ";case 18:return"HLG"}};q=function(J){switch(J){case 1:case 5:case 6:case 7:return"srgb";case 9:return"rec2020";case 11:case 12:return"p3"}};var r=function(J){var L=J.attributes["dvb:fontFamily"];J=J.attributes["dvb:url"];L&&J&&
|
|
2286
|
+
(J=shaka.util.ManifestParserUtils.resolveUris(a.adaptationSet.getBaseUris(),[J],a.urlParams()),d.playerInterface_.addFont(L,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 y=x.attributes.schemeIdUri;if("http://dashif.org/guidelines/trickmode"==y)f=x.attributes.value;else if("urn:mpeg:mpegB:cicp:TransferCharacteristics"==y)var C=m(parseInt(x.attributes.value,10));else if("urn:mpeg:mpegB:cicp:ColourPrimaries"==
|
|
2284
2287
|
y)var A=q(parseInt(x.attributes.value,10));else"urn:mpeg:mpegB:cicp:MatrixCoefficients"!=y&&("urn:mpeg:dash:ssr:2023"==y&&this.config_.dash.enableFastSwitching?u=!0:"urn:dvb:dash:fontdownload:2014"==y?r(x):"urn:mpeg:dash:urlparam:2014"==y?(v=this.getURLParametersFunction_(x))||(w=!0):w=!0)}if(w)return null;var z=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"==
|
|
2285
2288
|
x?z=parseInt(t.attributes.value,10)-1:"urn:mpeg:mpegB:cicp:TransferCharacteristics"==x?C=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 B=new Map;q=$jscomp.makeIterator(q);for(r=q.next();!r.done;r=q.next())if(v=r.value,r=v.attributes.schemeIdUri,
|
|
2286
2289
|
v=v.attributes.value,"urn:scte:dash:cc:cea-608:2015"==r&&!this.config_.disableText)if(r=1,null!=v)for(v=v.split(";"),w=$jscomp.makeIterator(v),t=w.next();!t.done;t=w.next())x=t.value,y=t=void 0,x.includes("=")?(x=x.split("="),t=x[0].startsWith("CC")?x[0]:"CC"+x[0],y=x[1]||"und"):(t="CC"+r,2==v.length?r+=2:r++,y=x),B.set(t,m.normalize(y));else B.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=
|
|
2287
2290
|
v.next())t=w.value,x=w=void 0,t.includes("=")?(t=t.split("="),w="svc"+t[0],x=t[1].split(",")[0].split(":").pop()):(w="svc"+r,r++,x=t),B.set(w,m.normalize(x));else B.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);
|
|
2288
2291
|
g=e.findChildren(c,"ContentProtection");var E=k.parseFromAdaptationSet(g,this.config_.dash.ignoreDrmInfo,this.config_.dash.keySystemsByURI),F=shaka.util.LanguageUtils.normalize(a.adaptationSet.language||"und"),G=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),
|
|
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(
|
|
2292
|
+
q.attributes.codecs=m.split(" ").join(","),q.attributes.id&&(q.attributes.supplementalId=q.attributes.id+"_supplementalCodecs"),k.push(q);c.push.apply(c,$jscomp.arrayFromIterable(k))}e=c.map(function(J){if(J=d.parseRepresentation_(a,E,p,F,G,l,n,B,J,D,z))J.hdr=J.hdr||C,J.colorGamut=J.colorGamut||A,J.fastSwitching=u;return J}).filter(function(J){return!!J});if(0==e.length){f=a.adaptationSet.contentType==h.IMAGE;if(this.config_.dash.ignoreEmptyAdaptationSet||b||f)return null;throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
|
|
2293
|
+
shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.DASH_EMPTY_ADAPTATION_SET);}if(!a.adaptationSet.contentType||a.adaptationSet.contentType==h.APPLICATION)for(a.adaptationSet.contentType=shaka.dash.DashParser.guessContentType_(e[0].mimeType,e[0].codecs),h=$jscomp.makeIterator(e),b=h.next();!b.done;b=h.next())b.value.type=a.adaptationSet.contentType;h=a.adaptationSet.id||"__fake__"+this.globalId_++;b=$jscomp.makeIterator(e);for(k=b.next();!k.done;k=b.next()){k=k.value;g=$jscomp.makeIterator(E.drmInfos);
|
|
2294
|
+
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
2295
|
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
2296
|
if(g.length)return f+"="+g[0]}return e}).join("&")}}return null};
|
|
2294
2297
|
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 y=void 0;if(b.aes128Info){var C=a.representation.getBaseUris,A=a.urlParams,z=shaka.util.ManifestParserUtils.resolveUris(C(),[b.aes128Info.keyUri],A()),B=shaka.net.NetworkingEngine.RequestType.KEY,D=shaka.net.NetworkingEngine.makeRequest(z,this.config_.retryParameters);y={bitsKey:128,blockCipherMode:"CBC",iv:b.aes128Info.iv,firstMediaSequenceNumber:0,fetchKey:function(){var
|
|
2297
|
-
B),2);if(3!=O.nextAddress){
|
|
2298
|
-
shaka.dash.SegmentBase.createStreamInfo(a,C,y);else if(a.representation.segmentList)E=shaka.dash.SegmentList.createStreamInfo(a,this.streamMap_,y);else if(a.representation.segmentTemplate)E=shaka.dash.SegmentTemplate.createStreamInfo(a,C,this.streamMap_,!!this.manifest_,this.config_.dash.initialSegmentLimit,this.periodDurations_,y,m,!1);else{goog.asserts.assert(w,"Must have Segment* with non-text streams.");var F=a.periodInfo.duration||0,G=a.representation.getBaseUris,
|
|
2299
|
-
|
|
2300
|
-
|
|
2301
|
-
u.includes("hev1.2.4.L153.B0"))&&(
|
|
2298
|
+
null;var t=a.periodInfo.start;a.bandwidth=p.parseAttr(k,"bandwidth",p.parsePositiveInt)||0;a.roles=g;var u=p.findChildren(k,"SupplementalProperty"),v=p.findChildren(k,"EssentialProperty"),w=null,x=v.find(function(I){return"urn:mpeg:dash:urlparam:2014"==I.attributes.schemeIdUri});x?w=this.getURLParametersFunction_(x):(x=u.find(function(I){return"urn:mpeg:dash:urlparam:2014"==I.attributes.schemeIdUri}))&&(w=this.getURLParametersFunction_(x));w&&(a.urlParams=w);x=a.representation.contentType;w=x==q.TEXT||
|
|
2299
|
+
x==q.APPLICATION;q=x==q.IMAGE;try{var y=void 0;if(b.aes128Info){var C=a.representation.getBaseUris,A=a.urlParams,z=shaka.util.ManifestParserUtils.resolveUris(C(),[b.aes128Info.keyUri],A()),B=shaka.net.NetworkingEngine.RequestType.KEY,D=shaka.net.NetworkingEngine.makeRequest(z,this.config_.retryParameters);y={bitsKey:128,blockCipherMode:"CBC",iv:b.aes128Info.iv,firstMediaSequenceNumber:0,fetchKey:function(){var I,N,R;return $jscomp.asyncExecutePromiseGeneratorProgram(function(O){if(1==O.nextAddress)return O.yield(n.makeNetworkRequest_(D,
|
|
2300
|
+
B),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"};R=y;return O.yield(window.crypto.subtle.importKey("raw",I.data,N,!0,["decrypt"]),3)}R.cryptoKey=O.yieldResult;y.fetchKey=void 0;O.jumpToEnd()})}}}a.representation.aesKey=y;C=function(I,N,R,O){return n.requestSegment_(I,N,R,O)};if(a.representation.segmentBase)var E=
|
|
2301
|
+
shaka.dash.SegmentBase.createStreamInfo(a,C,y);else if(a.representation.segmentList)E=shaka.dash.SegmentList.createStreamInfo(a,this.streamMap_,y);else if(a.representation.segmentTemplate)E=shaka.dash.SegmentTemplate.createStreamInfo(a,C,this.streamMap_,!!this.manifest_,this.config_.dash.initialSegmentLimit,this.periodDurations_,y,m,!1);else{goog.asserts.assert(w,"Must have Segment* with non-text streams.");var F=a.periodInfo.duration||0,G=a.representation.getBaseUris,J=a.representation.mimeType,
|
|
2302
|
+
L=a.representation.codecs;E={generateSegmentIndex:function(){var I=shaka.media.SegmentIndex.forSingleSegment(t,F,G());I.forEachTopLevelReference(function(N){N.mimeType=J;N.codecs=L});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"==
|
|
2303
|
+
I.attributes.schemeIdUri&&"JOC"==I.attributes.value});u=a.representation.codecs;C=u.includes("ec-3")&&384E3<a.bandwidth;m=!1;if(p||C)m=!0;p=!1;w&&(p=g.includes("forced_subtitle")||g.includes("forced-subtitle"));var K;if(q&&((v=v.find(function(I){return["http://dashif.org/thumbnail_tile","http://dashif.org/guidelines/thumbnail_tile"].includes(I.attributes.schemeIdUri)}))&&(K=v.attributes.value),!K))return null;var H;a.profiles.includes("http://dashif.org/guidelines/dash-if-uhd#hevc-hdr-pq10")&&(u.includes("hvc1.2.4.L153.B0")||
|
|
2304
|
+
u.includes("hev1.2.4.L153.B0"))&&(H="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
2305
|
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_
|
|
2306
|
+
spatialAudio:m,closedCaptions:h,hdr:H,colorGamut:void 0,videoLayout:void 0,tilesLayout:K,accessibilityPurpose:l,external:!1,fastSwitching:!1,fullMimeTypes:new Set([shaka.util.MimeUtils.getFullType(a.representation.mimeType,a.representation.codecs)]),isAudioMuxedInVideo:!1};M.createSegmentIndex=function(){var I;return $jscomp.asyncExecutePromiseGeneratorProgram(function(N){if(1==N.nextAddress){if(M.segmentIndex)return N.jumpTo(0);I=M;return N.yield(E.generateSegmentIndex(),3)}I.segmentIndex=N.yieldResult;
|
|
2307
|
+
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
2308
|
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
2309
|
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
2310
|
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
2311
|
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
2312
|
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
|
-
|
|
2313
|
+
m=a.attributes.supplementalId,n=g.findChildren(a,"BaseURL"),p,q=!1;if(this.contentSteeringManager_)for(var r=$jscomp.makeIterator(n),t=r.next();!t.done;t=r.next()){var u=t.value;t=u.attributes.serviceLocation;u=g.getContents(u);t&&u&&(this.contentSteeringManager_.addLocation(l,t,u),q=!0)}q&&this.contentSteeringManager_||(p=n.map(g.getContents));r=a.attributes.contentType||b.contentType;t=a.attributes.mimeType||b.mimeType;e=e.codecsFiltering([a.attributes.codecs||b.codecs]).join(",");k=g.parseAttr(a,
|
|
2314
|
+
"frameRate",k)||b.frameRate;u=a.attributes.sar||b.pixelAspectRatio;var v=this.emsgSchemeIdUris_(g.findChildren(a,"InbandEventStream"),b.emsgSchemeIdUris),w=g.findChildren(a,"AudioChannelConfiguration");w=this.parseAudioChannels_(w)||b.numChannels;var x=g.parseAttr(a,"audioSamplingRate",h)||b.audioSamplingRate;r||(r=shaka.dash.DashParser.guessContentType_(t,e));var y=g.findChild(a,"SegmentBase"),C=g.findChild(a,"SegmentTemplate"),A=y?g.parseAttr(y,"availabilityTimeOffset",g.parseFloat)||0:0,z=C?g.parseAttr(C,
|
|
2315
|
+
"availabilityTimeOffset",g.parseFloat)||0:0,B=n&&n.length?g.parseAttr(n[0],"availabilityTimeOffset",g.parseFloat)||0:0;A=b.availabilityTimeOffset+B+A+z;z=null;(B=g.findChild(a,"SegmentSequenceProperties"))&&(B=g.findChild(B,"SAP"))&&(z=g.parseAttr(B,"cadence",g.parseInt));B=a.attributes.label;var D=g.findChildren(a,"Label");D&&D.length&&(D=D[0],g.getTextContents(D)&&(B=g.getTextContents(D)));return{getBaseUris:function(){return f.resolveUris(c(),n.length?d.contentSteeringManager_&&q?d.contentSteeringManager_.getLocations(l):
|
|
2316
|
+
p?p:[]:[])},segmentBase:y||b.segmentBase,segmentList:g.findChild(a,"SegmentList")||b.segmentList,segmentTemplate:C||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:z||b.segmentSequenceCadence,label:B||null}};
|
|
2314
2317
|
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
2318
|
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
2319
|
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 +2360,11 @@ this.aesKeyInfoMap_.clear();this.aesKeyMap_.clear();this.identityKeyMap_.clear()
|
|
|
2357
2360
|
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
2361
|
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
2362
|
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,y,C,A,z,B,D,E,F,G,
|
|
2363
|
+
shaka.hls.HlsParser.prototype.updateStream_=function(a){var b=this,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,y,C,A,z,B,D,E,F,G,J,L,K,H,M,I,N,R;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
2364
|
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
2365
|
shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_INVALID_PLAYLIST_HIERARCHY);n=k.uri;n==k.originalUri||a.getUris().includes(n)||a.redirectUris.push(n);p=shaka.hls.Utils.filterTagsByName(m.tags,"EXT-X-DEFINE");q=b.parseMediaVariables_(p,n);r=a.stream;t=b.getMediaSequenceToStartTimeFor_(a);return O.yield(b.parseDrmInfo_(m,r.mimeType,a.getUris,q),5);case 5:u=O.yieldResult;v=u.keyIds;w=u.drmInfos;x=function(V,P){return V.size===P.size&&[].concat($jscomp.arrayFromIterable(V)).every(function(Q){return P.has(Q)})};
|
|
2363
2366
|
x(r.keyIds,v)||(r.keyIds=v,r.drmInfos=w,b.playerInterface_.newDrmInfo(r));y=b.createSegments_(m,t,q,a.getUris,a.type);C=y.segments;if(A=y.bandwidth)r.bandwidth=A;z=shaka.media.QualityObserver.createQualityInfo(r);B=$jscomp.makeIterator(C);for(D=B.next();!D.done;D=B.next())E=D.value,E.initSegmentReference&&(E.initSegmentReference.mediaQuality=z);r.segmentIndex.mergeAndEvict(C,b.presentationTimeline_.getSegmentAvailabilityStart());C.length&&(F=shaka.hls.Utils.getFirstTagWithNameAsNumber(m.tags,"EXT-X-MEDIA-SEQUENCE",
|
|
2364
|
-
0),
|
|
2367
|
+
0),J=(G=shaka.hls.Utils.getFirstTagWithName(m.tags,"EXT-X-SKIP"))?Number(G.getAttributeValue("SKIPPED-SEGMENTS")):0,L=b.getNextMediaSequenceAndPart_(F,C),K=L.nextMediaSequence,H=L.nextPart,a.nextMediaSequence=K+J,a.nextPart=H,M=t.get(F),r.segmentIndex.evict(M));if(I=r.segmentIndex.earliestReference())a.minTimestamp=I.startTime,N=C[C.length-1],goog.asserts.assert(N,"Should have segments!"),a.maxTimestamp=N.endTime;if(R=shaka.hls.Utils.getFirstTagWithName(m.tags,"EXT-X-ENDLIST"))a.hasEndList=!0;b.determineLastTargetDuration_(m);
|
|
2365
2368
|
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
2369
|
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
2370
|
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,17 +2372,17 @@ this.minSequenceNumber_-c.firstSequenceNumber,0<e&&(d.dropFirstReferences(e),d=d
|
|
|
2369
2372
|
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
2373
|
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
2374
|
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,y,C,A,z,B,D,E,F,G,
|
|
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,G=shaka.hls.Utils.filterTagsByName(f.tags,"EXT-X-DEFINE"),p=c.parseMediaVariables_(G,c.masterPlaylistUri_),n=e.VIDEO,
|
|
2374
|
-
p,f,m,b,"",n,
|
|
2375
|
+
shaka.hls.HlsParser.prototype.parseManifest_=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,y,C,A,z,B,D,E,F,G,J,L,K,H,M,I,N,R,O,V;return $jscomp.asyncExecutePromiseGeneratorProgram(function(P){switch(P.nextAddress){case 1:d=shaka.hls.Utils;e=shaka.util.ManifestParserUtils.ContentType;goog.asserts.assert(c.masterPlaylistUri_,"Master playlist URI must be set before calling parseManifest_!");f=c.manifestTextParser_.parsePlaylist(a);g=d.filterTagsByName(f.tags,"EXT-X-DEFINE");h=[];k=[];l=
|
|
2376
|
+
[];goog.asserts.assert(null==c.presentationTimeline_,"Presentation timeline created early!");c.presentationTimeline_=new shaka.media.PresentationTimeline(null,0);c.presentationTimeline_.setStatic(!0);m=function(){return[b]};n=null;p=new Map;if(f.type==shaka.hls.PlaylistType.MEDIA)return c.needsClosedCaptionsDetection_=!1,G=shaka.hls.Utils.filterTagsByName(f.tags,"EXT-X-DEFINE"),p=c.parseMediaVariables_(G,c.masterPlaylistUri_),n=e.VIDEO,J="",L=new Map,P.yield(c.convertParsedPlaylistIntoStreamInfo_(c.globalId_++,
|
|
2377
|
+
p,f,m,b,"",n,J,!0,"Media Playlist",null,L,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 P.yield(c.processContentSteering_(x),
|
|
2375
2378
|
4);case 4:if(!c.config_.hls.ignoreSupplementalCodecs){y=[];C=$jscomp.makeIterator(r);A=C.next();for(z={};!A.done;z={supplementalCodecs$jscomp$1:void 0},A=C.next())if(B=A.value,D=B.getAttributeValue("SUPPLEMENTAL-CODECS"))z.supplementalCodecs$jscomp$1=D.split(/\s*,\s*/).map(function(Q){return Q.split("/")[0]}),E=B.attributes.map(function(Q){return function(S){var T=S.name;S=S.value;"CODECS"==T&&(S=Q.supplementalCodecs$jscomp$1.join(","));return new shaka.hls.Attribute(T,S)}}(z)),y.push(new shaka.hls.Tag(B.id,
|
|
2376
|
-
B.name,E,null));r.push.apply(r,$jscomp.arrayFromIterable(y))}c.parseCodecs_(r);c.parseClosedCaptions_(q);F=c.parseIFrames_(u);return P.yield(c.createVariantsForTags_(r,v,q,m,c.globalVariables_,F),5);case 5:return h=P.yieldResult,k=c.parseTexts_(q),P.yield(c.parseImages_(t,u),6);case 6:l=P.yieldResult;P.jumpTo(3);break;case 7:
|
|
2377
|
-
(Q.initSegmentReference.mediaQuality=
|
|
2378
|
-
(c.isLive_()&&(c.changePresentationTimelineToLive_(f),
|
|
2379
|
+
B.name,E,null));r.push.apply(r,$jscomp.arrayFromIterable(y))}c.parseCodecs_(r);c.parseClosedCaptions_(q);F=c.parseIFrames_(u);return P.yield(c.createVariantsForTags_(r,v,q,m,c.globalVariables_,F),5);case 5:return h=P.yieldResult,k=c.parseTexts_(q),P.yield(c.parseImages_(t,u),6);case 6:l=P.yieldResult;P.jumpTo(3);break;case 7:K=P.yieldResult,c.uriToStreamInfosMap_.set(b,K),K.stream&&(H=shaka.media.QualityObserver.createQualityInfo(K.stream),K.stream.segmentIndex.forEachTopLevelReference(function(Q){Q.initSegmentReference&&
|
|
2380
|
+
(Q.initSegmentReference.mediaQuality=H)})),n=K.stream.type,h.push({id:0,language:c.getLanguage_(J),disabledUntilTime:0,primary:!0,audio:"audio"==n?K.stream:null,video:"video"==n?K.stream:null,bandwidth:K.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&&
|
|
2381
|
+
(c.isLive_()&&(c.changePresentationTimelineToLive_(f),M=c.getUpdatePlaylistDelay_(),c.updatePlaylistTimer_.tickAfter(M)),I=Array.from(c.uriToStreamInfosMap_.values()),c.finalizeStreams_(I),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,
|
|
2379
2382
|
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){P.jumpTo(8);break}N=[];R=$jscomp.makeIterator(c.manifest_.variants);for(O=R.next();!O.done;O=R.next())V=O.value,V.audio&&""===V.audio.codecs&&N.push(V.audio.createSegmentIndex()),V.video&&""===V.video.codecs&&N.push(V.video.createSegmentIndex());return P.yield(Promise.all(N),8);case 8:c.playerInterface_.makeTextStreamsForClosedCaptions(c.manifest_),
|
|
2380
2383
|
P.jumpToEnd()}})};
|
|
2381
2384
|
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,y,C,A,z,B,D,E,F;return $jscomp.asyncExecutePromiseGeneratorProgram(function(G){switch(G.nextAddress){case 1:c=shaka.hls.HlsParser;d=shaka.media.SegmentUtils.getBasicInfoFromMimeType(b.config_.hls.mediaPlaylistFullMimeType);if(!a.length)return G.return(d);e=b.getAvailableSegment_(a);f=e.segment;g=e.segmentIndex;h=f.getUris();k=h[0];l=new goog.Uri(k);m=l.getPath().split(".").pop();if(n=
|
|
2382
|
-
c.RAW_FORMATS_TO_MIME_TYPES_
|
|
2385
|
+
c.RAW_FORMATS_TO_MIME_TYPES_.get(m))return G.return(shaka.media.SegmentUtils.getBasicInfoFromMimeType(n));p=shaka.net.NetworkingEngine.RequestType.SEGMENT;r=q=null;t=f.initSegmentReference;if(!t){G.jumpTo(2);break}u=shaka.util.Networking.createSegmentRequest(t.getUris(),t.getStartByte(),t.getEndByte(),b.config_.retryParameters);v=shaka.net.NetworkingEngine.AdvancedRequestType.INIT_SEGMENT;return G.yield(b.makeNetworkRequest_(u,p,{type:v}).promise,3);case 3:w=G.yieldResult;q=w.data;if(!t.aesKey){G.jumpTo(4);
|
|
2383
2386
|
break}return G.yield(shaka.media.SegmentUtils.aesDecrypt(q,t.aesKey,0),5);case 5:q=G.yieldResult;case 4:(r=w.headers["content-type"])&&(r=r.split(";")[0].toLowerCase());case 2:return x=shaka.util.Networking.createSegmentRequest(f.getUris(),f.getStartByte(),f.getEndByte(),b.config_.retryParameters),y=shaka.net.NetworkingEngine.AdvancedRequestType.MEDIA_SEGMENT,G.yield(b.makeNetworkRequest_(x,p,{type:y}).promise,6);case 6:C=G.yieldResult;A=C.data;if(!f.aesKey){G.jumpTo(7);break}return G.yield(shaka.media.SegmentUtils.aesDecrypt(A,
|
|
2384
2387
|
f.aesKey,g),8);case 8:A=G.yieldResult;case 7:(z=C.headers["content-type"])&&(z=z.split(";")[0].toLowerCase());B="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 G.return(E)}else if(B.includes(m)||D.includes(z)||r&&D.includes(r))if(F=shaka.media.SegmentUtils.getBasicInfoFromMp4(q,
|
|
2385
2388
|
A,b.config_.disableText))return G.return(F);return z?G.return(shaka.media.SegmentUtils.getBasicInfoFromMimeType(z)):r?G.return(shaka.media.SegmentUtils.getBasicInfoFromMimeType(r)):G.return(d)}})};
|
|
@@ -2399,11 +2402,11 @@ shaka.hls.HlsParser.prototype.parseImages_=function(a,b){var c=this,d,e;return $
|
|
|
2399
2402
|
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
2403
|
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
2404
|
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,y,C,A,z,B,D,E,F,G,
|
|
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));U.jumpTo(4);break}if("identity"!=q){r=(y=shaka.hls.HlsParser.KEYFORMATS_TO_DRM_PARSERS_
|
|
2404
|
-
$jscomp.makeIterator(r.keyIds),A=C.next();!A.done;A=C.next())z=A.value,k.add(z);h.push(r)}else shaka.log.warning("Unsupported HLS KEYFORMAT",q);case 4:m=l.next();U.jumpTo(3);break;case 2:B={};D=$jscomp.makeIterator(a);for(E=D.next();!E.done;E=D.next())F=E.value,G=F.getTagKey(!g.contentSteeringManager_),B[G]?B[G].push(F):B[G]=[F];
|
|
2405
|
-
R=$jscomp.makeIterator(N?N.split("x"):[null,null]),O=R.next().value,V=R.next().value,P=
|
|
2406
|
-
k,f)));return U.return(
|
|
2405
|
+
shaka.hls.HlsParser.prototype.createVariantsForTags_=function(a,b,c,d,e,f){var g=this,h,k,l,m,n,p,q,r,t,u,v,w,x,y,C,A,z,B,D,E,F,G,J,L,K,H,M,I,N,R,O,V,P,Q,S,T;return $jscomp.asyncExecutePromiseGeneratorProgram(function(U){switch(U.nextAddress){case 1:h=[];k=new Set;if(!(0<b.length)){U.jumpTo(2);break}l=$jscomp.makeIterator(b);m=l.next();case 3:if(m.done){U.jumpTo(2);break}n=m.value;p=n.getRequiredAttrValue("METHOD");q=n.getAttributeValue("KEYFORMAT")||"identity";r=null;if("NONE"==p){U.jumpTo(4);break}if(g.isAesMethod_(p)){t=
|
|
2406
|
+
shaka.hls.Utils.constructSegmentUris(d(),n.getRequiredAttrValue("URI"),e);u=t.sort().join("");g.aesKeyMap_.has(u)||(v=shaka.net.NetworkingEngine.RequestType.KEY,w=shaka.net.NetworkingEngine.makeRequest(t,g.config_.retryParameters),x=g.makeNetworkRequest_(w,v).promise,g.aesKeyMap_.set(u,x));U.jumpTo(4);break}if("identity"!=q){r=(y=shaka.hls.HlsParser.KEYFORMATS_TO_DRM_PARSERS_.get(q))?y(n,""):null;U.jumpTo(6);break}return U.yield(g.identityDrmParser_(n,"",d,null,e),9);case 9:r=U.yieldResult;case 6:if(r){if(r.keyIds)for(C=
|
|
2407
|
+
$jscomp.makeIterator(r.keyIds),A=C.next();!A.done;A=C.next())z=A.value,k.add(z);h.push(r)}else shaka.log.warning("Unsupported HLS KEYFORMAT",q);case 4:m=l.next();U.jumpTo(3);break;case 2:B={};D=$jscomp.makeIterator(a);for(E=D.next();!E.done;E=D.next())F=E.value,G=F.getTagKey(!g.contentSteeringManager_),B[G]?B[G].push(F):B[G]=[F];J=[];for(L in B)K=B[L],H=K[0],M=H.getAttributeValue("FRAME-RATE"),I=Number(H.getAttributeValue("AVERAGE-BANDWIDTH"))||Number(H.getRequiredAttrValue("BANDWIDTH")),N=H.getAttributeValue("RESOLUTION"),
|
|
2408
|
+
R=$jscomp.makeIterator(N?N.split("x"):[null,null]),O=R.next().value,V=R.next().value,P=H.getAttributeValue("VIDEO-RANGE"),(Q=H.getAttributeValue("REQ-VIDEO-LAYOUT"))&&Q.includes(",")&&(S=Q.split(",").filter(function(W){return"CH-STEREO"==W||"CH-MONO"==W}),Q=S[0]),Q=Q||"CH-MONO",T=g.createStreamInfosForVariantTags_(K,c,N,M),goog.asserts.assert(T.audio.length||T.video.length,"We should have created a stream!"),J.push.apply(J,$jscomp.arrayFromIterable(g.createVariants_(T.audio,T.video,I,O,V,M,P,Q,h,
|
|
2409
|
+
k,f)));return U.return(J.filter(function(W){return null!=W}))}})};
|
|
2407
2410
|
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
2411
|
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
2412
|
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."),
|
|
@@ -2428,34 +2431,34 @@ shaka.hls.HlsParser.prototype.createStreamInfoFromIframeTag_=function(a){goog.as
|
|
|
2428
2431
|
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
2432
|
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
2433
|
a=this.getClosedCaptions_(a[0],c);b=shaka.util.ManifestParserUtils.guessCodecs(c,b);c=this.createStreamInfo_(d,e,b,c,null,!1,null,null,a,null,!1,null,!1);this.uriToStreamInfosMap_.set(f,c);return c};
|
|
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 W.return();
|
|
2440
|
-
return
|
|
2434
|
+
shaka.hls.HlsParser.prototype.createStreamInfo_=function(a,b,c,d,e,f,g,h,k,l,m,n,p){var q=this,r=this.makeStreamObject_(a,c,d,e,f,g,h,k,l,m,n,p);b.includes(shaka.hls.HlsParser.FAKE_MUXED_URL_)&&(r.isAudioMuxedInVideo=!0,r.mimeType="video/mp2t",this.setFullTypeForStream_(r));var t={stream:r,type:d,redirectUris:[],getUris:function(){},minTimestamp:0,maxTimestamp:0,mediaSequenceToStartTime:new Map,canSkipSegments:!1,canBlockReload:!1,hasEndList:!1,firstSequenceNumber:-1,nextMediaSequence:-1,nextPart:-1,
|
|
2435
|
+
loadedOnce:!1},u=function(){return q.contentSteeringManager_&&1<b.length?q.contentSteeringManager_.getLocations(a):t.redirectUris.concat(shaka.hls.Utils.constructUris([q.masterPlaylistUri_],b,q.globalVariables_))};t.getUris=u;var v=function(y){var C,A,z,B,D,E,F,G,J,L,K,H,M,I,N,R,O,V,P,Q,S,T,U;return $jscomp.asyncExecutePromiseGeneratorProgram(function(W){switch(W.nextAddress){case 1:return C=shaka.util.ManifestParserUtils.ContentType,W.setCatchFinallyBlocks(2),W.yield(y.promise,4);case 4:A=W.yieldResult;
|
|
2436
|
+
if(y.aborted)return W.return();z=A.uri;z!=A.originalUri&&(B=t.getUris(),B.includes(z)||t.redirectUris.push(z));D=q.manifestTextParser_.parsePlaylist(A.data);if(D.type!=shaka.hls.PlaylistType.MEDIA)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_INVALID_PLAYLIST_HIERARCHY);E=shaka.hls.Utils.filterTagsByName(D.tags,"EXT-X-DEFINE");F=q.parseMediaVariables_(E,z);G=!1;(!q.codecInfoInManifest_&&q.config_.hls.disableCodecGuessing||
|
|
2437
|
+
q.needsClosedCaptionsDetection_&&d==C.VIDEO&&!q.config_.hls.disableClosedCaptionsDetection)&&0<D.segments.length&&(q.needsClosedCaptionsDetection_=!1,G=!0);J=!q.codecInfoInManifest_&&q.config_.hls.disableCodecGuessing;L=q.isLive_();return W.yield(q.convertParsedPlaylistIntoStreamInfo_(a,F,D,u,z,c,d,e,f,g,h,k,l,m,n,p,void 0,G,J),5);case 5:K=W.yieldResult;if(y.aborted)return W.return();H=K.stream;q.determineStartTime_(D);q.isLive_()&&!L&&q.changePresentationTimelineToLive_(D);t.minTimestamp=K.minTimestamp;
|
|
2438
|
+
t.maxTimestamp=K.maxTimestamp;t.canSkipSegments=K.canSkipSegments;t.canBlockReload=K.canBlockReload;t.hasEndList=K.hasEndList;t.mediaSequenceToStartTime=K.mediaSequenceToStartTime;t.nextMediaSequence=K.nextMediaSequence;t.nextPart=K.nextPart;t.loadedOnce=!0;r.segmentIndex=H.segmentIndex;r.encrypted=H.encrypted;r.drmInfos=H.drmInfos;r.keyIds=H.keyIds;r.mimeType=H.mimeType;r.bandwidth=r.bandwidth||H.bandwidth;r.codecs=r.codecs||H.codecs;r.closedCaptions=r.closedCaptions||H.closedCaptions;r.width=r.width||
|
|
2439
|
+
H.width;r.height=r.height||H.height;r.hdr=r.hdr||H.hdr;r.colorGamut=r.colorGamut||H.colorGamut;r.frameRate=r.frameRate||H.frameRate;"und"==r.language&&"und"!=H.language&&(r.language=H.language);r.language=r.language||H.language;r.channelsCount=r.channelsCount||H.channelsCount;r.audioSamplingRate=r.audioSamplingRate||H.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;
|
|
2440
|
+
q.manifest_&&M&&q.playerInterface_.makeTextStreamsForClosedCaptions(q.manifest_);if(d==C.VIDEO||d==C.AUDIO)for(I=$jscomp.makeIterator(q.uriToStreamInfosMap_.values()),N=I.next();!N.done;N=I.next())R=N.value,R.loadedOnce||R.type!=d||(R.stream.mimeType=H.mimeType,q.setFullTypeForStream_(R.stream));d==C.TEXT&&(O=H.segmentIndex.earliestReference())&&O.initSegmentReference&&(r.mimeType="application/mp4",q.setFullTypeForStream_(r));V=shaka.media.QualityObserver.createQualityInfo(r);r.segmentIndex.forEachTopLevelReference(function(Y){Y.initSegmentReference&&
|
|
2441
|
+
(Y.initSegmentReference.mediaQuality=V)});q.hasEnoughInfoToFinalizeStreams_()&&(q.streamsFinalized_?q.finalizeStreams_([t]):(q.streamsFinalized_=!0,P=Array.from(q.uriToStreamInfosMap_.values()),Q=P.filter(function(Y){return Y.stream.segmentIndex}),q.finalizeStreams_(Q),q.determineDuration_(),S=q.getUpdatePlaylistDelay_(),0<S&&q.updatePlaylistTimer_.tickAfter(S)));q.processDateRangeTags_(D.tags,r.type,F,u);q.manifest_&&(q.manifest_.startTime=q.startTime_);W.leaveTryBlock(0);break;case 2:T=W.enterCatchBlock();
|
|
2442
|
+
r.closeSegmentIndex();if(T.code===shaka.util.Error.Code.OPERATION_ABORTED)return W.return();U=q.playerInterface_.disableStream(r);if(!U)throw T;W.jumpToEnd()}})},w=null,x;r.createSegmentIndex=function(){if(w)return w;if(r.isAudioMuxedInVideo){var y=new shaka.media.SegmentIndex([]);r.segmentIndex=y;return Promise.resolve()}x=q.requestManifest_(t.getUris(),!0);return w=new Promise(function(C){C(v(x))})};r.closeSegmentIndex=function(){w&&!r.segmentIndex&&x.abort();r.segmentIndex&&(r.segmentIndex.release(),
|
|
2443
|
+
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
2444
|
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
2445
|
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
2446
|
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
2447
|
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
2448
|
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,y,C,A,z,B,D,E,F,G,
|
|
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;z=x.createSegments_(c,A,b,d,g);B=z.segments;D=z.bandwidth;
|
|
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&&!R;O.drmInfos=
|
|
2450
|
-
"EXT-X-SERVER-CONTROL"))?null!=T.getAttribute("CAN-SKIP-UNTIL"):!1;
|
|
2449
|
+
shaka.hls.HlsParser.prototype.convertParsedPlaylistIntoStreamInfo_=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,u,v,w){v=void 0===v?!0:v;w=void 0===w?!0:w;var x=this,y,C,A,z,B,D,E,F,G,J,L,K,H,M,I,N,R,O,V,P,Q,S,T,U,W,Y,X,ca,ba;return $jscomp.asyncExecutePromiseGeneratorProgram(function(Z){switch(Z.nextAddress){case 1:y=c.segments||[];C=y.every(function(aa){return shaka.hls.Utils.getFirstTagWithName(aa.tags,"EXT-X-GAP")?!0:!1});if(!y.length||C)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
|
|
2450
|
+
shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_EMPTY_MEDIA_PLAYLIST);x.determinePresentationType_(c);x.isLive_()&&x.determineLastTargetDuration_(c);A=x.isLive_()?x.mediaSequenceToStartTimeByType_.get(g):new Map;z=x.createSegments_(c,A,b,d,g);B=z.segments;D=z.bandwidth;L=J=G=F=E=null;if(!(0<B.length&&v)){Z.jumpTo(2);break}return Z.yield(x.getBasicInfoFromSegments_(B),3);case 3:K=Z.yieldResult,g=K.type,h=K.language,m=K.channelCount,r=K.sampleRate,x.config_.disableText||(n=K.closedCaptions),
|
|
2451
|
+
F=K.height,E=K.width,G=K.videoRange,J=K.colorGamut,L=K.frameRate,w&&(u=K.mimeType,f=K.codecs);case 2:if(u){Z.jumpTo(4);break}return Z.yield(x.guessMimeType_(g,f,B),5);case 5:u=Z.yieldResult,g!=shaka.util.ManifestParserUtils.ContentType.TEXT||f||"application/mp4"!=u||!B[0]||B[0].initSegmentReference||(u="text/vtt");case 4:return Z.yield(x.parseDrmInfo_(c,u,d,b),6);case 6:H=Z.yieldResult;M=H.drmInfos;I=H.keyIds;N=H.encrypted;R=H.aesEncrypted;if(N&&!M.length&&!R)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
|
|
2452
|
+
shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_KEYFORMATS_NOT_SUPPORTED);O=x.makeStreamObject_(a,f,g,h,k,l,m,n,p,q,r,t);O.encrypted=N&&!R;O.drmInfos=M;O.keyIds=I;O.mimeType=u;D&&(O.bandwidth=D);x.setFullTypeForStream_(O);g==shaka.util.ManifestParserUtils.ContentType.VIDEO&&(E||F||G||J)&&x.addVideoAttributes_(O,E,F,L,G,null,J);x.isLive_()&&x.determineLastTargetDuration_(c);V=B[0].startTime;P=B[B.length-1];Q=P.endTime;S=new shaka.media.SegmentIndex(B);O.segmentIndex=S;U=(T=shaka.hls.Utils.getFirstTagWithName(c.tags,
|
|
2453
|
+
"EXT-X-SERVER-CONTROL"))?null!=T.getAttribute("CAN-SKIP-UNTIL"):!1;W=T?null!=T.getAttribute("CAN-BLOCK-RELOAD"):!1;Y=shaka.hls.Utils.getFirstTagWithNameAsNumber(c.tags,"EXT-X-MEDIA-SEQUENCE",0);X=x.getNextMediaSequenceAndPart_(Y,B);ca=X.nextMediaSequence;ba=X.nextPart;return Z.return({stream:O,type:g,redirectUris:[],getUris:d,minTimestamp:V,maxTimestamp:Q,canSkipSegments:U,canBlockReload:W,hasEndList:!1,firstSequenceNumber:-1,nextMediaSequence:ca,nextPart:ba,mediaSequenceToStartTime:A,loadedOnce:!1})}})};
|
|
2451
2454
|
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
2455
|
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
2456
|
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
2457
|
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
2458
|
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,y,C,A,z,B,D,E,F,G,
|
|
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:G=
|
|
2459
|
+
shaka.hls.HlsParser.prototype.parseDrmInfo_=function(a,b,c,d){var e=this,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,y,C,A,z,B,D,E,F,G,J,L,K,H;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=
|
|
2460
|
+
p.value,f.set(q,m);t=r=!1;u=[];v=new Set;w=$jscomp.makeIterator(f);x=w.next();case 2:if(x.done){M.jumpTo(4);break}y=x.value;C=$jscomp.makeIterator(y);A=C.next().value;z=C.next().value;B=A;D=z;E=B.getRequiredAttrValue("METHOD");if("NONE"==E){M.jumpTo(3);break}r=!0;F=B.getAttributeValue("KEYFORMAT")||"identity";G=null;if(e.isAesMethod_(E)){t=!0;M.jumpTo(3);break}if("identity"!=F){G=(J=shaka.hls.HlsParser.KEYFORMATS_TO_DRM_PARSERS_.get(F))?J(B,b):null;M.jumpTo(6);break}return M.yield(e.identityDrmParser_(B,
|
|
2461
|
+
b,c,D,d),8);case 8:G=M.yieldResult;case 6:if(G){if(G.keyIds)for(L=$jscomp.makeIterator(G.keyIds),K=L.next();!K.done;K=L.next())H=K.value,v.add(H);u.push(G)}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
2462
|
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
2463
|
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
2464
|
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,13 +2473,13 @@ b+=Math.ceil(Number(e[0]))):b+=this.maxTargetDuration_}}this.startTime_&&0>this.
|
|
|
2470
2473
|
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
2474
|
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
2475
|
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(
|
|
2476
|
+
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
2477
|
"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,y=!1,C=!1;if(this.lowLatencyMode_&&c.partialSegments.length){p=a&&window.ReadableStream&&this.config_.hls.allowLowLatencyByteRangeOptimization;for(var A=t,z={},B=0;B<c.partialSegments.length;z={uris$jscomp$25:void 0,pUri:void 0},B++){var D=c.partialSegments[B],E=0==B?b:w[w.length-1],F=0==B?d:E.endTime,G=Number(D.getAttributeValue("DURATION"))||this.partialTargetDuration_;if(G){var
|
|
2476
|
-
(
|
|
2477
|
-
function(
|
|
2478
|
+
"EXTINF");if(!this.lowLatencyMode_)return null}var w=[];u=!1;var x=null,y=!1,C=!1;if(this.lowLatencyMode_&&c.partialSegments.length){p=a&&window.ReadableStream&&this.config_.hls.allowLowLatencyByteRangeOptimization;for(var A=t,z={},B=0;B<c.partialSegments.length;z={uris$jscomp$25:void 0,pUri:void 0},B++){var D=c.partialSegments[B],E=0==B?b:w[w.length-1],F=0==B?d:E.endTime,G=Number(D.getAttributeValue("DURATION"))||this.partialTargetDuration_;if(G){var J=F+G,L=0,K=null;"EXT-X-PRELOAD-HINT"==D.name?
|
|
2479
|
+
(L=(L=D.getAttributeValue("BYTERANGE-START"))?Number(L):0,(E=D.getAttributeValue("BYTERANGE-LENGTH"))?K=L+Number(E)-1:L&&(K=Number.MAX_SAFE_INTEGER)):(L=D.getAttributeValue("BYTERANGE"),K=$jscomp.makeIterator(this.parseByteRange_(E,L)),L=K.next().value,K=K.next().value);z.pUri=D.getAttributeValue("URI");if(z.pUri){E=shaka.media.SegmentReference.Status.AVAILABLE;"YES"==D.getAttributeValue("GAP")&&(this.manifest_.gapCount++,E=shaka.media.SegmentReference.Status.MISSING,y=!0);z.uris$jscomp$25=null;var H=
|
|
2480
|
+
function(I){return function(){null==I.uris$jscomp$25&&(goog.asserts.assert(I.pUri,"Partial uri should be defined!"),I.uris$jscomp$25=shaka.hls.Utils.constructSegmentUris(h(),I.pUri,e));return I.uris$jscomp$25}}(z);p&&0<=L&&null!=K&&(x=H,u=!0);F=new shaka.media.SegmentReference(F,J,H,L,K,a,0,0,Infinity,[],"",null,A,E,k);"EXT-X-PRELOAD-HINT"==D.name&&(F.markAsPreload(),C=!0);"YES"!=D.getAttributeValue("INDEPENDENT")&&0<B&&F.markAsNonIndependent();if(z=f(z.pUri))F.mimeType=z,l.MIME_TYPES_WITHOUT_INIT_SEGMENT_.has(z)&&
|
|
2478
2481
|
(F.initSegmentReference=null);w.push(F);A&&(A+=G)}}}}if(n){n=n.value.split(",");n=Number(n[0]);if(0==n)return null;p=d+n}else if(w.length)p=w[w.length-1].endTime;else return null;u&&(y||0!=w[0].startByte?(u=!1,x=null):w=[]);(y=shaka.hls.Utils.getFirstTagWithName(m,"EXT-X-BYTERANGE"))?(r=$jscomp.makeIterator(this.parseByteRange_(b,y.value)),q=r.next().value,r=r.next().value):w.length&&(q=w[0].startByte,r=w[w.length-1].endByte);b="";y=null;g==shaka.util.ManifestParserUtils.ContentType.IMAGE&&(b="1x1",
|
|
2479
|
-
m=shaka.hls.Utils.getFirstTagWithName(m,"EXT-X-TILES"))&&(b=m.getRequiredAttrValue("LAYOUT"),(m=m.getAttributeValue("DURATION"))&&(y=Number(m)));var
|
|
2482
|
+
m=shaka.hls.Utils.getFirstTagWithName(m,"EXT-X-TILES"))&&(b=m.getRequiredAttrValue("LAYOUT"),(m=m.getAttributeValue("DURATION"))&&(y=Number(m)));var M=null;a=new shaka.media.SegmentReference(d,p,function(){if(x)return x();null==M&&(M=shaka.hls.Utils.constructSegmentUris(h(),c.verbatimSegmentUri,e));return M||[]},q,r,a,0,0,Infinity,w,b,y,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_=
|
|
2480
2483
|
!0,a.markAsByterangeOptimization(),C&&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]};
|
|
2481
2484
|
shaka.hls.HlsParser.prototype.processDateRangeTags_=function(a,b,c,d){var e=shaka.util.ManifestParserUtils.ContentType;if(b==e.VIDEO||b==e.AUDIO){e=shaka.hls.Utils;var f=this.presentationTimeline_.getInitialProgramDateTime();if(f&&!this.ignoreManifestProgramDateTimeFor_(b))for(a=shaka.hls.Utils.filterTagsByName(a,"EXT-X-DATERANGE"),a=a.filter(function(F){return null!=F.getAttribute("START-DATE")}).sort(function(F,G){F=F.getRequiredAttrValue("START-DATE");G=G.getRequiredAttrValue("START-DATE");return F<
|
|
2482
2485
|
G?-1:F>G?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")||
|
|
@@ -2490,10 +2493,10 @@ C){return y+C.duration},0),a=Math.round(l.reduce(function(y,C){return y+C.bitrat
|
|
|
2490
2493
|
C.endTime-C.startTime;y.forwardI+=1}return null}}(b),b.backwardAdd=0,b.backwardI=c,f=function(y){return function(){var C=q[y.backwardI];if(C){C!=y.reference$jscomp$46&&(y.backwardAdd+=C.endTime-C.startTime);if(null!=C.syncTime)return C.syncTime+y.backwardAdd;--y.backwardI}return null}}(b);null==b.reference$jscomp$46.syncTime;)b.reference$jscomp$46.syncTime=f(),null==b.reference$jscomp$46.syncTime&&(b.reference$jscomp$46.syncTime=d());if(l)for(b=$jscomp.makeIterator(q),c=b.next();!c.done;c=b.next())for(d=
|
|
2491
2494
|
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
2495
|
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))}})};
|
|
2496
|
+
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}};
|
|
2497
|
+
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);
|
|
2498
|
+
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&&
|
|
2499
|
+
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
2500
|
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
2501
|
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
2502
|
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 +2504,7 @@ d),e=0<a.config_.hls.updatePeriod?a.config_.hls.updatePeriod:a.getUpdatePlaylist
|
|
|
2501
2504
|
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
2505
|
shaka.hls.HlsParser.prototype.setPresentationType_=function(a){this.presentationType_=a;this.presentationTimeline_&&this.presentationTimeline_.setStatic(!this.isLive_());this.isLive_()||this.updatePlaylistTimer_.stop()};
|
|
2503
2506
|
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",
|
|
2507
|
+
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
2508
|
"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
2509
|
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
2510
|
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 +2512,16 @@ shaka.hls.HlsParser.playreadyDrmParser_=function(a){var b=a.getRequiredAttrValue
|
|
|
2509
2512
|
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
2513
|
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
2514
|
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,y,C,A;return $jscomp.asyncExecutePromiseGeneratorProgram(function(z){switch(z.nextAddress){case 1:if("video/mp2t"==b)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_MSE_ENCRYPTED_MP2T_NOT_SUPPORTED);if(shaka.util.Platform.isMediaKeysPolyfilled())throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,
|
|
2515
|
+
shaka.hls.HlsParser.prototype.identityDrmParser_=function(a,b,c,d,e){var f=this,g,h,k,l,m,n,p,q,r,t,u,v,w,x,y,C,A;return $jscomp.asyncExecutePromiseGeneratorProgram(function(z){switch(z.nextAddress){case 1:if("video/mp2t"==b)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_MSE_ENCRYPTED_MP2T_NOT_SUPPORTED);if(shaka.util.Platform.isMediaKeysPolyfilled("apple"))throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,
|
|
2513
2516
|
shaka.util.Error.Code.HLS_MSE_ENCRYPTED_LEGACY_APPLE_MEDIA_KEYS_NOT_SUPPORTED);g=a.getRequiredAttrValue("METHOD");h=["SAMPLE-AES","SAMPLE-AES-CTR"];if(!h.includes(g))return shaka.log.error("Identity (ClearKey) in HLS is only supported with [",h.join(", "),"], not",g),z.return(null);k=shaka.hls.Utils.constructSegmentUris(c(),a.getRequiredAttrValue("URI"),e);if(k[0].startsWith("data:text/plain;base64,")){l=shaka.util.Uint8ArrayUtils.toHex(shaka.util.Uint8ArrayUtils.fromBase64(k[0].split("data:text/plain;base64,").pop()));
|
|
2514
2517
|
z.jumpTo(2);break}m=k.sort().join("");f.identityKeyMap_.has(m)||(n=shaka.net.NetworkingEngine.RequestType.KEY,p=shaka.net.NetworkingEngine.makeRequest(k,f.config_.retryParameters),q=f.makeNetworkRequest_(p,n).promise,f.identityKeyMap_.set(m,q));return z.yield(f.identityKeyMap_.get(m),3);case 3:r=z.yieldResult,l=shaka.util.Uint8ArrayUtils.toHex(r.data);case 2:t="00000000000000000000000000000000";if(!d){z.jumpTo(4);break}if(f.identityKidMap_.has(d)){u=f.identityKidMap_.get(d);z.jumpTo(5);break}v=shaka.util.Networking.createSegmentRequest(d.getUris(),
|
|
2515
2518
|
d.getStartByte(),d.getEndByte(),f.config_.retryParameters);w=shaka.net.NetworkingEngine.RequestType.SEGMENT;x=shaka.net.NetworkingEngine.AdvancedRequestType.INIT_SEGMENT;return z.yield(f.makeNetworkRequest_(v,w,{type:x}).promise,6);case 6:y=z.yieldResult,u=shaka.media.SegmentUtils.getDefaultKID(y.data),f.identityKidMap_.set(d,u);case 5:u&&(t=u);case 4:return C=new Map,C.set(t,l),A="cenc","SAMPLE-AES"==g&&(A="cbcs"),z.return(shaka.util.ManifestParserUtils.createDrmInfoFromClearKeys(C,A))}})};
|
|
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.
|
|
2519
|
+
goog.exportSymbol("shaka.hls.HlsParser",shaka.hls.HlsParser);shaka.hls.HlsParser.RAW_FORMATS_TO_MIME_TYPES_=(new Map).set("aac","audio/aac").set("ac3","audio/ac3").set("ec3","audio/ec3").set("mp3","audio/mpeg");shaka.hls.HlsParser.AUDIO_EXTENSIONS_TO_MIME_TYPES_=(new Map).set("mp4","audio/mp4").set("mp4a","audio/mp4").set("m4s","audio/mp4").set("m4i","audio/mp4").set("m4a","audio/mp4").set("m4f","audio/mp4").set("cmfa","audio/mp4").set("ts","video/mp2t").set("tsa","video/mp2t");
|
|
2520
|
+
shaka.hls.HlsParser.VIDEO_EXTENSIONS_TO_MIME_TYPES_=(new Map).set("mp4","video/mp4").set("mp4v","video/mp4").set("m4s","video/mp4").set("m4i","video/mp4").set("m4v","video/mp4").set("m4f","video/mp4").set("cmfv","video/mp4").set("ts","video/mp2t").set("tsv","video/mp2t");
|
|
2521
|
+
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");
|
|
2522
|
+
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)));
|
|
2523
|
+
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"};
|
|
2524
|
+
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
2525
|
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
2526
|
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
2527
|
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 +2534,8 @@ shaka.util.Mp4Generator.prototype.mdhd_=function(a){var b=shaka.util.Mp4Generato
|
|
|
2530
2534
|
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
2535
|
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
2536
|
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=
|
|
2537
|
+
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):
|
|
2538
|
+
"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
2539
|
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
2540
|
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
2541
|
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 +2562,8 @@ shaka.util.Mp4Generator.prototype.trun_=function(a,b){var c=shaka.util.ManifestP
|
|
|
2557
2562
|
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
2563
|
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
2564
|
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_=
|
|
2565
|
+
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;
|
|
2566
|
+
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
2567
|
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
2568
|
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
2569
|
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,7 +2587,7 @@ l.next();!n.done;n=l.next())(n=this.createStream_(k,n.value,m,g,b))&&(n.type!=e.
|
|
|
2582
2587
|
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
2588
|
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
2589
|
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_
|
|
2590
|
+
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
2591
|
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
2592
|
"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
2593
|
videoNalus:x,audioConfig:new Uint8Array([]),videoConfig:new Uint8Array([]),hSpacing:0,vSpacing:0,data:null,stream:w},x=(new shaka.util.Mp4Generator([x])).initSegment(),f.initSegmentDataByStreamId_.set(w.id,x);var y=shaka.media.QualityObserver.createQualityInfo(w);x=new shaka.media.InitSegmentReference(function(){return[]},0,null,y,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&&
|
|
@@ -2595,14 +2600,14 @@ shaka.mss.MssParser.prototype.createTimeline_=function(a,b,c){goog.asserts.asser
|
|
|
2595
2600
|
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
2601
|
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
2602
|
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,
|
|
2603
|
+
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(){};
|
|
2604
|
+
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
2605
|
shaka.util.Error.Code.BAD_HTTP_STATUS,d,c,f,a,g,e||d);};shaka.net.HttpFetchPlugin=function(){};
|
|
2601
2606
|
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
2607
|
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
2608
|
shaka.net.HttpFetchPlugin.request_=function(a,b,c,d,e,f,g,h,k){var l,m,n,p,q,r,t,u,v,w,x,y,C;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,
|
|
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(z){var B=function(){var D,E,F,G,
|
|
2605
|
-
D.value.byteLength;if(!h){
|
|
2609
|
+
"non-HEAD responses should have a body");u=n.clone().body.getReader();w=(v=n.headers.get("Content-Length"))?parseInt(v,10):0;x=function(z){var B=function(){var D,E,F,G,J;return $jscomp.asyncExecutePromiseGeneratorProgram(function(L){switch(L.nextAddress){case 1:return L.setCatchFinallyBlocks(2),L.yield(u.read(),4);case 4:D=L.yieldResult;L.leaveTryBlock(3);break;case 2:return E=L.enterCatchBlock(),shaka.log.v1("error reading from stream",E.message),L.return();case 3:if(D.done){L.jumpTo(5);break}q+=
|
|
2610
|
+
D.value.byteLength;if(!h){L.jumpTo(5);break}return L.yield(h(D.value),5);case 5:F=Date.now();G=q-r;if(100<F-t&&G>=k||D.done)J=D.done?0:w-q,f(F-t,G,J),r=q,t=F;D.done?(goog.asserts.assert(!D.value,'readObj should be unset when "done" is true.'),z.close()):(z.enqueue(D.value),B());L.jumpToEnd()}})};B()};new m({start:x});return A.yield(n.arrayBuffer(),6);case 6:p=A.yieldResult;case 5:A.leaveTryBlock(3);break;case 2:y=A.enterCatchBlock();if(e.canceled)throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,
|
|
2606
2611
|
shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.OPERATION_ABORTED,a,c);if(e.timedOut)throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.TIMEOUT,a,c);throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.HTTP_ERROR,a,y,c);case 3:return C=shaka.net.HttpFetchPlugin.headersToGenericObject_(n.headers),A.return(shaka.net.HttpPluginUtils.makeResponse(C,p,n.status,
|
|
2607
2612
|
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
2613
|
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;
|
|
@@ -2709,36 +2714,36 @@ break;case 2:return e=g.enterCatchBlock(),shaka.log.warning("Error initializing
|
|
|
2709
2714
|
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
2715
|
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
2716
|
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_=
|
|
2717
|
+
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
2718
|
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_
|
|
2719
|
+
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
2720
|
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_
|
|
2721
|
+
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
2722
|
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
2723
|
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
2724
|
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
2725
|
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
2726
|
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
2727
|
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,y,C,A,z,B,D,E,F,G,
|
|
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),B=r.variants.some(function(
|
|
2726
|
-
A.language,A.kind,A.mime,A.codecs),14);case 14:z=
|
|
2727
|
-
G=E.toDownload,
|
|
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,y;return $jscomp.asyncExecutePromiseGeneratorProgram(function(C){switch(C.nextAddress){case 1:m={};n=0;p=function(){if(l.destroyer_.destroyed()||d.isAborted())throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.STORAGE,shaka.util.Error.Code.OPERATION_ABORTED);};q=function(A,z){var B,D,E,F,G,
|
|
2730
|
-
|
|
2731
|
-
R.aesKey,
|
|
2728
|
+
shaka.offline.Storage.prototype.store_=function(a,b,c,d,e,f,g){var h=this,k,l,m,n,p,q,r,t,u,v,w,x,y,C,A,z,B,D,E,F,G,J,L,K;return $jscomp.asyncExecutePromiseGeneratorProgram(function(H){switch(H.nextAddress){case 1:return h.requireSupport_(),l=k=null,m=new shaka.offline.StorageMuxer,q=p=n=null,H.setCatchFinallyBlocks(2,3),H.yield(e(),5);case 5:return k=H.yieldResult,H.yield(h.parseManifest(a,k,f),6);case 6:r=H.yieldResult;h.ensureNotDestroyed_();t=!r.presentationTimeline.isLive()&&!r.presentationTimeline.isInProgress();
|
|
2729
|
+
if(!t)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.STORAGE,shaka.util.Error.Code.CANNOT_STORE_LIVE_OFFLINE,a);u=$jscomp.makeIterator(c);v=u.next();case 7:if(v.done){H.jumpTo(9);break}w=v.value;return H.yield(h.createExternalImageStream_(w,r),10);case 10:x=H.yieldResult;r.imageStreams.push(x);h.ensureNotDestroyed_();v=u.next();H.jumpTo(7);break;case 9:y=$jscomp.makeIterator(d),C=y.next();case 11:if(C.done)return shaka.drm.DrmEngine.configureClearKey(f.drm.clearKeys,
|
|
2730
|
+
r.variants),B=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,B&&(D=!1),H.yield(h.createDrmEngine(r,function(M){q=q||M},f,D),15);A=C.value;return H.yield(h.createExternalTextStream_(r,A.uri,
|
|
2731
|
+
A.language,A.kind,A.mime,A.codecs),14);case 14:z=H.yieldResult;r.textStreams.push(z);h.ensureNotDestroyed_();C=y.next();H.jumpTo(11);break;case 15:l=H.yieldResult;h.ensureNotDestroyed_();if(q)throw q;return H.yield(h.filterManifest_(r,l,f,D),16);case 16:return H.yield(m.init(),17);case 17:return h.ensureNotDestroyed_(),H.yield(m.getActive(),18);case 18:return n=H.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,
|
|
2732
|
+
G=E.toDownload,H.yield(n.cell.addManifests([F]),19);case 19:J=H.yieldResult;h.ensureNotDestroyed_();p=J[0];goog.asserts.assert(l,"drmEngine should be non-null here.");h.ensureNotDestroyed_();if(q)throw q;return H.yield(h.downloadSegments_(G,p,F,g,f,n.cell,r,l,D),20);case 20:return h.ensureNotDestroyed_(),h.setManifestDrmFields_(r,F,l,D),H.yield(n.cell.updateManifest(p,F),21);case 21:return h.ensureNotDestroyed_(),L=shaka.offline.OfflineUri.manifest(n.path.mechanism,n.path.cell,p),H.return(shaka.offline.StoredContentUtils.fromManifestDB(L,
|
|
2733
|
+
F));case 3:return H.enterFinallyBlock(),H.yield(m.destroy(),22);case 22:if(!k){H.jumpTo(23);break}return H.yield(k.stop(),23);case 23:if(!l){H.jumpTo(25);break}return H.yield(l.destroy(),25);case 25:H.leaveFinallyBlock(0);break;case 2:K=H.enterCatchBlock();if(null==p){H.jumpTo(27);break}return H.yield(shaka.offline.Storage.cleanStoredManifest(p),27);case 27:throw q||K;}})};
|
|
2734
|
+
shaka.offline.Storage.prototype.downloadSegments_=function(a,b,c,d,e,f,g,h,k){var l=this,m,n,p,q,r,t,u,v,w,x,y;return $jscomp.asyncExecutePromiseGeneratorProgram(function(C){switch(C.nextAddress){case 1:m={};n=0;p=function(){if(l.destroyer_.destroyed()||d.isAborted())throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.STORAGE,shaka.util.Error.Code.OPERATION_ABORTED);};q=function(A,z){var B,D,E,F,G,J,L,K,H;return $jscomp.asyncExecutePromiseGeneratorProgram(function(M){if(1==
|
|
2735
|
+
M.nextAddress){B=$jscomp.makeIterator(A);D=B.next();for(E={};!D.done;E={download$jscomp$1:void 0},D=B.next())E.download$jscomp$1=D.value,p(),F=E.download$jscomp$1.makeSegmentRequest(e),G=E.download$jscomp$1.estimateId,J=E.download$jscomp$1.isInitSegment,L=function(I){return function(N){var R,O,V;return $jscomp.asyncExecutePromiseGeneratorProgram(function(P){switch(P.nextAddress){case 1:R=I.download$jscomp$1.ref;O=shaka.offline.DownloadInfo.idForSegmentRef(R);if(!R.aesKey){P.jumpTo(2);break}return P.yield(shaka.media.SegmentUtils.aesDecrypt(N,
|
|
2736
|
+
R.aesKey,I.download$jscomp$1.refPosition),3);case 3:N=P.yieldResult;case 2:return P.yield(f.addSegments([{data:N}]),4);case 4:V=P.yieldResult,p(),m[O]=V[0],n+=N.byteLength,P.jumpToEnd()}})}}(E),K=E.download$jscomp$1.ref,(H=K.getSegmentData())?d.queueData(E.download$jscomp$1.groupId,H,G,J,L):d.queue(E.download$jscomp$1.groupId,F,G,J,L);return M.yield(d.waitToFinish(),2)}p();if(!z||d.isAborted())return M.jumpTo(0);l.setManifestDrmFields_(g,c,h,k);return M.yield(f.updateManifest(b,c),0)})};r=!1;C.setCatchFinallyBlocks(2);
|
|
2732
2737
|
if(!l.getManifestIsEncrypted_(g)||!r||l.getManifestIncludesInitData_(g)){C.jumpTo(4);break}return C.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,C.yield(shaka.offline.Storage.assignSegmentsToManifest(f,b,c,t,u,function(){return l.ensureNotDestroyed_()}),6);case 6:p();case 4:if(r){C.jumpTo(7);break}return C.yield(q(a,!1),8);case 8:return p(),v=m,w=n,m={},n=0,C.yield(shaka.offline.Storage.assignSegmentsToManifest(f,
|
|
2733
2738
|
b,c,v,w,function(){return p()}),9);case 9:p(),goog.asserts.assert(!c.isIncomplete,"The manifest should be complete by now");case 7:C.leaveTryBlock(0);break;case 2:return x=C.enterCatchBlock(),y=Object.values(m),C.yield(f.removeSegments(y,function(A){}),10);case 10:throw x;}})};
|
|
2734
2739
|
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
2740
|
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
2741
|
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,y,C,A,z,B,D,E,F,G,
|
|
2742
|
+
shaka.offline.Storage.prototype.filterManifest_=function(a,b,c,d){var e,f,g,h,k,l,m,n,p,q,r,t,u,v,w,x,y,C,A,z,B,D,E,F,G,J,L,K,H,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
2743
|
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"==
|
|
2744
|
+
for(v=u.next();!v.done;v=u.next())w=v.value,f.push(shaka.util.StreamUtils.imageStreamToTrack(w));return I.yield(c.offline.trackSelectionCallback(f),3);case 3:x=I.yieldResult;y=a.presentationTimeline.getDuration();C=0;A=$jscomp.makeIterator(x);for(z=A.next();!z.done;z=A.next())B=z.value,D=B.bandwidth*y/8,C+=D;I.setCatchFinallyBlocks(4);return I.yield(c.offline.downloadSizeCallback(C),6);case 6:E=I.yieldResult;if(!E)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.STORAGE,
|
|
2745
|
+
shaka.util.Error.Code.STORAGE_LIMIT_REACHED);I.leaveTryBlock(5);break;case 4:F=I.enterCatchBlock();if(F instanceof shaka.util.Error)throw F;shaka.log.warning("downloadSizeCallback has produced an unexpected error",F);throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.STORAGE,shaka.util.Error.Code.DOWNLOAD_SIZE_CALLBACK_ERROR);case 5:G=new Set;J=new Set;L=new Set;K=$jscomp.makeIterator(x);for(H=K.next();!H.done;H=K.next())M=H.value,"variant"==M.type&&G.add(M.id),
|
|
2746
|
+
"text"==M.type&&J.add(M.id),"image"==M.type&&L.add(M.id);a.variants=a.variants.filter(function(N){return G.has(N.id)});a.textStreams=a.textStreams.filter(function(N){return J.has(N.id)});a.imageStreams=a.imageStreams.filter(function(N){return L.has(N.id)});shaka.offline.Storage.validateManifest_(a);I.jumpToEnd()}})};
|
|
2742
2747
|
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
2748
|
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
2749
|
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 +2806,10 @@ d.jumpTo(2):2!=d.nextAddress?(c=d.yieldResult,d.return(c)):d.return(shaka.media.
|
|
|
2801
2806
|
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
2807
|
{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
2808
|
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.
|
|
2809
|
+
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&&
|
|
2810
|
+
(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,
|
|
2811
|
+
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;
|
|
2812
|
+
shaka.polyfill.register(shaka.polyfill.MediaCapabilities.install,-1);shaka.polyfill.MediaSource=function(){};
|
|
2808
2813
|
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
2814
|
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
2815
|
(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};
|
|
@@ -2916,7 +2921,7 @@ shaka.text.TtmlTextParser.parseCueRegion_=function(a,b,c){var d=shaka.text.TtmlT
|
|
|
2916
2921
|
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
2922
|
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
2923
|
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_
|
|
2924
|
+
(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
2925
|
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
2926
|
"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
2927
|
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 +2942,8 @@ shaka.text.TtmlTextParser.parseTimeFromRegex_=function(a,b){a=a.exec(b);return n
|
|
|
2937
2942
|
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
2943
|
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
2944
|
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_=
|
|
2945
|
+
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);
|
|
2946
|
+
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
2947
|
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
2948
|
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
2949
|
shaka.text.Mp4TtmlParser.prototype.setManifestType=function(a){};
|
|
@@ -3011,7 +3016,7 @@ shaka.transmuxer.TransmuxerEngine.registerTransmuxer("audio/aac",function(){retu
|
|
|
3011
3016
|
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
3017
|
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
3018
|
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_};
|
|
3019
|
+
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
3020
|
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
3021
|
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
3022
|
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,
|
|
@@ -3040,11 +3045,11 @@ return{height:a.height,width:a.width,videoConfig:c,hSpacing:a.sarWidth,vSpacing:
|
|
|
3040
3045
|
shaka.transmuxer.H265.parseSPS_=function(a){a=new shaka.util.ExpGolomb(a,!0);a.readUnsignedByte();a.readUnsignedByte();var b=0,c=0,d=0,e=0;a.readBits(4);var f=a.readBits(3);a.readBoolean();for(var g=a.readBits(2),h=a.readBits(1),k=a.readBits(5),l=a.readUnsignedByte(),m=a.readUnsignedByte(),n=a.readUnsignedByte(),p=a.readUnsignedByte(),q=a.readUnsignedByte(),r=a.readUnsignedByte(),t=a.readUnsignedByte(),u=a.readUnsignedByte(),v=a.readUnsignedByte(),w=a.readUnsignedByte(),x=a.readUnsignedByte(),y=[],
|
|
3041
3046
|
C=[],A=0;A<f;A++)y.push(a.readBoolean()),C.push(a.readBoolean());if(0<f)for(A=f;8>A;A++)a.readBits(2);for(A=0;A<f;A++)y[A]&&a.readBits(88),C[A]&&a.readUnsignedByte();a.readUnsignedExpGolomb();y=a.readUnsignedExpGolomb();3==y&&a.readBits(1);C=a.readUnsignedExpGolomb();A=a.readUnsignedExpGolomb();a.readBoolean()&&(b+=a.readUnsignedExpGolomb(),c+=a.readUnsignedExpGolomb(),d+=a.readUnsignedExpGolomb(),e+=a.readUnsignedExpGolomb());var z=a.readUnsignedExpGolomb(),B=a.readUnsignedExpGolomb(),D=a.readUnsignedExpGolomb();
|
|
3042
3047
|
if(a.readBoolean())for(var E=0;E<=f;E++)a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb();else a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb();a.readUnsignedExpGolomb();a.readUnsignedExpGolomb();a.readUnsignedExpGolomb();a.readUnsignedExpGolomb();a.readUnsignedExpGolomb();a.readUnsignedExpGolomb();if(a.readBoolean()&&a.readBoolean())for(E=0;4>E;E++)for(var F=0;F<(3===E?2:6);F++)if(a.readBoolean()){var G=Math.min(64,1<<4+(E<<1));1<E&&a.readExpGolomb();
|
|
3043
|
-
for(var
|
|
3044
|
-
F=
|
|
3048
|
+
for(var J=0;J<G;J++)a.readExpGolomb()}else a.readUnsignedExpGolomb();a.readBoolean();a.readBoolean();a.readBoolean()&&(a.readUnsignedByte(),a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb(),a.readBoolean());E=a.readUnsignedExpGolomb();for(G=F=0;G<E;G++)if(J=!1,0!==G&&(J=a.readBoolean()),J){G===E&&a.readUnsignedExpGolomb();a.readBoolean();a.readUnsignedExpGolomb();for(var L=J=0;L<=F;L++){var K=a.readBoolean(),H=!1;K||(H=a.readBoolean());(K||H)&&J++}F=J}else{L=a.readUnsignedExpGolomb();J=a.readUnsignedExpGolomb();
|
|
3049
|
+
F=L+J;for(K=0;K<L;K++)a.readUnsignedExpGolomb(),a.readBoolean();for(L=0;L<J;L++)a.readUnsignedExpGolomb(),a.readBoolean()}if(a.readBoolean())for(E=a.readUnsignedExpGolomb(),F=0;F<E;F++){for(G=0;G<D+4;G++)a.readBits(1);a.readBits(1)}E=D=1;F=0;a.readBoolean();a.readBoolean();if(a.readBoolean()){a.readBoolean()&&(G=a.readUnsignedByte(),J=[1,12,10,16,40,24,20,32,80,18,15,64,160,4,3,2],L=[1,11,11,11,33,11,11,11,33,11,11,33,99,3,2,1],0<G&&16>=G?(D=J[G-1],E=L[G-1]):255===G&&(D=a.readBits(16),E=a.readBits(16)));
|
|
3045
3050
|
a.readBoolean()&&a.readBoolean();a.readBoolean()&&(a.readBits(3),a.readBoolean(),a.readBoolean()&&(a.readUnsignedByte(),a.readUnsignedByte(),a.readUnsignedByte()));a.readBoolean()&&(a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb());a.readBoolean();a.readBoolean();a.readBoolean();if(G=a.readBoolean())a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb();if(a.readBoolean()&&(a.readBits(32),a.readBits(32),a.readBoolean()&&a.readUnsignedExpGolomb(),
|
|
3046
|
-
a.readBoolean())){
|
|
3047
|
-
a.readUnsignedExpGolomb());a.readBoolean()}if(
|
|
3051
|
+
a.readBoolean())){L=!1;G=a.readBoolean();J=a.readBoolean();if(G||J){if(L=a.readBoolean())a.readUnsignedByte(),a.readBits(5),a.readBoolean(),a.readBits(5);a.readBits(4);a.readBits(4);L&&a.readBits(4);a.readBits(5);a.readBits(5);a.readBits(5)}for(K=0;K<=f;K++){var M=!0;H=1;a.readBoolean()||(M=a.readBoolean());var I=!1;M?a.readUnsignedExpGolomb():I=a.readBoolean();I||(H=a.readUnsignedExpGolomb()+1);if(G){for(M=0;M<H;M++)a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb(),L&&(a.readUnsignedExpGolomb(),
|
|
3052
|
+
a.readUnsignedExpGolomb());a.readBoolean()}if(J){for(M=0;M<H;M++)a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb(),L&&(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,
|
|
3048
3053
|
generalProfileCompatibilityFlags2:m,generalProfileCompatibilityFlags3:n,generalProfileCompatibilityFlags4:p,generalConstraintIndicatorFlags1:q,generalConstraintIndicatorFlags2:r,generalConstraintIndicatorFlags3:t,generalConstraintIndicatorFlags4:u,generalConstraintIndicatorFlags5:v,generalConstraintIndicatorFlags6:w,minSpatialSegmentationIdc:F,constantFrameRate:0,chromaFormatIdc:y,bitDepthLumaMinus8:z,bitDepthChromaMinus8:B,width:C-(b+c)*(1===y||2===y?2:1),height:A-(d+e)*(1===y?2:1),sarWidth:D,sarHeight:E}};
|
|
3049
3054
|
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
3055
|
b=b.readBoolean();var c=1;b&&a?c=0:b?c=3:a&&(c=2);return{parallelismType:c}};
|
|
@@ -3143,7 +3148,7 @@ h.videoCapabilities.length&&!k.length||h.audioCapabilities&&h.audioCapabilities.
|
|
|
3143
3148
|
(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
3149
|
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
3150
|
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."),
|
|
3151
|
+
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
3152
|
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
3153
|
a))}})};
|
|
3149
3154
|
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},
|