shaka-player 4.4.2 → 4.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/release-please.yaml +2 -27
- package/CHANGELOG.md +67 -25
- package/README.md +16 -10
- package/demo/asset_card.js +18 -21
- package/demo/cast_receiver/index.html +0 -1
- package/demo/close_button.js +0 -3
- package/demo/common/asset.js +27 -5
- package/demo/common/assets.js +150 -52
- package/demo/config.js +192 -253
- package/demo/custom.js +39 -98
- package/demo/front.js +7 -10
- package/demo/index.html +19 -22
- package/demo/input.js +6 -11
- package/demo/input_container.js +8 -9
- package/demo/main.js +52 -124
- package/demo/search.js +23 -35
- package/demo/service_worker.js +0 -3
- package/demo/tooltip.js +3 -5
- package/demo/visualizer.js +3 -5
- package/demo/visualizer_button.js +1 -20
- package/dist/demo.compiled.debug.js +187 -211
- package/dist/demo.compiled.debug.map +4 -4
- package/dist/demo.compiled.js +187 -211
- package/dist/demo.compiled.map +4 -4
- package/dist/deps.js +27 -24
- package/dist/locales.js +31 -31
- package/dist/receiver.compiled.debug.js +42 -61
- package/dist/receiver.compiled.debug.map +4 -4
- package/dist/receiver.compiled.js +42 -61
- package/dist/receiver.compiled.map +4 -4
- package/dist/shaka-player.compiled.d.ts +728 -365
- package/dist/shaka-player.compiled.debug.d.ts +728 -365
- package/dist/shaka-player.compiled.debug.externs.js +475 -51
- package/dist/shaka-player.compiled.debug.js +576 -480
- package/dist/shaka-player.compiled.debug.map +4 -4
- package/dist/shaka-player.compiled.externs.js +475 -51
- package/dist/shaka-player.compiled.js +1117 -1056
- package/dist/shaka-player.compiled.map +4 -4
- package/dist/shaka-player.ui.d.ts +783 -410
- package/dist/shaka-player.ui.debug.d.ts +783 -410
- package/dist/shaka-player.ui.debug.externs.js +496 -51
- package/dist/shaka-player.ui.debug.js +647 -542
- package/dist/shaka-player.ui.debug.map +4 -4
- package/dist/shaka-player.ui.externs.js +496 -51
- package/dist/shaka-player.ui.js +1260 -1194
- package/dist/shaka-player.ui.map +4 -4
- package/docs/design/lcevc-integration.md +14 -14
- package/docs/tutorials/faq.md +27 -55
- package/docs/tutorials/index.json +2 -1
- package/docs/tutorials/lcevc.md +118 -0
- package/docs/tutorials/offline.md +1 -1
- package/docs/tutorials/ui-customization.md +4 -0
- package/externs/css_style_declaration.js +19 -0
- package/externs/lcevc.js +37 -13
- package/externs/media_remote.js +68 -0
- package/externs/mediatailor.js +193 -0
- package/externs/pictureinpicture.js +11 -0
- package/externs/shaka/ads.js +27 -0
- package/externs/shaka/manifest.js +10 -5
- package/externs/shaka/manifest_parser.js +7 -1
- package/externs/shaka/offline.js +4 -0
- package/externs/shaka/player.js +12 -1
- package/karma.conf.js +7 -3
- package/lib/abr/simple_abr_manager.js +43 -3
- package/lib/ads/ad_manager.js +104 -50
- package/lib/ads/media_tailor_ad.js +297 -0
- package/lib/ads/media_tailor_ad_manager.js +828 -0
- package/lib/cea/ts_cea_parser.js +15 -2
- package/lib/config/codec_switching_strategy.js +24 -0
- package/lib/dash/content_protection.js +120 -2
- package/lib/dash/dash_parser.js +79 -13
- package/lib/dash/mpd_utils.js +10 -6
- package/lib/dash/segment_base.js +13 -5
- package/lib/dash/segment_list.js +13 -5
- package/lib/dash/segment_template.js +43 -85
- package/lib/dependencies/all.js +8 -7
- package/lib/hls/hls_parser.js +101 -37
- package/lib/lcevc/lcevc_dec.js +220 -0
- package/lib/media/adaptation_set.js +22 -11
- package/lib/media/adaptation_set_criteria.js +25 -7
- package/lib/media/media_source_engine.js +215 -27
- package/lib/media/segment_index.js +5 -5
- package/lib/media/segment_reference.js +10 -5
- package/lib/media/streaming_engine.js +44 -39
- package/lib/mss/mss_parser.js +1 -0
- package/lib/net/networking_engine.js +1 -0
- package/lib/offline/indexeddb/v1_storage_cell.js +1 -0
- package/lib/offline/indexeddb/v2_storage_cell.js +1 -0
- package/lib/offline/manifest_converter.js +1 -0
- package/lib/offline/storage.js +3 -0
- package/lib/player.js +142 -72
- package/lib/routing/payload.js +5 -1
- package/lib/text/cue.js +62 -47
- package/lib/text/ttml_text_parser.js +17 -0
- package/lib/text/ui_text_displayer.js +4 -0
- package/lib/text/vtt_text_parser.js +35 -22
- package/lib/transmuxer/h265.js +862 -0
- package/lib/transmuxer/mpeg_ts_transmuxer.js +3 -2
- package/lib/transmuxer/ts_transmuxer.js +160 -15
- package/lib/util/cmcd_manager.js +6 -1
- package/lib/util/error.js +28 -9
- package/lib/util/exp_golomb.js +30 -2
- package/lib/util/fake_event.js +3 -0
- package/lib/util/manifest_parser_utils.js +10 -4
- package/lib/util/mp4_generator.js +4 -4
- package/lib/util/periods.js +2 -0
- package/lib/util/platform.js +54 -0
- package/lib/util/player_configuration.js +8 -0
- package/lib/util/state_history.js +6 -2
- package/lib/util/stream_utils.js +133 -217
- package/lib/util/ts_parser.js +229 -43
- package/maintained-branches.md +3 -2
- package/package.json +4 -6
- package/roadmap.md +15 -5
- package/shaka-player.uncompiled.js +2 -1
- package/support.html +0 -1
- package/test/cast/cast_receiver_integration.js +47 -0
- package/test/codec_switching/codec_switching_integration.js +181 -0
- package/test/dash/dash_parser_content_protection_unit.js +2 -0
- package/test/dash/dash_parser_integration.js +73 -0
- package/test/dash/dash_parser_live_unit.js +2 -0
- package/test/dash/dash_parser_manifest_unit.js +47 -0
- package/test/dash/dash_parser_segment_base_unit.js +7 -0
- package/test/dash/dash_parser_segment_list_unit.js +23 -17
- package/test/dash/dash_parser_segment_template_unit.js +49 -0
- package/test/demo/demo_unit.js +0 -16
- package/test/hls/hls_live_unit.js +35 -0
- package/test/hls/hls_parser_unit.js +8 -61
- package/test/media/adaptation_set_criteria_unit.js +118 -0
- package/test/media/adaptation_set_unit.js +1 -0
- package/test/media/media_source_engine_unit.js +165 -1
- package/test/media/segment_index_unit.js +4 -4
- package/test/media/segment_prefetch_unit.js +1 -1
- package/test/media/streaming_engine_unit.js +17 -17
- package/test/mss/mss_parser_unit.js +2 -0
- package/test/offline/manifest_convert_unit.js +5 -0
- package/test/offline/storage_integration.js +1 -4
- package/test/player_unit.js +102 -131
- package/test/routing/walker_unit.js +1 -0
- package/test/test/assets/dash-aes-128/Fragments(video=0,format=mpd-time-csf) +0 -0
- package/test/test/assets/dash-aes-128/Fragments(video=20000000,format=mpd-time-csf) +0 -0
- package/test/test/assets/dash-aes-128/Fragments(video=40000000,format=mpd-time-csf) +0 -0
- package/test/test/assets/dash-aes-128/Fragments(video=60000000,format=mpd-time-csf) +0 -0
- package/test/test/assets/dash-aes-128/Fragments(video=i,format=mpd-time-csf) +0 -0
- package/test/test/assets/dash-aes-128/dash.mpd +18 -0
- package/test/test/assets/dash-aes-128/license +1 -0
- package/test/test/assets/dash-multi-codec/audio_en_2c_128k_aac.mp4 +0 -0
- package/test/test/assets/dash-multi-codec/audio_es_2c_64k_opus.webm +0 -0
- package/test/test/assets/dash-multi-codec/dash.mpd +32 -0
- package/test/test/assets/dash-multi-codec/video_144p_108k_h264.mp4 +0 -0
- package/test/test/assets/hls-ts-h265/0.ts +0 -0
- package/test/test/assets/hls-ts-h265/hevc.m3u8 +6 -0
- package/test/test/assets/hls-ts-h265/index.m3u8 +7 -0
- package/test/test/assets/hls-ts-muxed-aac-h265/0.ts +0 -0
- package/test/test/assets/hls-ts-muxed-aac-h265/1.ts +0 -0
- package/test/test/assets/hls-ts-muxed-aac-h265/media.m3u8 +9 -0
- package/test/test/assets/hls-ts-muxed-ac3-h264/media.m3u8 +24 -0
- package/test/test/assets/hls-ts-muxed-ac3-h264/s_00000.ts +0 -0
- package/test/test/assets/hls-ts-muxed-ac3-h264/s_00001.ts +0 -0
- package/test/test/assets/hls-ts-muxed-ac3-h264/s_00002.ts +0 -0
- package/test/test/assets/hls-ts-muxed-ac3-h264/s_00003.ts +0 -0
- package/test/test/assets/hls-ts-muxed-ac3-h264/s_00004.ts +0 -0
- package/test/test/assets/hls-ts-muxed-ac3-h264/s_00005.ts +0 -0
- package/test/test/assets/hls-ts-muxed-ec3-h264/ChID_voices_1280x720p_25fps_h264_6ch_256kbps_ddp_sub_0000.ts +0 -0
- package/test/test/assets/hls-ts-muxed-ec3-h264/ChID_voices_1280x720p_25fps_h264_6ch_256kbps_ddp_sub_0001.ts +0 -0
- package/test/test/assets/hls-ts-muxed-ec3-h264/ChID_voices_1280x720p_25fps_h264_6ch_256kbps_ddp_sub_0002.ts +0 -0
- package/test/test/assets/hls-ts-muxed-ec3-h264/ChID_voices_1280x720p_25fps_h264_6ch_256kbps_ddp_sub_0003.ts +0 -0
- package/test/test/assets/hls-ts-muxed-ec3-h264/prog_index.m3u8 +14 -0
- package/test/test/assets/hls-ts-muxed-mp3-h264/index.m3u8 +23 -0
- package/test/test/assets/hls-ts-muxed-mp3-h264/seg-1-v1-a1.ts +0 -0
- package/test/test/assets/hls-ts-muxed-mp3-h264/seg-2-v1-a1.ts +0 -0
- package/test/test/assets/hls-ts-muxed-mp3-h264/seg-3-v1-a1.ts +0 -0
- package/test/test/assets/hls-ts-muxed-mp3-h264/seg-4-v1-a1.ts +0 -0
- package/test/test/assets/hls-ts-muxed-mp3-h264/seg-5-v1-a1.ts +0 -0
- package/test/test/assets/hls-ts-muxed-mp3-h264/seg-6-v1-a1.ts +0 -0
- package/test/test/assets/hls-ts-muxed-mp3-h264/seg-7-v1-a1.ts +0 -0
- package/test/test/assets/hls-ts-muxed-mp3-h264/seg-8-v1-a1.ts +0 -0
- package/test/test/util/dash_parser_util.js +20 -7
- package/test/test/util/fake_ad_manager.js +20 -0
- package/test/test/util/fake_media_source_engine.js +8 -2
- package/test/test/util/manifest_generator.js +7 -3
- package/test/test/util/mss_parser_util.js +4 -0
- package/test/test/util/offline_utils.js +1 -0
- package/test/test/util/streaming_engine_util.js +7 -4
- package/test/text/ttml_text_parser_unit.js +52 -0
- package/test/text/vtt_text_parser_unit.js +105 -48
- package/test/transmuxer/transmuxer_integration.js +121 -4
- package/test/ui/ui_unit.js +3 -10
- package/test/util/stream_utils_unit.js +208 -74
- package/test/util/ts_parser_unit.js +1 -1
- package/ui/controls.js +125 -0
- package/ui/externs/ui.js +8 -1
- package/ui/pip_button.js +22 -120
- package/ui/remote_button.js +201 -0
- package/ui/ui.js +5 -2
- package/demo/common/message_ids.js +0 -309
- package/demo/locales/en.json +0 -287
- package/demo/locales/source.json +0 -1142
- package/externs/mux.js +0 -69
- package/lib/lcevc/lcevc_dil.js +0 -152
- package/lib/transmuxer/muxjs_transmuxer.js +0 -242
- package/test/transmuxer/muxjs_transmuxer_integration.js +0 -177
|
@@ -60,13 +60,12 @@ $jscomp.polyfill("Array.prototype.includes",function(a){return a?a:function(b,c)
|
|
|
60
60
|
$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");
|
|
61
61
|
$jscomp.polyfill("Array.prototype.find",function(a){return a?a:function(b,c){return $jscomp.findInternal(this,b,c).v}},"es6","es3");$jscomp.polyfill("String.prototype.startsWith",function(a){return a?a:function(b,c){var d=$jscomp.checkStringArgs(this,b,"startsWith");b+="";var e=d.length,f=b.length;c=Math.max(0,Math.min(c|0,d.length));for(var g=0;g<f&&c<e;)if(d[c++]!=b[g++])return!1;return g>=f}},"es6","es3");
|
|
62
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.keys",function(a){return a?a:function(){return $jscomp.iteratorFromArray(this,function(b){return b})}},"es6","es3");
|
|
63
|
-
$jscomp.assign=$jscomp.TRUST_ES6_POLYFILLS&&"function"==typeof Object.assign?Object.assign:function(a,b){for(var c=1;c<arguments.length;c++){var d=arguments[c];if(d)for(var e in d)$jscomp.owns(d,e)&&(a[e]=d[e])}return a};$jscomp.polyfill("Object.assign",function(a){return a||$jscomp.assign},"es6","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.values",function(a){return a?a:function(){return $jscomp.iteratorFromArray(this,function(b,c){return c})}},"es8","es3");$jscomp.
|
|
66
|
-
$jscomp.polyfill("
|
|
67
|
-
$jscomp.polyfill("
|
|
68
|
-
$jscomp.polyfill("
|
|
69
|
-
$jscomp.polyfill("Object.entries",function(a){return a?a:function(b){var c=[],d;for(d in b)$jscomp.owns(b,d)&&c.push([d,b[d]]);return c}},"es8","es3");/*
|
|
64
|
+
$jscomp.polyfill("Array.prototype.values",function(a){return a?a:function(){return $jscomp.iteratorFromArray(this,function(b,c){return c})}},"es8","es3");$jscomp.assign=$jscomp.TRUST_ES6_POLYFILLS&&"function"==typeof Object.assign?Object.assign:function(a,b){for(var c=1;c<arguments.length;c++){var d=arguments[c];if(d)for(var e in d)$jscomp.owns(d,e)&&(a[e]=d[e])}return a};$jscomp.polyfill("Object.assign",function(a){return a||$jscomp.assign},"es6","es3");
|
|
65
|
+
$jscomp.polyfill("Promise.prototype.finally",function(a){return a?a:function(b){return this.then(function(c){return Promise.resolve(b()).then(function(){return c})},function(c){return Promise.resolve(b()).then(function(){throw c;})})}},"es9","es3");$jscomp.polyfill("Array.prototype.entries",function(a){return a?a:function(){return $jscomp.iteratorFromArray(this,function(b,c){return[b,c]})}},"es6","es3");
|
|
66
|
+
$jscomp.polyfill("String.prototype.repeat",function(a){return a?a:function(b){var c=$jscomp.checkStringArgs(this,null,"repeat");if(0>b||1342177279<b)throw new RangeError("Invalid count value");b|=0;for(var d="";b;)if(b&1&&(d+=c),b>>>=1)c+=c;return d}},"es6","es3");$jscomp.polyfill("Number.isNaN",function(a){return a?a:function(b){return"number"===typeof b&&isNaN(b)}},"es6","es3");
|
|
67
|
+
$jscomp.polyfill("Number.isFinite",function(a){return a?a:function(b){return"number"!==typeof b?!1:!isNaN(b)&&Infinity!==b&&-Infinity!==b}},"es6","es3");$jscomp.polyfill("Object.values",function(a){return a?a:function(b){var c=[],d;for(d in b)$jscomp.owns(b,d)&&c.push(b[d]);return c}},"es8","es3");$jscomp.polyfill("Math.log2",function(a){return a?a:function(b){return Math.log(b)/Math.LN2}},"es6","es3");$jscomp.polyfill("Number.MAX_SAFE_INTEGER",function(){return 9007199254740991},"es6","es3");
|
|
68
|
+
$jscomp.polyfill("Math.trunc",function(a){return a?a:function(b){b=Number(b);if(isNaN(b)||Infinity===b||-Infinity===b||0===b)return b;var c=Math.floor(Math.abs(b));return 0>b?-c:c}},"es6","es3");$jscomp.polyfill("Object.entries",function(a){return a?a:function(b){var c=[],d;for(d in b)$jscomp.owns(b,d)&&c.push([d,b[d]]);return c}},"es8","es3");/*
|
|
70
69
|
|
|
71
70
|
Copyright The Closure Library Authors.
|
|
72
71
|
SPDX-License-Identifier: Apache-2.0
|
|
@@ -141,7 +140,7 @@ if(window.console){var $jscomp$compprop0={};shaka.log.logMap_=($jscomp$compprop0
|
|
|
141
140
|
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,
|
|
142
141
|
$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],
|
|
143
142
|
"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&&
|
|
144
|
-
(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.media={};shaka.media.Capabilities=function(){};shaka.media.Capabilities.isTypeSupported=function(a){var b=shaka.media.Capabilities.MediaSourceTypeSupportMap;if(b.has(a))return b.get(a);var c=MediaSource.isTypeSupported(a);b.set(a,c);return c};shaka.media.Capabilities.isChangeTypeSupported=function(){return!!window.SourceBuffer&&!!SourceBuffer.prototype&&!!SourceBuffer.prototype.changeType};shaka.media.Capabilities.MediaSourceTypeSupportMap=new Map;shaka.cea={};shaka.cea.DummyCaptionDecoder=function(){};shaka.cea.DummyCaptionDecoder.prototype.extract=function(a,b){};shaka.cea.DummyCaptionDecoder.prototype.decode=function(){return[]};shaka.cea.DummyCaptionDecoder.prototype.clear=function(){};shaka.cea.DummyCeaParser=function(){};shaka.cea.DummyCeaParser.prototype.init=function(a){};shaka.cea.DummyCeaParser.prototype.parse=function(a){return[]};shaka.util.BufferUtils=function(){};shaka.util.BufferUtils.equal=function(a,b){var c=shaka.util.BufferUtils;if(!a&&!b)return!0;if(!a||!b||a.byteLength!=b.byteLength)return!1;if(c.unsafeGetArrayBuffer_(a)==c.unsafeGetArrayBuffer_(b)&&(a.byteOffset||0)==(b.byteOffset||0))return!0;c=shaka.util.BufferUtils.toUint8(a);b=shaka.util.BufferUtils.toUint8(b);for(var d=0;d<a.byteLength;d++)if(c[d]!=b[d])return!1;return!0};
|
|
143
|
+
(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.config={};shaka.config.CodecSwitchingStrategy={RELOAD:"reload",SMOOTH:"smooth"};goog.exportSymbol("shaka.config.CodecSwitchingStrategy",shaka.config.CodecSwitchingStrategy);shaka.media={};shaka.media.Capabilities=function(){};shaka.media.Capabilities.isTypeSupported=function(a){var b=shaka.media.Capabilities.MediaSourceTypeSupportMap;if(b.has(a))return b.get(a);var c=MediaSource.isTypeSupported(a);b.set(a,c);return c};shaka.media.Capabilities.isChangeTypeSupported=function(){return!!window.SourceBuffer&&!!SourceBuffer.prototype&&!!SourceBuffer.prototype.changeType};shaka.media.Capabilities.MediaSourceTypeSupportMap=new Map;shaka.cea={};shaka.cea.DummyCaptionDecoder=function(){};shaka.cea.DummyCaptionDecoder.prototype.extract=function(a,b){};shaka.cea.DummyCaptionDecoder.prototype.decode=function(){return[]};shaka.cea.DummyCaptionDecoder.prototype.clear=function(){};shaka.cea.DummyCeaParser=function(){};shaka.cea.DummyCeaParser.prototype.init=function(a){};shaka.cea.DummyCeaParser.prototype.parse=function(a){return[]};shaka.util.BufferUtils=function(){};shaka.util.BufferUtils.equal=function(a,b){var c=shaka.util.BufferUtils;if(!a&&!b)return!0;if(!a||!b||a.byteLength!=b.byteLength)return!1;if(c.unsafeGetArrayBuffer_(a)==c.unsafeGetArrayBuffer_(b)&&(a.byteOffset||0)==(b.byteOffset||0))return!0;c=shaka.util.BufferUtils.toUint8(a);b=shaka.util.BufferUtils.toUint8(b);for(var d=0;d<a.byteLength;d++)if(c[d]!=b[d])return!1;return!0};
|
|
145
144
|
shaka.util.BufferUtils.unsafeGetArrayBuffer_=function(a){return a instanceof ArrayBuffer?a:a.buffer};shaka.util.BufferUtils.toArrayBuffer=function(a){return a instanceof ArrayBuffer?a:0==a.byteOffset&&a.byteLength==a.buffer.byteLength?a.buffer:(new Uint8Array(a)).buffer};shaka.util.BufferUtils.toUint8=function(a,b,c){c=void 0===c?Infinity:c;return shaka.util.BufferUtils.view_(a,void 0===b?0:b,c,Uint8Array)};
|
|
146
145
|
shaka.util.BufferUtils.toDataView=function(a,b,c){c=void 0===c?Infinity:c;return shaka.util.BufferUtils.view_(a,void 0===b?0:b,c,DataView)};shaka.util.BufferUtils.view_=function(a,b,c,d){var e=shaka.util.BufferUtils.unsafeGetArrayBuffer_(a),f=(a.byteOffset||0)+a.byteLength;a=Math.max(0,Math.min((a.byteOffset||0)+b,f));return new d(e,a,Math.min(a+Math.max(c,0),f)-a)};goog.exportSymbol("shaka.util.BufferUtils",shaka.util.BufferUtils);goog.exportProperty(shaka.util.BufferUtils,"toDataView",shaka.util.BufferUtils.toDataView);
|
|
147
146
|
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){};shaka.media.IClosedCaptionParser.prototype.parseFrom=function(a){};shaka.media.IClosedCaptionParser.prototype.reset=function(){};goog.exportSymbol("shaka.media.IClosedCaptionParser",shaka.media.IClosedCaptionParser);
|
|
@@ -150,10 +149,10 @@ shaka.media.ClosedCaptionParser.prototype.parseFrom=function(a){a=this.ceaParser
|
|
|
150
149
|
shaka.media.ClosedCaptionParser.unregisterParser=function(a){delete shaka.media.ClosedCaptionParser.parserMap_[a]};shaka.media.ClosedCaptionParser.findParser=function(a){return shaka.media.ClosedCaptionParser.parserMap_[a]};shaka.media.ClosedCaptionParser.registerDecoder=function(a){shaka.media.ClosedCaptionParser.decoderFactory_=a};shaka.media.ClosedCaptionParser.unregisterDecoder=function(){shaka.media.ClosedCaptionParser.decoderFactory_=null};shaka.media.ClosedCaptionParser.findDecoder=function(){return shaka.media.ClosedCaptionParser.decoderFactory_};
|
|
151
150
|
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);goog.exportProperty(shaka.media.ClosedCaptionParser,"registerDecoder",shaka.media.ClosedCaptionParser.registerDecoder);
|
|
152
151
|
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);shaka.media.ClosedCaptionParser.parserMap_={};shaka.media.ClosedCaptionParser.decoderFactory_=null;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};
|
|
153
|
-
shaka.util.ArrayUtils.hasSameElements=function(a,b,c){c||(c=shaka.util.ArrayUtils.defaultEquals);if(a.length!=b.length)return!1;b=b.slice();var d={};a=$jscomp.makeIterator(a);for(var e=a.next();!e.done;d={$jscomp$loop$prop$item$
|
|
152
|
+
shaka.util.ArrayUtils.hasSameElements=function(a,b,c){c||(c=shaka.util.ArrayUtils.defaultEquals);if(a.length!=b.length)return!1;b=b.slice();var d={};a=$jscomp.makeIterator(a);for(var e=a.next();!e.done;d={$jscomp$loop$prop$item$739:d.$jscomp$loop$prop$item$739},e=a.next()){d.$jscomp$loop$prop$item$739=e.value;e=b.findIndex(function(f){return function(g){return c(f.$jscomp$loop$prop$item$739,g)}}(d));if(-1==e)return!1;b[e]=b[b.length-1];b.pop()}return 0==b.length};
|
|
154
153
|
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.text={};
|
|
155
154
|
shaka.text.Cue=function(a,b,c){var d=shaka.text.Cue;this.startTime=a;this.endTime=b;this.payload=c;this.region=new shaka.text.CueRegion;this.position=null;this.positionAlign=d.positionAlign.AUTO;this.size=0;this.textAlign=d.textAlign.CENTER;this.direction=d.direction.HORIZONTAL_LEFT_TO_RIGHT;this.writingMode=d.writingMode.HORIZONTAL_TOP_TO_BOTTOM;this.lineInterpretation=d.lineInterpretation.LINE_NUMBER;this.line=null;this.lineHeight="";this.lineAlign=d.lineAlign.START;this.displayAlign=d.displayAlign.AFTER;
|
|
156
|
-
this.fontSize=this.border=this.backgroundImage=this.backgroundColor=this.color="";this.fontWeight=d.fontWeight.NORMAL;this.fontStyle=d.fontStyle.NORMAL;this.linePadding=this.letterSpacing=this.fontFamily="";this.opacity=1;this.textDecoration=[];this.textStrokeWidth=this.textStrokeColor=this.textShadow="";this.wrapLine=!0;this.id="";this.nestedCues=[];this.lineBreak=this.isContainer=!1;this.cellResolution={columns:32,rows:15}};
|
|
155
|
+
this.fontSize=this.border=this.backgroundImage=this.backgroundColor=this.color="";this.fontWeight=d.fontWeight.NORMAL;this.fontStyle=d.fontStyle.NORMAL;this.linePadding=this.letterSpacing=this.fontFamily="";this.opacity=1;this.textCombineUpright="";this.textDecoration=[];this.textStrokeWidth=this.textStrokeColor=this.textShadow="";this.wrapLine=!0;this.id="";this.nestedCues=[];this.lineBreak=this.isContainer=!1;this.rubyTag=null;this.cellResolution={columns:32,rows:15}};
|
|
157
156
|
shaka.text.Cue.lineBreak=function(a,b){a=new shaka.text.Cue(a,b,"");a.lineBreak=!0;return a};shaka.text.Cue.prototype.clone=function(){var a=new shaka.text.Cue(0,0,""),b;for(b in this)a[b]=this[b],a[b]&&a[b].constructor==Array&&(a[b]=a[b].slice());return a};
|
|
158
157
|
shaka.text.Cue.equal=function(a,b){if(a.startTime!=b.startTime||a.endTime!=b.endTime||a.payload!=b.payload)return!1;for(var c in a)if("startTime"!=c&&"endTime"!=c&&"payload"!=c)if("nestedCues"==c){if(!shaka.util.ArrayUtils.equal(a.nestedCues,b.nestedCues,shaka.text.Cue.equal))return!1}else if("region"==c||"cellResolution"==c)for(var d in a[c]){if(a[c][d]!=b[c][d])return!1}else if(Array.isArray(a[c])){if(!shaka.util.ArrayUtils.equal(a[c],b[c]))return!1}else if(a[c]!=b[c])return!1;return!0};
|
|
159
158
|
goog.exportSymbol("shaka.text.Cue",shaka.text.Cue);goog.exportProperty(shaka.text.Cue,"equal",shaka.text.Cue.equal);goog.exportProperty(shaka.text.Cue.prototype,"clone",shaka.text.Cue.prototype.clone);shaka.text.Cue.positionAlign={LEFT:"line-left",RIGHT:"line-right",CENTER:"center",AUTO:"auto"};goog.exportProperty(shaka.text.Cue,"positionAlign",shaka.text.Cue.positionAlign);shaka.text.Cue.textAlign={LEFT:"left",RIGHT:"right",CENTER:"center",START:"start",END:"end"};
|
|
@@ -199,11 +198,11 @@ shaka.util.Error.Code={UNSUPPORTED_SCHEME:1E3,BAD_HTTP_STATUS:1001,HTTP_ERROR:10
|
|
|
199
198
|
CANNOT_ADD_EXTERNAL_TEXT_TO_SRC_EQUALS:2012,TEXT_ONLY_WEBVTT_SRC_EQUALS:2013,MISSING_TEXT_PLUGIN:2014,CHAPTERS_TRACK_FAILED:2015,CANNOT_ADD_EXTERNAL_THUMBNAILS_TO_SRC_EQUALS:2016,UNSUPPORTED_EXTERNAL_THUMBNAILS_URI:2017,BUFFER_READ_OUT_OF_BOUNDS:3E3,JS_INTEGER_OVERFLOW:3001,EBML_OVERFLOW:3002,EBML_BAD_FLOATING_POINT_SIZE:3003,MP4_SIDX_WRONG_BOX_TYPE:3004,MP4_SIDX_INVALID_TIMESCALE:3005,MP4_SIDX_TYPE_NOT_SUPPORTED:3006,WEBM_CUES_ELEMENT_MISSING:3007,WEBM_EBML_HEADER_ELEMENT_MISSING:3008,WEBM_SEGMENT_ELEMENT_MISSING:3009,
|
|
200
199
|
WEBM_INFO_ELEMENT_MISSING:3010,WEBM_DURATION_ELEMENT_MISSING:3011,WEBM_CUE_TRACK_POSITIONS_ELEMENT_MISSING:3012,WEBM_CUE_TIME_ELEMENT_MISSING:3013,MEDIA_SOURCE_OPERATION_FAILED:3014,MEDIA_SOURCE_OPERATION_THREW:3015,VIDEO_ERROR:3016,QUOTA_EXCEEDED_ERROR:3017,TRANSMUXING_FAILED:3018,CONTENT_TRANSFORMATION_FAILED:3019,MSS_MISSING_DATA_FOR_TRANSMUXING:3020,MSS_TRANSMUXING_CODEC_UNKNOWN:3021,MSS_TRANSMUXING_FAILED:3022,UNABLE_TO_GUESS_MANIFEST_TYPE:4E3,DASH_INVALID_XML:4001,DASH_NO_SEGMENT_INFO:4002,
|
|
201
200
|
DASH_EMPTY_ADAPTATION_SET:4003,DASH_EMPTY_PERIOD:4004,DASH_WEBM_MISSING_INIT:4005,DASH_UNSUPPORTED_CONTAINER:4006,DASH_PSSH_BAD_ENCODING:4007,DASH_NO_COMMON_KEY_SYSTEM:4008,DASH_MULTIPLE_KEY_IDS_NOT_SUPPORTED:4009,DASH_CONFLICTING_KEY_IDS:4010,RESTRICTIONS_CANNOT_BE_MET:4012,HLS_PLAYLIST_HEADER_MISSING:4015,INVALID_HLS_TAG:4016,HLS_INVALID_PLAYLIST_HIERARCHY:4017,DASH_DUPLICATE_REPRESENTATION_ID:4018,HLS_MULTIPLE_MEDIA_INIT_SECTIONS_FOUND:4020,HLS_REQUIRED_ATTRIBUTE_MISSING:4023,HLS_REQUIRED_TAG_MISSING:4024,
|
|
202
|
-
HLS_COULD_NOT_GUESS_CODECS:4025,HLS_KEYFORMATS_NOT_SUPPORTED:4026,DASH_UNSUPPORTED_XLINK_ACTUATE:4027,DASH_XLINK_DEPTH_LIMIT:4028,CONTENT_UNSUPPORTED_BY_BROWSER:4032,CANNOT_ADD_EXTERNAL_TEXT_TO_LIVE_STREAM:4033,NO_VARIANTS:4036,PERIOD_FLATTENING_FAILED:4037,INCONSISTENT_DRM_ACROSS_PERIODS:4038,HLS_VARIABLE_NOT_FOUND:4039,HLS_MSE_ENCRYPTED_MP2T_NOT_SUPPORTED:4040,HLS_MSE_ENCRYPTED_LEGACY_APPLE_MEDIA_KEYS_NOT_SUPPORTED:4041,NO_WEB_CRYPTO_API:4042,
|
|
203
|
-
|
|
204
|
-
OFFLINE_SESSION_REMOVED:6013,EXPIRED:6014,SERVER_CERTIFICATE_REQUIRED:6015,INIT_DATA_TRANSFORM_ERROR:6016,SERVER_CERTIFICATE_REQUEST_FAILED:6017,MIN_HDCP_VERSION_NOT_MATCH:6018,ERROR_CHECKING_HDCP_VERSION:6019,LOAD_INTERRUPTED:7E3,OPERATION_ABORTED:7001,NO_VIDEO_ELEMENT:7002,OBJECT_DESTROYED:7003,CONTENT_NOT_LOADED:7004,CAST_API_UNAVAILABLE:8E3,NO_CAST_RECEIVERS:8001,ALREADY_CASTING:8002,UNEXPECTED_CAST_ERROR:8003,CAST_CANCELED_BY_USER:8004,CAST_CONNECTION_TIMED_OUT:8005,
|
|
205
|
-
STORAGE_NOT_SUPPORTED:9E3,INDEXED_DB_ERROR:9001,DEPRECATED_OPERATION_ABORTED:9002,REQUESTED_ITEM_NOT_FOUND:9003,MALFORMED_OFFLINE_URI:9004,CANNOT_STORE_LIVE_OFFLINE:9005,NO_INIT_DATA_FOR_OFFLINE:9007,LOCAL_PLAYER_INSTANCE_REQUIRED:9008,NEW_KEY_OPERATION_NOT_SUPPORTED:9011,KEY_NOT_FOUND:9012,MISSING_STORAGE_CELL:9013,STORAGE_LIMIT_REACHED:9014,DOWNLOAD_SIZE_CALLBACK_ERROR:9015,MODIFY_OPERATION_NOT_SUPPORTED:9016,INDEXED_DB_INIT_TIMED_OUT:9017,CS_IMA_SDK_MISSING:1E4,
|
|
206
|
-
SS_IMA_SDK_MISSING:10002,SS_AD_MANAGER_NOT_INITIALIZED:10003,CURRENT_DAI_REQUEST_NOT_FINISHED:10004};goog.exportProperty(shaka.util.Error,"Code",shaka.util.Error.Code);shaka.util.Functional=function(){};shaka.util.Functional.createFallbackPromiseChain=function(a,b){return a.reduce(function(c,d){return c.catch(function(){return b(d)})},Promise.reject())};shaka.util.Functional.collapseArrays=function(a,b){return a.concat(b)};shaka.util.Functional.ignored=function(){};shaka.util.Functional.noop=function(){};shaka.util.Functional.isNotNull=function(a){return null!=a};shaka.util.ManifestParserUtils=function(){};shaka.util.ManifestParserUtils.resolveUris=function(a,b){var c=shaka.util.Functional;if(0==b.length)return a;var d=b.map(function(e){return new goog.Uri(e)});return a.map(function(e){
|
|
201
|
+
HLS_COULD_NOT_GUESS_CODECS:4025,HLS_KEYFORMATS_NOT_SUPPORTED:4026,DASH_UNSUPPORTED_XLINK_ACTUATE:4027,DASH_XLINK_DEPTH_LIMIT:4028,CONTENT_UNSUPPORTED_BY_BROWSER:4032,CANNOT_ADD_EXTERNAL_TEXT_TO_LIVE_STREAM:4033,NO_VARIANTS:4036,PERIOD_FLATTENING_FAILED:4037,INCONSISTENT_DRM_ACROSS_PERIODS:4038,HLS_VARIABLE_NOT_FOUND:4039,HLS_MSE_ENCRYPTED_MP2T_NOT_SUPPORTED:4040,HLS_MSE_ENCRYPTED_LEGACY_APPLE_MEDIA_KEYS_NOT_SUPPORTED:4041,NO_WEB_CRYPTO_API:4042,CANNOT_ADD_EXTERNAL_THUMBNAILS_TO_LIVE_STREAM:4045,MSS_INVALID_XML:4046,
|
|
202
|
+
MSS_LIVE_CONTENT_NOT_SUPPORTED:4047,AES_128_INVALID_IV_LENGTH:4048,AES_128_INVALID_KEY_LENGTH:4049,DASH_CONFLICTING_AES_128:4050,DASH_UNSUPPORTED_AES_128:4051,STREAMING_ENGINE_STARTUP_INVALID_STATE:5006,NO_RECOGNIZED_KEY_SYSTEMS:6E3,REQUESTED_KEY_SYSTEM_CONFIG_UNAVAILABLE:6001,FAILED_TO_CREATE_CDM:6002,FAILED_TO_ATTACH_TO_VIDEO:6003,INVALID_SERVER_CERTIFICATE:6004,FAILED_TO_CREATE_SESSION:6005,FAILED_TO_GENERATE_LICENSE_REQUEST:6006,LICENSE_REQUEST_FAILED:6007,LICENSE_RESPONSE_REJECTED:6008,ENCRYPTED_CONTENT_WITHOUT_DRM_INFO:6010,
|
|
203
|
+
NO_LICENSE_SERVER_GIVEN:6012,OFFLINE_SESSION_REMOVED:6013,EXPIRED:6014,SERVER_CERTIFICATE_REQUIRED:6015,INIT_DATA_TRANSFORM_ERROR:6016,SERVER_CERTIFICATE_REQUEST_FAILED:6017,MIN_HDCP_VERSION_NOT_MATCH:6018,ERROR_CHECKING_HDCP_VERSION:6019,LOAD_INTERRUPTED:7E3,OPERATION_ABORTED:7001,NO_VIDEO_ELEMENT:7002,OBJECT_DESTROYED:7003,CONTENT_NOT_LOADED:7004,CAST_API_UNAVAILABLE:8E3,NO_CAST_RECEIVERS:8001,ALREADY_CASTING:8002,UNEXPECTED_CAST_ERROR:8003,CAST_CANCELED_BY_USER:8004,CAST_CONNECTION_TIMED_OUT:8005,
|
|
204
|
+
CAST_RECEIVER_APP_UNAVAILABLE:8006,STORAGE_NOT_SUPPORTED:9E3,INDEXED_DB_ERROR:9001,DEPRECATED_OPERATION_ABORTED:9002,REQUESTED_ITEM_NOT_FOUND:9003,MALFORMED_OFFLINE_URI:9004,CANNOT_STORE_LIVE_OFFLINE:9005,NO_INIT_DATA_FOR_OFFLINE:9007,LOCAL_PLAYER_INSTANCE_REQUIRED:9008,NEW_KEY_OPERATION_NOT_SUPPORTED:9011,KEY_NOT_FOUND:9012,MISSING_STORAGE_CELL:9013,STORAGE_LIMIT_REACHED:9014,DOWNLOAD_SIZE_CALLBACK_ERROR:9015,MODIFY_OPERATION_NOT_SUPPORTED:9016,INDEXED_DB_INIT_TIMED_OUT:9017,CS_IMA_SDK_MISSING:1E4,
|
|
205
|
+
CS_AD_MANAGER_NOT_INITIALIZED:10001,SS_IMA_SDK_MISSING:10002,SS_AD_MANAGER_NOT_INITIALIZED:10003,CURRENT_DAI_REQUEST_NOT_FINISHED:10004,MT_AD_MANAGER_NOT_INITIALIZED:10005};goog.exportProperty(shaka.util.Error,"Code",shaka.util.Error.Code);shaka.util.Functional=function(){};shaka.util.Functional.createFallbackPromiseChain=function(a,b){return a.reduce(function(c,d){return c.catch(function(){return b(d)})},Promise.reject())};shaka.util.Functional.collapseArrays=function(a,b){return a.concat(b)};shaka.util.Functional.ignored=function(){};shaka.util.Functional.noop=function(){};shaka.util.Functional.isNotNull=function(a){return null!=a};shaka.util.ManifestParserUtils=function(){};shaka.util.ManifestParserUtils.resolveUris=function(a,b){var c=shaka.util.Functional;if(0==b.length)return a;if(1==a.length&&1==b.length)return a=new goog.Uri(a[0]),b=new goog.Uri(b[0]),[a.resolve(b).toString()];var d=b.map(function(e){return new goog.Uri(e)});return a.map(function(e){var f=new goog.Uri(e);return d.map(function(g){return f.resolve(g).toString()})}).reduce(c.collapseArrays,[])};
|
|
207
206
|
shaka.util.ManifestParserUtils.createDrmInfo=function(a,b){return{keySystem:a,licenseServerUri:"",distinctiveIdentifierRequired:!1,persistentStateRequired:!1,audioRobustness:"",videoRobustness:"",serverCertificate:null,serverCertificateUri:"",sessionType:"",initData:b||[],keyIds:new Set}};
|
|
208
207
|
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);};
|
|
209
208
|
shaka.util.ManifestParserUtils.guessCodecsSafe=function(a,b){for(var c=$jscomp.makeIterator(shaka.util.ManifestParserUtils.CODEC_REGEXPS_BY_CONTENT_TYPE_[a]),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};shaka.util.ManifestParserUtils.ContentType={VIDEO:"video",AUDIO:"audio",TEXT:"text",IMAGE:"image",APPLICATION:"application"};
|
|
@@ -249,35 +248,36 @@ shaka.util.MultiMap.prototype.remove=function(a,b){a in this.map_&&(this.map_[a]
|
|
|
249
248
|
shaka.util.Timer.prototype.tickEvery=function(a){var b=this;this.stop();goog.DEBUG&&shaka.util.Timer.activeTimers.set(this,Error("Timer created").stack);this.ticker_=(new shaka.util.DelayedTick(function(){b.ticker_.tickAfter(a);b.onTick_()})).tickAfter(a);return this};shaka.util.Timer.prototype.stop=function(){this.ticker_&&(this.ticker_.stop(),this.ticker_=null);goog.DEBUG&&shaka.util.Timer.activeTimers.delete(this)};goog.exportSymbol("shaka.util.Timer",shaka.util.Timer);
|
|
250
249
|
goog.exportProperty(shaka.util.Timer.prototype,"stop",shaka.util.Timer.prototype.stop);goog.exportProperty(shaka.util.Timer.prototype,"tickEvery",shaka.util.Timer.prototype.tickEvery);goog.exportProperty(shaka.util.Timer.prototype,"tickAfter",shaka.util.Timer.prototype.tickAfter);goog.exportProperty(shaka.util.Timer.prototype,"tickNow",shaka.util.Timer.prototype.tickNow);goog.DEBUG&&(shaka.util.Timer.activeTimers=new Map);shaka.util.Platform=function(){};shaka.util.Platform.supportsMediaSource=function(){return window.MediaSource&&MediaSource.isTypeSupported?!0:!1};shaka.util.Platform.supportsMediaType=function(a){return""!=shaka.util.Platform.anyMediaElement().canPlayType(a)};shaka.util.Platform.isEdge=function(){return navigator.userAgent.match(/Edge?\//)?!0:!1};shaka.util.Platform.isLegacyEdge=function(){return navigator.userAgent.match(/Edge\//)?!0:!1};shaka.util.Platform.isIE=function(){return shaka.util.Platform.userAgentContains_("Trident/")};
|
|
251
250
|
shaka.util.Platform.isXboxOne=function(){return shaka.util.Platform.userAgentContains_("Xbox One")};shaka.util.Platform.isTizen=function(){return shaka.util.Platform.userAgentContains_("Tizen")};shaka.util.Platform.isTizen4=function(){return shaka.util.Platform.userAgentContains_("Tizen 4")};shaka.util.Platform.isTizen3=function(){return shaka.util.Platform.userAgentContains_("Tizen 3")};shaka.util.Platform.isTizen2=function(){return shaka.util.Platform.userAgentContains_("Tizen 2")};
|
|
252
|
-
shaka.util.Platform.isWebOS=function(){return shaka.util.Platform.userAgentContains_("Web0S")};shaka.util.Platform.isWebOS3=function(){return shaka.util.Platform.userAgentContains_("Web0S")&&shaka.util.Platform.userAgentContains_("Chrome/38.0.2125.122 Safari/537.36")};shaka.util.Platform.isChromecast=function(){return shaka.util.Platform.userAgentContains_("CrKey")};
|
|
251
|
+
shaka.util.Platform.isWebOS=function(){return shaka.util.Platform.userAgentContains_("Web0S")};shaka.util.Platform.isWebOS3=function(){return shaka.util.Platform.userAgentContains_("Web0S")&&shaka.util.Platform.userAgentContains_("Chrome/38.0.2125.122 Safari/537.36")};shaka.util.Platform.isWebOS4=function(){return!!navigator.userAgent.match(/webOS\/4/i)};shaka.util.Platform.isWebOS5=function(){return!!navigator.userAgent.match(/webOS\/5/i)};shaka.util.Platform.isChromecast=function(){return shaka.util.Platform.userAgentContains_("CrKey")};
|
|
253
252
|
shaka.util.Platform.chromeVersion=function(){if(!shaka.util.Platform.isChrome())return null;var a=navigator.userAgent.match(/Chrome\/(\d+)/);return a?parseInt(a[1],10):null};shaka.util.Platform.isChrome=function(){return shaka.util.Platform.userAgentContains_("Chrome")&&!shaka.util.Platform.isLegacyEdge()};
|
|
254
253
|
shaka.util.Platform.isApple=function(){return!!navigator.vendor&&navigator.vendor.includes("Apple")&&!shaka.util.Platform.isTizen()&&!shaka.util.Platform.isEOS()&&!shaka.util.Platform.isVirginMedia()&&!shaka.util.Platform.isOrange()&&!shaka.util.Platform.isPS4()&&!shaka.util.Platform.isAmazonFireTV()};shaka.util.Platform.isPS5=function(){return shaka.util.Platform.userAgentContains_("PlayStation 5")};shaka.util.Platform.isPS4=function(){return shaka.util.Platform.userAgentContains_("PlayStation 4")};
|
|
255
254
|
shaka.util.Platform.isHisense=function(){return shaka.util.Platform.userAgentContains_("Hisense")||shaka.util.Platform.userAgentContains_("VIDAA")};shaka.util.Platform.isVirginMedia=function(){return shaka.util.Platform.userAgentContains_("VirginMedia")};shaka.util.Platform.isOrange=function(){return shaka.util.Platform.userAgentContains_("SOPOpenBrowser")};shaka.util.Platform.isAmazonFireTV=function(){return shaka.util.Platform.userAgentContains_("AFT")};
|
|
256
255
|
shaka.util.Platform.safariVersion=function(){if(!shaka.util.Platform.isApple())return null;var a=navigator.userAgent.match(/Version\/(\d+)/);return a?parseInt(a[1],10):(a=navigator.userAgent.match(/OS (\d+)(?:_\d+)?/))?parseInt(a[1],10):null};shaka.util.Platform.isSafari=function(){return!!shaka.util.Platform.safariVersion()};shaka.util.Platform.isEOS=function(){return shaka.util.Platform.userAgentContains_("PC=EOS")};
|
|
257
|
-
shaka.util.Platform.isMobile=function(){return/(?:iPhone|iPad|iPod|Android)/.test(navigator.userAgent)?!0:shaka.util.Platform.isApple()&&1<navigator.maxTouchPoints};shaka.util.Platform.isMac=function(){return navigator.userAgentData&&navigator.userAgentData.platform?"macos"==navigator.userAgentData.platform.toLowerCase():navigator.platform.toLowerCase().includes("mac")};
|
|
256
|
+
shaka.util.Platform.isMobile=function(){return/(?:iPhone|iPad|iPod|Android)/.test(navigator.userAgent)?!0:shaka.util.Platform.isApple()&&1<navigator.maxTouchPoints};shaka.util.Platform.isMac=function(){return navigator.userAgentData&&navigator.userAgentData.platform?"macos"==navigator.userAgentData.platform.toLowerCase():navigator.platform.toLowerCase().includes("mac")};
|
|
257
|
+
shaka.util.Platform.isWindows=function(){return navigator.userAgentData&&navigator.userAgentData.platform?"windows"==navigator.userAgentData.platform.toLowerCase():navigator.platform.toLowerCase().includes("windows")};shaka.util.Platform.userAgentContains_=function(a){return(navigator.userAgent||"").includes(a)};
|
|
258
258
|
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_};
|
|
259
|
-
shaka.util.Platform.requiresEncryptionInfoInAllInitSegments=function(){var a=shaka.util.Platform;return a.isTizen()||a.isXboxOne()};shaka.util.Platform.supportsSequenceMode=function(){var a=shaka.util.Platform;return a.isTizen3()||a.isTizen2()||a.isWebOS3()||a.isPS4()?!1:!0};shaka.util.Platform.
|
|
260
|
-
shaka.util.
|
|
261
|
-
shaka.util.StreamUtils.
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
shaka.util.StreamUtils.
|
|
267
|
-
|
|
259
|
+
shaka.util.Platform.requiresEncryptionInfoInAllInitSegments=function(){var a=shaka.util.Platform;return a.isTizen()||a.isXboxOne()};shaka.util.Platform.supportsSequenceMode=function(){var a=shaka.util.Platform;return a.isTizen3()||a.isTizen2()||a.isWebOS3()||a.isPS4()?!1:!0};shaka.util.Platform.supportsSmoothCodecSwitching=function(){var a=shaka.util.Platform;return a.isTizen2()||a.isTizen3()||a.isTizen4()||a.isWebOS3()||a.isWebOS4()||a.isWebOS5()?!1:!0};
|
|
260
|
+
shaka.util.Platform.isMediaKeysPolyfilled=function(){return window.shakaMediaKeysPolyfill?!0:!1};shaka.util.Platform.cacheExpirationTimer_=null;shaka.util.Platform.cachedMediaElement_=null;shaka.util.StreamUtils=function(){};
|
|
261
|
+
shaka.util.StreamUtils.chooseCodecsAndFilterManifest=function(a,b,c,d,e){var f=shaka.util.StreamUtils,g=shaka.util.MimeUtils,h=a.variants;if(b.length||c.length)h=f.choosePreferredCodecs(h,b,c);if(e.length){b=new shaka.util.MultiMap;c=$jscomp.makeIterator(h);for(h=c.next();!h.done;h=c.next())h=h.value,b.push(String(h.video.width||0),h);var k=[];b.forEach(function(r,t){r=0;var v=[],u={};t=$jscomp.makeIterator(t);for(var w=t.next();!w.done;u={$jscomp$loop$prop$variant$481$741:u.$jscomp$loop$prop$variant$481$741},w=
|
|
262
|
+
t.next())u.$jscomp$loop$prop$variant$481$741=w.value,w=e.filter(function(x){return function(y){return x.$jscomp$loop$prop$variant$481$741.decodingInfos[0][y]}}(u)).length,w>r?(r=w,v=[u.$jscomp$loop$prop$variant$481$741]):w==r&&v.push(u.$jscomp$loop$prop$variant$481$741);k.push.apply(k,$jscomp.arrayFromIterable(v))});h=k}d&&(h=f.filterVariantsByAudioChannelCount(h,d));f=new Set;d=new Set;b=$jscomp.makeIterator(h);for(h=b.next();!h.done;h=b.next())h=h.value,h.audio&&f.add(h.audio),h.video&&d.add(h.video);
|
|
263
|
+
h=Array.from(f).sort(function(r,t){return r.bandwidth-t.bandwidth});f=new Map;h=$jscomp.makeIterator(h);for(c=h.next();!c.done;c=h.next())b=c.value,c=b.language+(b.channelsCount||0)+b.roles.join(",")+b.label,f.has(c)?f.get(c).bandwidth>b.bandwidth&&f.set(c,b):f.set(c,b);f=[].concat($jscomp.arrayFromIterable(f.values()));b=Array.from(d).sort(function(r,t){return r.bandwidth&&t.bandwidth?r.bandwidth-t.bandwidth:r.width-t.width});d=shaka.media.Capabilities.isChangeTypeSupported();h=[];b=$jscomp.makeIterator(b);
|
|
264
|
+
for(c=b.next();!c.done;c=b.next())if(c=c.value,h.length){var l=h[h.length-1];if(!d){var m=g.getNormalizedCodec(l.codecs),n=g.getNormalizedCodec(c.codecs);if(m!==n)continue}c.width>l.width||c.height>l.height?h.push(c):c.width==l.width&&c.height==l.height&&(m=g.getNormalizedCodec(l.codecs),n=g.getNormalizedCodec(c.codecs),m==n&&c.bandwidth<l.bandwidth&&h.push(c))}else h.push(c);var p=f.map(function(r){return r.id}),q=h.map(function(r){return r.id});a.variants=a.variants.filter(function(r){var t=r.audio,
|
|
265
|
+
v=r.video;return t&&!p.includes(t.id)||v&&!q.includes(v.id)?(shaka.log.debug("Dropping Variant (better codec available)",r),!1):!0})};
|
|
266
|
+
shaka.util.StreamUtils.choosePreferredCodecs=function(a,b,c){var d={};b=$jscomp.makeIterator(b);for(var e=b.next();!e.done;d={$jscomp$loop$prop$videoCodec$743:d.$jscomp$loop$prop$videoCodec$743},e=b.next())if(d.$jscomp$loop$prop$videoCodec$743=e.value,e=a.filter(function(f){return function(g){return g.video&&g.video.codecs.startsWith(f.$jscomp$loop$prop$videoCodec$743)}}(d)),e.length){a=e;break}d={};c=$jscomp.makeIterator(c);for(b=c.next();!b.done;d={$jscomp$loop$prop$audioCodec$745:d.$jscomp$loop$prop$audioCodec$745},
|
|
267
|
+
b=c.next())if(d.$jscomp$loop$prop$audioCodec$745=b.value,b=a.filter(function(f){return function(g){return g.audio&&g.audio.codecs.startsWith(f.$jscomp$loop$prop$audioCodec$745)}}(d)),b.length){a=b;break}return a};shaka.util.StreamUtils.filterByRestrictions=function(a,b,c){a.variants=a.variants.filter(function(d){return shaka.util.StreamUtils.meetsRestrictions(d,b,c)})};
|
|
268
268
|
shaka.util.StreamUtils.meetsRestrictions=function(a,b,c){var d=function(f,g,h){return f>=g&&f<=h},e=a.video;return e&&e.width&&e.height&&(!d(e.width,b.minWidth,Math.min(b.maxWidth,c.width))||!d(e.height,b.minHeight,Math.min(b.maxHeight,c.height))||!d(e.width*e.height,b.minPixels,b.maxPixels))||a&&a.video&&a.video.frameRate&&!d(a.video.frameRate,b.minFrameRate,b.maxFrameRate)||!d(a.bandwidth,b.minBandwidth,b.maxBandwidth)?!1:!0};
|
|
269
269
|
shaka.util.StreamUtils.applyRestrictions=function(a,b,c){var d=!1;a=$jscomp.makeIterator(a);for(var e=a.next();!e.done;e=a.next()){e=e.value;var f=e.allowedByApplication;e.allowedByApplication=shaka.util.StreamUtils.meetsRestrictions(e,b,c);f!=e.allowedByApplication&&(d=!0)}return d};
|
|
270
|
-
shaka.util.StreamUtils.filterManifest=function(a,b,c){return $jscomp.asyncExecutePromiseGeneratorProgram(function(
|
|
270
|
+
shaka.util.StreamUtils.filterManifest=function(a,b,c,d){return $jscomp.asyncExecutePromiseGeneratorProgram(function(e){if(1==e.nextAddress)return e.yield(shaka.util.StreamUtils.filterManifestByMediaCapabilities(c,0<c.offlineSessionIds.length),2);shaka.util.StreamUtils.filterTextStreams_(c);return e.yield(shaka.util.StreamUtils.filterImageStreams_(c),0)})};
|
|
271
271
|
shaka.util.StreamUtils.filterManifestByMediaCapabilities=function(a,b){return $jscomp.asyncExecutePromiseGeneratorProgram(function(c){if(1==c.nextAddress)return goog.asserts.assert(navigator.mediaCapabilities,"MediaCapabilities should be valid."),c.yield(shaka.util.StreamUtils.getDecodingInfosForVariants(a.variants,b,!1,[]),2);a.variants=a.variants.filter(function(d){var e=d.video,f=shaka.util.ManifestParserUtils.ContentType,g=shaka.media.Capabilities,h=shaka.util.ManifestParserUtils,k=shaka.util.MimeUtils,
|
|
272
272
|
l=shaka.util.StreamUtils;if(e){var m=l.getCorrectVideoCodecs_(e.codecs);if(e.codecs.includes(",")){var n=e.codecs.split(",");m=h.guessCodecs(f.VIDEO,n);m=l.getCorrectVideoCodecs_(m);h=h.guessCodecs(f.AUDIO,n);h=l.getCorrectAudioCodecs_(h);n=k.getFullOrConvertedType(e.mimeType,h,f.AUDIO);if(!g.isTypeSupported(n))return!1;m=[m,h].join()}h=k.getFullOrConvertedType(e.mimeType,m,f.VIDEO);if(!g.isTypeSupported(h))return!1;e.codecs=m}if(m=d.audio){h=l.getCorrectAudioCodecs_(m.codecs);f=k.getFullOrConvertedType(m.mimeType,
|
|
273
273
|
h,f.AUDIO);if(!g.isTypeSupported(f))return!1;m.codecs=h}if(shaka.util.Platform.isXboxOne()&&e&&(e.width&&1920<e.width||e.height&&1080<e.height)&&(e.codecs.includes("avc1.")||e.codecs.includes("avc3.")))return shaka.log.debug("Dropping variant - not compatible with platform",l.getVariantSummaryString_(d)),!1;(e=d.decodingInfos.some(function(p){return p.supported}))||shaka.log.debug("Dropping variant - not compatible with platform",l.getVariantSummaryString_(d));return e});c.jumpToEnd()})};
|
|
274
274
|
shaka.util.StreamUtils.alphabeticalKeyOrderStringify_=function(a){var b=[];for(c in a)b.push(c);b.sort();var c=[];b=$jscomp.makeIterator(b);for(var d=b.next();!d.done;d=b.next()){var e=d.value;d=JSON.stringify(e);e=a[e];e instanceof Object?(e=shaka.util.StreamUtils.alphabeticalKeyOrderStringify_(e),c.push(d+":"+e)):(e=JSON.stringify(e),c.push(d+":"+e))}return"{"+c.join(",")+"}"};
|
|
275
275
|
shaka.util.StreamUtils.getDecodingInfosForVariant_=function(a,b){var c,d,e,f;return $jscomp.asyncExecutePromiseGeneratorProgram(function(g){switch(g.nextAddress){case 1:c=shaka.util.StreamUtils.alphabeticalKeyOrderStringify_(b);g.setCatchFinallyBlocks(2);d=shaka.util.StreamUtils.decodingConfigCache_;if(d[c]){shaka.log.v2("Using cached results of mediaCapabilities.decodingInfo","for key",c);a.decodingInfos.push(d[c]);g.jumpTo(4);break}return g.yield(navigator.mediaCapabilities.decodingInfo(b),5);case 5:e=
|
|
276
276
|
g.yieldResult,d[c]=e,a.decodingInfos.push(e);case 4:g.leaveTryBlock(0);break;case 2:f=g.enterCatchBlock(),shaka.log.info("MediaCapabilities.decodingInfo() failed.",JSON.stringify(b),f),g.jumpToEnd()}})};
|
|
277
|
-
shaka.util.StreamUtils.getDecodingInfosForVariants=function(a,b,c,d){var e,f,g,h,k,l,m,n,p,q,r,t,
|
|
278
|
-
case 5:if(m.done){
|
|
279
|
-
break;case 7:if(k)return
|
|
280
|
-
return
|
|
277
|
+
shaka.util.StreamUtils.getDecodingInfosForVariants=function(a,b,c,d){var e,f,g,h,k,l,m,n,p,q,r,t,v,u,w,x,y;return $jscomp.asyncExecutePromiseGeneratorProgram(function(z){switch(z.nextAddress){case 1:if(e=a.some(function(A){return A.decodingInfos.length}))return shaka.log.debug("Already got the variants' decodingInfo."),z.return();f={};g=$jscomp.makeIterator(d);h=g.next();case 2:if(h.done){z.jumpTo(4);break}f.$jscomp$loop$prop$preferredKeySystem$747=h.value;k=!1;l=$jscomp.makeIterator(a);m=l.next();
|
|
278
|
+
case 5:if(m.done){z.jumpTo(7);break}n=m.value;p=shaka.util.StreamUtils.getDecodingConfigs_(n,b,c).filter(function(A){return function(C){return(C.keySystemConfiguration&&C.keySystemConfiguration.keySystem)===A.$jscomp$loop$prop$preferredKeySystem$747}}(f));q=$jscomp.makeIterator(p);r=q.next();case 8:if(r.done){z.jumpTo(10);break}t=r.value;return z.yield(shaka.util.StreamUtils.getDecodingInfosForVariant_(n,t),9);case 9:r=q.next();z.jumpTo(8);break;case 10:n.decodingInfos.length&&(k=!0);m=l.next();z.jumpTo(5);
|
|
279
|
+
break;case 7:if(k)return z.return();f={$jscomp$loop$prop$preferredKeySystem$747:f.$jscomp$loop$prop$preferredKeySystem$747};h=g.next();z.jumpTo(2);break;case 4:v=$jscomp.makeIterator(a),m=v.next();case 12:if(m.done){z.jumpTo(0);break}u=m.value;w=shaka.util.StreamUtils.getDecodingConfigs_(u,b,c).filter(function(A){A=A.keySystemConfiguration&&A.keySystemConfiguration.keySystem;return!A||!d.includes(A)});x=$jscomp.makeIterator(w);r=x.next();case 15:if(r.done){m=v.next();z.jumpTo(12);break}y=r.value;
|
|
280
|
+
return z.yield(shaka.util.StreamUtils.getDecodingInfosForVariant_(u,y),16);case 16:r=x.next(),z.jumpTo(15)}})};
|
|
281
281
|
shaka.util.StreamUtils.getDecodingConfigs_=function(a,b,c){var d=a.audio,e=a.video,f=shaka.util.ManifestParserUtils.ContentType,g=shaka.util.ManifestParserUtils,h=shaka.util.MimeUtils,k=shaka.util.StreamUtils;c={type:c?"file":"media-source"};if(e){var l=e.codecs;if(e.codecs.includes(",")){var m=e.codecs.split(",");l=g.guessCodecs(f.VIDEO,m);l=k.getCorrectVideoCodecs_(l);g=g.guessCodecs(f.AUDIO,m);g=k.getCorrectAudioCodecs_(g);g=h.getFullOrConvertedType(e.mimeType,g,f.AUDIO);c.audio={contentType:g,
|
|
282
282
|
channels:2,bitrate:a.bandwidth||1,samplerate:1,spatialRendering:!1}}l=k.getCorrectVideoCodecs_(l);l=h.getFullOrConvertedType(e.mimeType,l,f.VIDEO);c.video={contentType:l,width:e.width||64,height:e.height||64,bitrate:e.bandwidth||a.bandwidth||1,framerate:e.frameRate||1};if(e.hdr)switch(e.hdr){case "SDR":c.video.transferFunction="srgb";break;case "PQ":c.video.transferFunction="pq";break;case "HLG":c.video.transferFunction="hlg"}}d&&(k=k.getCorrectAudioCodecs_(d.codecs),f=h.getFullOrConvertedType(d.mimeType,
|
|
283
283
|
k,f.AUDIO),c.audio={contentType:f,channels:d.channelsCount||2,bitrate:d.bandwidth||a.bandwidth||1,samplerate:d.audioSamplingRate||1,spatialRendering:d.spatialAudio});h=(a.video?a.video.drmInfos:[]).concat(a.audio?a.audio.drmInfos:[]);if(!h.length)return[c];a=[];f=new Map;h=$jscomp.makeIterator(h);for(var n=h.next();!n.done;n=h.next())k=n.value,f.get(k.keySystem)||f.set(k.keySystem,[]),f.get(k.keySystem).push(k);h=b?"required":"optional";b=b?["persistent-license"]:["temporary"];k=$jscomp.makeIterator(f.keys());
|
|
@@ -303,43 +303,46 @@ shaka.util.StreamUtils.html5TextTrackToTrack=function(a){var b=shaka.util.MimeUt
|
|
|
303
303
|
shaka.util.StreamUtils.html5AudioTrackToTrack=function(a){var b=shaka.util.StreamUtils.html5TrackToGenericShakaTrack_(a);b.active=a.enabled;b.type="variant";b.originalAudioId=a.id;"main"==a.kind&&(b.primary=!0);a.kind&&(b.roles=[a.kind],b.audioRoles=[a.kind],b.label=a.label);return b};
|
|
304
304
|
shaka.util.StreamUtils.html5TrackToGenericShakaTrack_=function(a){var b=a.language;return{id:shaka.util.StreamUtils.html5TrackId(a),active:!1,type:"",bandwidth:0,language:shaka.util.LanguageUtils.normalize(b||"und"),label:a.label,kind:a.kind,width:null,height:null,frameRate:null,pixelAspectRatio:null,hdr:null,mimeType:null,audioMimeType:null,videoMimeType:null,codecs:null,audioCodec:null,videoCodec:null,primary:!1,roles:[],forced:!1,audioRoles:null,videoId:null,audioId:null,channelsCount:null,audioSamplingRate:null,
|
|
305
305
|
spatialAudio:!1,tilesLayout:null,audioBandwidth:null,videoBandwidth:null,originalVideoId:null,originalAudioId:null,originalTextId:null,originalImageId:null,accessibilityPurpose:null,originalLanguage:b}};shaka.util.StreamUtils.isPlayable=function(a){return a.allowedByApplication&&a.allowedByKeySystem&&0==a.disabledUntilTime};shaka.util.StreamUtils.getPlayableVariants=function(a){return a.filter(function(b){return shaka.util.StreamUtils.isPlayable(b)})};
|
|
306
|
-
shaka.util.StreamUtils.filterVariantsByAudioChannelCount=function(a,b){var c=a.filter(function(
|
|
307
|
-
d.get(Math.min.apply(Math,$jscomp.arrayFromIterable(c)))};
|
|
306
|
+
shaka.util.StreamUtils.filterVariantsByAudioChannelCount=function(a,b){var c=a.filter(function(h){return h.audio&&h.audio.channelsCount}),d=new Map,e=[];c=$jscomp.makeIterator(c);for(var f=c.next();!f.done;f=c.next()){f=f.value;var g=f.audio.channelsCount;goog.asserts.assert(null!=g,"Must have count after filtering!");d.has(g)||d.set(g,[]);d.get(g).push(f);g<=b&&e.push(f)}if(e.length)return e;b=Array.from(d.keys());return 0==b.length?a:d.get(Math.min.apply(Math,$jscomp.arrayFromIterable(b)))};
|
|
308
307
|
shaka.util.StreamUtils.filterStreamsByLanguageAndRole=function(a,b,c,d){var e=shaka.util.LanguageUtils,f=a,g=a.filter(function(l){return l.primary});g.length&&(f=g);var h=f.length?f[0].language:"";f=f.filter(function(l){return l.language==h});if(b){var k=e.findClosestLocale(e.normalize(b),a.map(function(l){return l.language}));k&&(f=a.filter(function(l){return e.normalize(l.language)==k}))}f=f.filter(function(l){return l.forced==d});if(c){a=shaka.util.StreamUtils.filterStreamsByRole_(f,c);if(a.length)return a;
|
|
309
308
|
shaka.log.warning("No exact match for the text role could be found.")}else if(a=f.filter(function(l){return 0==l.roles.length}),a.length)return a;a=f.map(function(l){return l.roles}).reduce(shaka.util.Functional.collapseArrays,[]);return a.length?shaka.util.StreamUtils.filterStreamsByRole_(f,a[0]):f};shaka.util.StreamUtils.filterStreamsByRole_=function(a,b){return a.filter(function(c){return c.roles.includes(b)})};shaka.util.StreamUtils.isAudio=function(a){return a.type==shaka.util.ManifestParserUtils.ContentType.AUDIO};
|
|
310
309
|
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.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(", ")};
|
|
311
310
|
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"};goog.exportSymbol("shaka.util.StreamUtils",shaka.util.StreamUtils);
|
|
312
|
-
goog.exportProperty(shaka.util.StreamUtils,"meetsRestrictions",shaka.util.StreamUtils.meetsRestrictions);shaka.util.StreamUtils.decodingConfigCache_={};shaka.util.StreamUtils.nextTrackId_=0;shaka.util.StreamUtils.DecodingAttributes={SMOOTH:"smooth",POWER:"powerEfficient"
|
|
311
|
+
goog.exportProperty(shaka.util.StreamUtils,"meetsRestrictions",shaka.util.StreamUtils.meetsRestrictions);shaka.util.StreamUtils.decodingConfigCache_={};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);shaka.util.StreamUtils.minWebPImage_="data:image/webp;base64,UklGRjoAAABXRUJQVlA4IC4AAACyAgCdASoCAAIALmk0mk0iIiIiIgBoSygABc6WWgAA/veff/0PP8bA//LwYAAA";
|
|
313
312
|
shaka.util.StreamUtils.minAvifImage_="data:image/avif;base64,AAAAIGZ0eXBhdmlmAAAAAGF2aWZtaWYxbWlhZk1BMUIAAADybWV0YQAAAAAAAAAoaGRscgAAAAAAAAAAcGljdAAAAAAAAAAAAAAAAGxpYmF2aWYAAAAADnBpdG0AAAAAAAEAAAAeaWxvYwAAAABEAAABAAEAAAABAAABGgAAAB0AAAAoaWluZgAAAAAAAQAAABppbmZlAgAAAAABAABhdjAxQ29sb3IAAAAAamlwcnAAAABLaXBjbwAAABRpc3BlAAAAAAAAAAIAAAACAAAAEHBpeGkAAAAAAwgICAAAAAxhdjFDgQ0MAAAAABNjb2xybmNseAACAAIAAYAAAAAXaXBtYQAAAAAAAAABAAEEAQKDBAAAACVtZGF0EgAKCBgANogQEAwgMg8f8D///8WfhwB8+ErK42A=";
|
|
314
313
|
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.onNetworkInformationChange_=null;navigator.connection&&navigator.connection.addEventListener&&(this.onNetworkInformationChange_=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();b&&a.switch_(b,a.config_.clearBufferSwitch,
|
|
315
314
|
a.config_.safeMarginSwitch)}},navigator.connection.addEventListener("change",this.onNetworkInformationChange_));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.config_.restrictToElementSize){var b=a.chooseVariant();b&&a.switch_(b,a.config_.clearBufferSwitch,a.config_.safeMarginSwitch)}})};
|
|
316
315
|
shaka.abr.SimpleAbrManager.prototype.stop=function(){this.switch_=null;this.enabled_=!1;this.variants_=[];this.playbackRate_=1;this.mediaElement_=this.lastTimeChosenMs_=null;this.resizeObserver_&&(this.resizeObserver_.disconnect(),this.resizeObserver_=null);this.resizeObserverTimer_.stop()};
|
|
317
316
|
shaka.abr.SimpleAbrManager.prototype.release=function(){navigator.connection&&navigator.connection.removeEventListener&&(navigator.connection.removeEventListener("change",this.onNetworkInformationChange_),this.onNetworkInformationChange_=null);this.resizeObserverTimer_=null};shaka.abr.SimpleAbrManager.prototype.init=function(a){this.switch_=a};
|
|
318
|
-
shaka.abr.SimpleAbrManager.prototype.chooseVariant=function(){var a=shaka.abr.SimpleAbrManager,b=Infinity,c=Infinity;this.config_.restrictToScreenSize
|
|
319
|
-
this.variants_,b,c);c=this.getDefaultBandwidth_();
|
|
320
|
-
l=
|
|
317
|
+
shaka.abr.SimpleAbrManager.prototype.chooseVariant=function(){var a=shaka.abr.SimpleAbrManager,b=Infinity,c=Infinity;if(this.config_.restrictToScreenSize){var d=this.config_.ignoreDevicePixelRatio?1:window.devicePixelRatio;b=window.screen.height*d;c=window.screen.width*d}this.resizeObserver_&&this.config_.restrictToElementSize&&(d=this.config_.ignoreDevicePixelRatio?1:window.devicePixelRatio,b=Math.min(b,this.mediaElement_.clientHeight*d),c=Math.min(c,this.mediaElement_.clientWidth*d));d=a.filterAndSortVariants_(this.config_.restrictions,
|
|
318
|
+
this.variants_,Infinity,Infinity);if(Infinity!=b||Infinity!=c){d=a.getResolutionList_(d);d=$jscomp.makeIterator(d);for(var e=d.next();!e.done;e=d.next())if(e=e.value,e.height>=b&&e.width>=c){b=e.height;c=e.width;break}d=a.filterAndSortVariants_(this.config_.restrictions,this.variants_,b,c)}b=this.getDefaultBandwidth_();b=this.bandwidthEstimator_.getBandwidthEstimate(b);this.variants_.length&&!d.length&&(shaka.log.warning("No variants met the ABR restrictions. Choosing a variant by lowest bandwidth."),
|
|
319
|
+
d=a.filterAndSortVariants_(null,this.variants_,Infinity,Infinity),d=[d[0]]);a=d[0]||null;for(c=0;c<d.length;c++){e=d[c];for(var f=isNaN(this.playbackRate_)?1:Math.abs(this.playbackRate_),g=f*e.bandwidth,h=g/this.config_.bandwidthDowngradeTarget,k={bandwidth:Infinity},l=c+1;l<d.length;l++)if(e.bandwidth!=d[l].bandwidth){k=d[l];break}f=f*k.bandwidth/this.config_.bandwidthUpgradeTarget;shaka.log.v2("Bandwidth ranges:",(g/1E6).toFixed(3),(h/1E6).toFixed(3),(f/1E6).toFixed(3));b>=h&&b<=f&&a.bandwidth!=
|
|
320
|
+
e.bandwidth&&(a=e)}this.lastTimeChosenMs_=Date.now();return a};shaka.abr.SimpleAbrManager.prototype.enable=function(){this.enabled_=!0};shaka.abr.SimpleAbrManager.prototype.disable=function(){this.enabled_=!1};
|
|
321
321
|
shaka.abr.SimpleAbrManager.prototype.segmentDownloaded=function(a,b){shaka.log.v2("Segment downloaded:","deltaTimeMs="+a,"numBytes="+b,"lastTimeChosenMs="+this.lastTimeChosenMs_,"enabled="+this.enabled_);goog.asserts.assert(0<=a,"expected a non-negative duration");this.bandwidthEstimator_.sample(a,b);null!=this.lastTimeChosenMs_&&this.enabled_&&this.suggestStreams_()};shaka.abr.SimpleAbrManager.prototype.getBandwidthEstimate=function(){var a=this.getDefaultBandwidth_();return this.bandwidthEstimator_.getBandwidthEstimate(a)};
|
|
322
322
|
shaka.abr.SimpleAbrManager.prototype.setVariants=function(a){this.variants_=a};shaka.abr.SimpleAbrManager.prototype.playbackRateChanged=function(a){this.playbackRate_=a};
|
|
323
323
|
shaka.abr.SimpleAbrManager.prototype.setMediaElement=function(a){var b=this;this.mediaElement_=a;this.resizeObserver_&&(this.resizeObserver_.disconnect(),this.resizeObserver_=null);this.mediaElement_&&"ResizeObserver"in window&&(this.resizeObserver_=new ResizeObserver(function(){b.resizeObserverTimer_.tickAfter(shaka.abr.SimpleAbrManager.RESIZE_OBSERVER_BATCH_TIME)}),this.resizeObserver_.observe(this.mediaElement_))};
|
|
324
324
|
shaka.abr.SimpleAbrManager.prototype.configure=function(a){this.config_=a;this.bandwidthEstimator_&&this.config_&&this.bandwidthEstimator_.configure(this.config_.advanced)};
|
|
325
325
|
shaka.abr.SimpleAbrManager.prototype.suggestStreams_=function(){shaka.log.v2("Suggesting Streams...");goog.asserts.assert(null!=this.lastTimeChosenMs_,"lastTimeChosenMs_ should not be null");if(!this.startupComplete_){if(!this.bandwidthEstimator_.hasGoodEstimate()){shaka.log.v2("Still waiting for a good estimate...");return}this.startupComplete_=!0}else if(Date.now()-this.lastTimeChosenMs_<1E3*this.config_.switchInterval){shaka.log.v2("Still within switch interval...");return}var a=this.chooseVariant(),
|
|
326
326
|
b=this.getDefaultBandwidth_();b=this.bandwidthEstimator_.getBandwidthEstimate(b);b=Math.round(b/1E3);a&&(shaka.log.debug("Calling switch_(), bandwidth="+b+" kbps"),this.switch_(a,this.config_.clearBufferSwitch,this.config_.safeMarginSwitch))};shaka.abr.SimpleAbrManager.prototype.getDefaultBandwidth_=function(){var a=this.config_.defaultBandwidthEstimate;navigator.connection&&navigator.connection.downlink&&this.config_.useNetworkInformation&&(a=1E6*navigator.connection.downlink);return a};
|
|
327
|
-
shaka.abr.SimpleAbrManager.filterAndSortVariants_=function(a,b,c,d){a&&(b=b.filter(function(e){goog.asserts.assert(a,"Restrictions should exist!");return shaka.util.StreamUtils.meetsRestrictions(e,a,{width:d,height:c})}));return b.sort(function(e,f){return e.bandwidth-f.bandwidth})};
|
|
327
|
+
shaka.abr.SimpleAbrManager.filterAndSortVariants_=function(a,b,c,d){a&&(b=b.filter(function(e){goog.asserts.assert(a,"Restrictions should exist!");return shaka.util.StreamUtils.meetsRestrictions(e,a,{width:d,height:c})}));return b.sort(function(e,f){return e.bandwidth-f.bandwidth})};
|
|
328
|
+
shaka.abr.SimpleAbrManager.getResolutionList_=function(a){var b=[];a=$jscomp.makeIterator(a);for(var c=a.next();!c.done;c=a.next())(c=c.value.video)&&c.height&&c.width&&b.push({height:c.height,width:c.width});return b.sort(function(d,e){return d.width-e.width})};goog.exportSymbol("shaka.abr.SimpleAbrManager",shaka.abr.SimpleAbrManager);goog.exportProperty(shaka.abr.SimpleAbrManager.prototype,"configure",shaka.abr.SimpleAbrManager.prototype.configure);
|
|
328
329
|
goog.exportProperty(shaka.abr.SimpleAbrManager.prototype,"setMediaElement",shaka.abr.SimpleAbrManager.prototype.setMediaElement);goog.exportProperty(shaka.abr.SimpleAbrManager.prototype,"playbackRateChanged",shaka.abr.SimpleAbrManager.prototype.playbackRateChanged);goog.exportProperty(shaka.abr.SimpleAbrManager.prototype,"setVariants",shaka.abr.SimpleAbrManager.prototype.setVariants);goog.exportProperty(shaka.abr.SimpleAbrManager.prototype,"getBandwidthEstimate",shaka.abr.SimpleAbrManager.prototype.getBandwidthEstimate);
|
|
329
330
|
goog.exportProperty(shaka.abr.SimpleAbrManager.prototype,"segmentDownloaded",shaka.abr.SimpleAbrManager.prototype.segmentDownloaded);goog.exportProperty(shaka.abr.SimpleAbrManager.prototype,"disable",shaka.abr.SimpleAbrManager.prototype.disable);goog.exportProperty(shaka.abr.SimpleAbrManager.prototype,"enable",shaka.abr.SimpleAbrManager.prototype.enable);goog.exportProperty(shaka.abr.SimpleAbrManager.prototype,"chooseVariant",shaka.abr.SimpleAbrManager.prototype.chooseVariant);
|
|
330
331
|
goog.exportProperty(shaka.abr.SimpleAbrManager.prototype,"init",shaka.abr.SimpleAbrManager.prototype.init);goog.exportProperty(shaka.abr.SimpleAbrManager.prototype,"release",shaka.abr.SimpleAbrManager.prototype.release);goog.exportProperty(shaka.abr.SimpleAbrManager.prototype,"stop",shaka.abr.SimpleAbrManager.prototype.stop);shaka.abr.SimpleAbrManager.RESIZE_OBSERVER_BATCH_TIME=1;shaka.deprecate={};shaka.deprecate.Version=function(a,b){this.major_=a;this.minor_=b};shaka.deprecate.Version.prototype.major=function(){return this.major_};shaka.deprecate.Version.prototype.minor=function(){return this.minor_};shaka.deprecate.Version.prototype.compareTo=function(a){var b=this.minor_-a.minor_;return this.major_-a.major_||b};shaka.deprecate.Version.prototype.toString=function(){return"v"+this.major_+"."+this.minor_};
|
|
331
332
|
shaka.deprecate.Version.parse=function(a){a=a.substring(1).split(".",2);return new shaka.deprecate.Version(Number(a[0]),Number(a[1]))};shaka.deprecate.Enforcer=function(a,b,c){this.libraryVersion_=a;this.onPending_=b;this.onExpired_=c};shaka.deprecate.Enforcer.prototype.enforce=function(a,b,c){(0<a.compareTo(this.libraryVersion_)?this.onPending_:this.onExpired_)(this.libraryVersion_,a,b,c)};shaka.Deprecate=function(){};shaka.Deprecate.init=function(a){goog.asserts.assert(null==shaka.Deprecate.enforcer_,"Deprecate.init should only be called once.");shaka.Deprecate.enforcer_=new shaka.deprecate.Enforcer(shaka.deprecate.Version.parse(a),shaka.Deprecate.onPending_,shaka.Deprecate.onExpired_)};
|
|
332
333
|
shaka.Deprecate.deprecateFeature=function(a,b,c){var d=shaka.Deprecate.enforcer_;goog.asserts.assert(d,"Missing deprecation enforcer. Was |init| called?");a=new shaka.deprecate.Version(a,0);d.enforce(a,b,c)};shaka.Deprecate.onPending_=function(a,b,c,d){shaka.log.alwaysWarn([c,"has been deprecated and will be removed in",b,". We are currently at version",a,". Additional information:",d].join(" "))};
|
|
333
|
-
shaka.Deprecate.onExpired_=function(a,b,c,d){a=[c,"has been deprecated and has been removed in",b,". We are now at version",a,". Additional information:",d].join("");shaka.log.alwaysError(a);goog.asserts.assert(!1,a)};shaka.Deprecate.enforcer_=null;shaka.config
|
|
334
|
-
shaka.media.AdaptationSet.
|
|
335
|
-
shaka.media.AdaptationSet.
|
|
336
|
-
shaka.media.AdaptationSet.
|
|
334
|
+
shaka.Deprecate.onExpired_=function(a,b,c,d){a=[c,"has been deprecated and has been removed in",b,". We are now at version",a,". Additional information:",d].join("");shaka.log.alwaysError(a);goog.asserts.assert(!1,a)};shaka.Deprecate.enforcer_=null;shaka.config.AutoShowText={NEVER:0,ALWAYS:1,IF_PREFERRED_TEXT_LANGUAGE:2,IF_SUBTITLES_MAY_BE_NEEDED:3};goog.exportSymbol("shaka.config.AutoShowText",shaka.config.AutoShowText);shaka.media.AdaptationSet=function(a,b){this.root_=a;this.variants_=new Set([a]);b=b||[];a=$jscomp.makeIterator(b);for(b=a.next();!b.done;b=a.next())this.add(b.value)};shaka.media.AdaptationSet.prototype.add=function(a,b){if(this.canInclude(a,void 0===b?!0:b))return this.variants_.add(a),!0;shaka.log.warning("Rejecting variant - not compatible with root.");return!1};
|
|
335
|
+
shaka.media.AdaptationSet.prototype.canInclude=function(a,b){return shaka.media.AdaptationSet.areAdaptable(this.root_,a,void 0===b?!0:b)};
|
|
336
|
+
shaka.media.AdaptationSet.areAdaptable=function(a,b,c){c=void 0===c?!0:c;var d=shaka.media.AdaptationSet;if(!!a.audio!=!!b.audio||!!a.video!=!!b.video||a.language!=b.language)return!1;goog.asserts.assert(!!a.audio==!!b.audio,"Both should either have audio or not have audio.");if(a.audio&&b.audio&&!d.areAudiosCompatible_(a.audio,b.audio,c))return!1;goog.asserts.assert(!!a.video==!!b.video,"Both should either have video or not have video.");return a.video&&b.video&&!d.areVideosCompatible_(a.video,b.video,
|
|
337
|
+
c)?!1:!0};shaka.media.AdaptationSet.prototype.values=function(){return this.variants_.values()};shaka.media.AdaptationSet.areAudiosCompatible_=function(a,b,c){var d=shaka.media.AdaptationSet;return(!a.channelsCount||!b.channelsCount||2<a.channelsCount||2<b.channelsCount)&&a.channelsCount!=b.channelsCount||c&&!d.canTransitionBetween_(a,b)||!d.areRolesEqual_(a.roles,b.roles)||a.groupId!==b.groupId?!1:!0};
|
|
338
|
+
shaka.media.AdaptationSet.areVideosCompatible_=function(a,b,c){var d=shaka.media.AdaptationSet;return c&&!d.canTransitionBetween_(a,b)||!d.areRolesEqual_(a.roles,b.roles)?!1:!0};
|
|
337
339
|
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};
|
|
338
|
-
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};shaka.media.AdaptationSetCriteria=function(){};shaka.media.AdaptationSetCriteria.prototype.create=function(a){};shaka.media.ExampleBasedCriteria=function(a){this.example_=a;this.fallback_=new shaka.media.PreferenceBasedCriteria(a.language,"",a.audio&&a.audio.channelsCount?a.audio.channelsCount:0,"","")};
|
|
339
|
-
shaka.media.ExampleBasedCriteria.prototype.create=function(a){var b=this,c=a.filter(function(
|
|
340
|
+
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};shaka.media.AdaptationSetCriteria=function(){};shaka.media.AdaptationSetCriteria.prototype.create=function(a){};shaka.media.ExampleBasedCriteria=function(a,b){b=void 0===b?shaka.config.CodecSwitchingStrategy.RELOAD:b;this.example_=a;this.codecSwitchingStrategy_=b;this.fallback_=new shaka.media.PreferenceBasedCriteria(a.language,"",a.audio&&a.audio.channelsCount?a.audio.channelsCount:0,"","",b)};
|
|
341
|
+
shaka.media.ExampleBasedCriteria.prototype.create=function(a){var b=this,c=this.codecSwitchingStrategy_==shaka.config.CodecSwitchingStrategy.SMOOTH&&shaka.media.Capabilities.isChangeTypeSupported(),d=a.filter(function(e){return shaka.media.AdaptationSet.areAdaptable(b.example_,e,!c)});return d.length?new shaka.media.AdaptationSet(d[0],d):this.fallback_.create(a)};
|
|
342
|
+
shaka.media.PreferenceBasedCriteria=function(a,b,c,d,e,f){f=void 0===f?shaka.config.CodecSwitchingStrategy.RELOAD:f;this.language_=a;this.role_=b;this.channelCount_=c;this.hdrLevel_=d;this.label_=void 0===e?"":e;this.codecSwitchingStrategy_=f};
|
|
340
343
|
shaka.media.PreferenceBasedCriteria.prototype.create=function(a){var b=shaka.media.PreferenceBasedCriteria,c=shaka.util.StreamUtils,d=[];d=b.filterByLanguage_(a,this.language_);var e=a.filter(function(f){return f.primary});d=d.length?d:e.length?e:a;a=b.filterVariantsByRole_(d,this.role_);a.length?d=a:shaka.log.warning("No exact match for variant role could be found.");this.hdrLevel_&&(a=b.filterVariantsByHDRLevel_(d,this.hdrLevel_),a.length?d=a:shaka.log.warning("No exact match for the hdr level could be found."));
|
|
341
|
-
this.channelCount_&&(c=c.filterVariantsByAudioChannelCount(d,this.channelCount_),c.length?d=c:shaka.log.warning("No exact match for the channel count could be found."));this.label_&&(b=b.filterVariantsByLabel_(d,this.label_),b.length?d=b:shaka.log.warning("No exact match for variant label could be found."));b=new shaka.media.AdaptationSet(d[0]);d=$jscomp.makeIterator(d);for(
|
|
342
|
-
shaka.media.PreferenceBasedCriteria.filterByLanguage_=function(a,b){var c=shaka.util.LanguageUtils;b=c.normalize(b);var d=c.findClosestLocale(b,a.map(function(e){return c.getLocaleForVariant(e)}));return d?a.filter(function(e){return d==c.getLocaleForVariant(e)}):[]};shaka.media.PreferenceBasedCriteria.filterVariantsByRole_=function(a,b){return a.filter(function(c){return c.audio?b?c.audio.roles.includes(b):0==c.audio.roles.length:!1})};
|
|
344
|
+
this.channelCount_&&(c=c.filterVariantsByAudioChannelCount(d,this.channelCount_),c.length?d=c:shaka.log.warning("No exact match for the channel count could be found."));this.label_&&(b=b.filterVariantsByLabel_(d,this.label_),b.length?d=b:shaka.log.warning("No exact match for variant label could be found."));b=this.codecSwitchingStrategy_==shaka.config.CodecSwitchingStrategy.SMOOTH&&shaka.media.Capabilities.isChangeTypeSupported();c=new shaka.media.AdaptationSet(d[0]);d=$jscomp.makeIterator(d);for(a=
|
|
345
|
+
d.next();!a.done;a=d.next())c.add(a.value,!b);return c};shaka.media.PreferenceBasedCriteria.filterByLanguage_=function(a,b){var c=shaka.util.LanguageUtils;b=c.normalize(b);var d=c.findClosestLocale(b,a.map(function(e){return c.getLocaleForVariant(e)}));return d?a.filter(function(e){return d==c.getLocaleForVariant(e)}):[]};shaka.media.PreferenceBasedCriteria.filterVariantsByRole_=function(a,b){return a.filter(function(c){return c.audio?b?c.audio.roles.includes(b):0==c.audio.roles.length:!1})};
|
|
343
346
|
shaka.media.PreferenceBasedCriteria.filterVariantsByLabel_=function(a,b){return a.filter(function(c){if(!c.audio||!c.audio.label)return!1;c=c.audio.label.toLowerCase();var d=b.toLowerCase();return c==d})};shaka.media.PreferenceBasedCriteria.filterVariantsByHDRLevel_=function(a,b){"AUTO"==b&&(b=window.matchMedia("(color-gamut: p3)").matches?"PQ":"SDR");return a.filter(function(c){return c.video&&c.video.hdr&&c.video.hdr!=b?!1:!0})};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)};shaka.media.BufferingObserver.prototype.setThresholds=function(a,b){var c=shaka.media.BufferingObserver.State;this.thresholds_.set(c.SATISFIED,b).set(c.STARVING,a)};
|
|
344
347
|
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?c.SATISFIED:c.STARVING;return e!=a};shaka.media.BufferingObserver.prototype.setState=function(a){this.previousState_=a};shaka.media.BufferingObserver.prototype.getState=function(){return this.previousState_};shaka.media.BufferingObserver.State={STARVING:0,SATISFIED:1};shaka.net={};
|
|
345
348
|
shaka.net.Backoff=function(a,b){b=void 0===b?!1:b;var c=shaka.net.Backoff.defaultRetryParameters();this.maxAttempts_=null==a.maxAttempts?c.maxAttempts:a.maxAttempts;goog.asserts.assert(1<=this.maxAttempts_,"maxAttempts should be >= 1");this.baseDelay_=null==a.baseDelay?c.baseDelay:a.baseDelay;goog.asserts.assert(0<=this.baseDelay_,"baseDelay should be >= 0");this.fuzzFactor_=null==a.fuzzFactor?c.fuzzFactor:a.fuzzFactor;goog.asserts.assert(0<=this.fuzzFactor_,"fuzzFactor should be >= 0");this.backoffFactor_=
|
|
@@ -355,8 +358,8 @@ goog.exportProperty(shaka.util.AbortableOperation.prototype,"finally",shaka.util
|
|
|
355
358
|
goog.exportProperty(shaka.util.AbortableOperation,"aborted",shaka.util.AbortableOperation.aborted);goog.exportProperty(shaka.util.AbortableOperation,"failed",shaka.util.AbortableOperation.failed);shaka.util.FakeEvent=function(a,b){if(b)if(b instanceof Map)for(var c=$jscomp.makeIterator(b.keys()),d=c.next();!d.done;d=c.next())d=d.value,Object.defineProperty(this,d,{value:b.get(d),writable:!0,enumerable:!0});else for(c in b=shaka.util.FakeEvent.recastDictAsObject_(b),b)Object.defineProperty(this,c,{value:b[c],writable:!0,enumerable:!0});this.defaultPrevented=this.cancelable=this.bubbles=!1;this.timeStamp=window.performance&&window.performance.now?window.performance.now():Date.now();this.type=
|
|
356
359
|
a;this.isTrusted=!1;this.target=this.currentTarget=null;this.stopped=!1};shaka.util.FakeEvent.fromRealEvent=function(a){var b=new shaka.util.FakeEvent(a.type),c;for(c in a)Object.defineProperty(b,c,{value:a[c],writable:!0,enumerable:!0});return b};shaka.util.FakeEvent.recastDictAsObject_=function(a){goog.asserts.assert(!(a instanceof Map),"dict should not be a map");return a};shaka.util.FakeEvent.prototype.preventDefault=function(){this.cancelable&&(this.defaultPrevented=!0)};
|
|
357
360
|
shaka.util.FakeEvent.prototype.stopImmediatePropagation=function(){this.stopped=!0};shaka.util.FakeEvent.prototype.stopPropagation=function(){};goog.exportSymbol("shaka.util.FakeEvent",shaka.util.FakeEvent);
|
|
358
|
-
shaka.util.FakeEvent.EventName={AbrStatusChanged:"abrstatuschanged",Adaptation:"adaptation",Buffering:"buffering",DownloadFailed:"downloadfailed",DownloadHeadersReceived:"downloadheadersreceived",DrmSessionUpdate:"drmsessionupdate",Emsg:"emsg",Prft:"prft",Error:"error",ExpirationUpdated:"expirationupdated",GapJumped:"gapjumped",Loaded:"loaded",Loading:"loading",ManifestParsed:"manifestparsed",
|
|
359
|
-
RateChange:"ratechange",SegmentAppended:"segmentappended",SessionDataEvent:"sessiondata",StallDetected:"stalldetected",Streaming:"streaming",TextChanged:"textchanged",TextTrackVisibility:"texttrackvisibility",TimelineRegionAdded:"timelineregionadded",TimelineRegionEnter:"timelineregionenter",TimelineRegionExit:"timelineregionexit",TracksChanged:"trackschanged",Unloading:"unloading",VariantChanged:"variantchanged"};shaka.util.FakeEventTarget=function(){this.listeners_=new shaka.util.MultiMap;this.dispatchTarget=this};shaka.util.FakeEventTarget.prototype.addEventListener=function(a,b,c){this.listeners_&&this.listeners_.push(a,b)};shaka.util.FakeEventTarget.prototype.listenToAllEvents=function(a){this.addEventListener(shaka.util.FakeEventTarget.ALL_EVENTS_,a)};shaka.util.FakeEventTarget.prototype.removeEventListener=function(a,b,c){this.listeners_&&this.listeners_.remove(a,b)};
|
|
361
|
+
shaka.util.FakeEvent.EventName={AbrStatusChanged:"abrstatuschanged",Adaptation:"adaptation",Buffering:"buffering",DownloadFailed:"downloadfailed",DownloadHeadersReceived:"downloadheadersreceived",DrmSessionUpdate:"drmsessionupdate",Emsg:"emsg",Prft:"prft",Error:"error",ExpirationUpdated:"expirationupdated",GapJumped:"gapjumped",KeyStatusChanged:"keystatuschanged",Loaded:"loaded",Loading:"loading",ManifestParsed:"manifestparsed",ManifestUpdated:"manifestupdated",MediaQualityChanged:"mediaqualitychanged",
|
|
362
|
+
Metadata:"metadata",OnStateChange:"onstatechange",OnStateIdle:"onstateidle",RateChange:"ratechange",SegmentAppended:"segmentappended",SessionDataEvent:"sessiondata",StallDetected:"stalldetected",StateChanged:"statechanged",Streaming:"streaming",TextChanged:"textchanged",TextTrackVisibility:"texttrackvisibility",TimelineRegionAdded:"timelineregionadded",TimelineRegionEnter:"timelineregionenter",TimelineRegionExit:"timelineregionexit",TracksChanged:"trackschanged",Unloading:"unloading",VariantChanged:"variantchanged"};shaka.util.FakeEventTarget=function(){this.listeners_=new shaka.util.MultiMap;this.dispatchTarget=this};shaka.util.FakeEventTarget.prototype.addEventListener=function(a,b,c){this.listeners_&&this.listeners_.push(a,b)};shaka.util.FakeEventTarget.prototype.listenToAllEvents=function(a){this.addEventListener(shaka.util.FakeEventTarget.ALL_EVENTS_,a)};shaka.util.FakeEventTarget.prototype.removeEventListener=function(a,b,c){this.listeners_&&this.listeners_.remove(a,b)};
|
|
360
363
|
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",
|
|
361
364
|
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.ObjectUtils=function(){};shaka.util.ObjectUtils.cloneObject=function(a){var b=new Set,c=function(d){switch(typeof d){case "undefined":case "boolean":case "number":case "string":case "symbol":case "function":return d;default:if(!d||d.buffer&&d.buffer.constructor==ArrayBuffer)return d;if(b.has(d))return null;var e=d.constructor==Array;if(d.constructor!=Object&&!e)return null;b.add(d);var f=e?[]:{},g;for(g in d)f[g]=c(d[g]);e&&(f.length=d.length);return f}};return c(a)};
|
|
362
365
|
shaka.util.ObjectUtils.shallowCloneObject=function(a){var b={},c;for(c in a)b[c]=a[c];return b};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){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.onDownloadFailed_=c||null;this.onRequest_=d||null;this.forceHTTPS_=!1};$jscomp.inherits(shaka.net.NetworkingEngine,shaka.util.FakeEventTarget);
|
|
@@ -370,18 +373,18 @@ Date.now()-m,r=p.response;r.timeMs+=l;r.timeMs+=q;if(!p.gotProgress&&d.onProgres
|
|
|
370
373
|
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,
|
|
371
374
|
shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.REQUEST_FILTER_ERROR,h);})};shaka.net.NetworkingEngine.prototype.makeRequestWithRetry_=function(a,b,c){var d=new shaka.net.Backoff(b.retryParameters,!1);return this.send_(a,b,d,0,null,c)};
|
|
372
375
|
shaka.net.NetworkingEngine.prototype.send_=function(a,b,c,d,e,f){var g=this;this.forceHTTPS_&&(b.uris[d]=b.uris[d].replace("http://","https://"));var h=new goog.Uri(b.uris[d]),k=h.getScheme(),l=!1;k||(k=shaka.net.NetworkingEngine.getLocationProtocol_(),goog.asserts.assert(":"==k[k.length-1],"location.protocol expected to end with a colon!"),k=k.slice(0,-1),h.setScheme(k),b.uris[d]=h.toString());k=k.toLowerCase();var m=(k=shaka.net.NetworkingEngine.schemes_[k])?k.plugin:null;if(!m)return shaka.util.AbortableOperation.failed(new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
|
|
373
|
-
shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.UNSUPPORTED_SCHEME,h));var n=k.progressSupport,p=null,q=null,r=!1,t=!1,
|
|
374
|
-
b,a);t=!0});if(!n)return
|
|
375
|
-
null,x=0;u instanceof shaka.util.Error&&(
|
|
376
|
-
"Should have last error"),e;if(u.severity==shaka.util.Error.Severity.RECOVERABLE)return
|
|
377
|
-
shaka.net.NetworkingEngine.prototype.filterResponse_=function(a,b,c){for(var d=shaka.util.AbortableOperation.completed(void 0),e={},f=$jscomp.makeIterator(this.responseFilters_),g=f.next();!g.done;e={$jscomp$loop$prop$responseFilter$
|
|
376
|
+
shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.UNSUPPORTED_SCHEME,h));var n=k.progressSupport,p=null,q=null,r=!1,t=!1,v;return shaka.util.AbortableOperation.notAbortable(c.attempt()).chain(function(){if(g.destroyed_)return shaka.util.AbortableOperation.aborted();v=Date.now();var u=shaka.net.NetworkingEngine.RequestType.SEGMENT,w=m(b.uris[d],b,a,function(z,A,C){p&&p.stop();q&&q.tickAfter(y/1E3);g.onProgressUpdated_&&a==u&&(g.onProgressUpdated_(z,A),l=!0,f.setBytes(C))},function(z){if(g.onHeadersReceived_)g.onHeadersReceived_(z,
|
|
377
|
+
b,a);t=!0});if(!n)return w;var x=b.retryParameters.connectionTimeout;x&&(p=new shaka.util.Timer(function(){r=!0;w.abort()}),p.tickAfter(x/1E3));var y=b.retryParameters.stallTimeout;y&&(q=new shaka.util.Timer(function(){r=!0;w.abort()}));return w}).chain(function(u){p&&p.stop();q&&q.stop();void 0==u.timeMs&&(u.timeMs=Date.now()-v);var w={response:u,gotProgress:l};if(!t&&g.onHeadersReceived_)g.onHeadersReceived_(u.headers,b,a);return w},function(u){p&&p.stop();q&&q.stop();if(g.onDownloadFailed_){var w=
|
|
378
|
+
null,x=0;u instanceof shaka.util.Error&&(w=u,u.code==shaka.util.Error.Code.BAD_HTTP_STATUS&&(x=u.data[1]));g.onDownloadFailed_(b,w,x,r)}if(g.destroyed_)return shaka.util.AbortableOperation.aborted();r&&(u=new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.TIMEOUT,b.uris[d],a));if(u instanceof shaka.util.Error){if(u.code==shaka.util.Error.Code.OPERATION_ABORTED)throw u;if(u.code==shaka.util.Error.Code.ATTEMPTS_EXHAUSTED)throw goog.asserts.assert(e,
|
|
379
|
+
"Should have last error"),e;if(u.severity==shaka.util.Error.Severity.RECOVERABLE)return w=(new Map).set("error",u),w=new shaka.util.FakeEvent("retry",w),g.dispatchEvent(w),d=(d+1)%b.uris.length,g.send_(a,b,c,d,u,f)}throw u;})};
|
|
380
|
+
shaka.net.NetworkingEngine.prototype.filterResponse_=function(a,b,c){for(var d=shaka.util.AbortableOperation.completed(void 0),e={},f=$jscomp.makeIterator(this.responseFilters_),g=f.next();!g.done;e={$jscomp$loop$prop$responseFilter$749:e.$jscomp$loop$prop$responseFilter$749},g=f.next())e.$jscomp$loop$prop$responseFilter$749=g.value,d=d.chain(function(h){return function(){var k=b.response;k.data&&(k.data=shaka.util.BufferUtils.toArrayBuffer(k.data));return h.$jscomp$loop$prop$responseFilter$749(a,
|
|
378
381
|
k,c)}}(e));return d.chain(function(){return b},function(h){var k=shaka.util.Error.Severity.CRITICAL;if(h instanceof shaka.util.Error){if(h.code==shaka.util.Error.Code.OPERATION_ABORTED)throw h;k=h.severity}throw new shaka.util.Error(k,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.RESPONSE_FILTER_ERROR,h);})};shaka.net.NetworkingEngine.getLocationProtocol_=function(){return location.protocol};goog.exportSymbol("shaka.net.NetworkingEngine",shaka.net.NetworkingEngine);
|
|
379
382
|
goog.exportProperty(shaka.net.NetworkingEngine.prototype,"request",shaka.net.NetworkingEngine.prototype.request);goog.exportProperty(shaka.net.NetworkingEngine.prototype,"destroy",shaka.net.NetworkingEngine.prototype.destroy);goog.exportProperty(shaka.net.NetworkingEngine,"makeRequest",shaka.net.NetworkingEngine.makeRequest);goog.exportProperty(shaka.net.NetworkingEngine,"defaultRetryParameters",shaka.net.NetworkingEngine.defaultRetryParameters);
|
|
380
383
|
goog.exportProperty(shaka.net.NetworkingEngine.prototype,"clearAllResponseFilters",shaka.net.NetworkingEngine.prototype.clearAllResponseFilters);goog.exportProperty(shaka.net.NetworkingEngine.prototype,"unregisterResponseFilter",shaka.net.NetworkingEngine.prototype.unregisterResponseFilter);goog.exportProperty(shaka.net.NetworkingEngine.prototype,"registerResponseFilter",shaka.net.NetworkingEngine.prototype.registerResponseFilter);
|
|
381
384
|
goog.exportProperty(shaka.net.NetworkingEngine.prototype,"clearAllRequestFilters",shaka.net.NetworkingEngine.prototype.clearAllRequestFilters);goog.exportProperty(shaka.net.NetworkingEngine.prototype,"unregisterRequestFilter",shaka.net.NetworkingEngine.prototype.unregisterRequestFilter);goog.exportProperty(shaka.net.NetworkingEngine.prototype,"registerRequestFilter",shaka.net.NetworkingEngine.prototype.registerRequestFilter);goog.exportProperty(shaka.net.NetworkingEngine,"unregisterScheme",shaka.net.NetworkingEngine.unregisterScheme);
|
|
382
385
|
goog.exportProperty(shaka.net.NetworkingEngine,"registerScheme",shaka.net.NetworkingEngine.registerScheme);goog.exportProperty(shaka.net.NetworkingEngine.prototype,"setForceHTTPS",shaka.net.NetworkingEngine.prototype.setForceHTTPS);shaka.net.NetworkingEngine.NumBytesRemainingClass=function(){this.bytesToLoad_=0};shaka.net.NetworkingEngine.NumBytesRemainingClass.prototype.setBytes=function(a){this.bytesToLoad_=a};shaka.net.NetworkingEngine.NumBytesRemainingClass.prototype.getBytes=function(){return this.bytesToLoad_};
|
|
383
386
|
goog.exportProperty(shaka.net.NetworkingEngine,"NumBytesRemainingClass",shaka.net.NetworkingEngine.NumBytesRemainingClass);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()};
|
|
384
|
-
goog.exportProperty(shaka.net.NetworkingEngine,"PendingRequest",shaka.net.NetworkingEngine.PendingRequest);shaka.net.NetworkingEngine.RequestType={MANIFEST:0,SEGMENT:1,LICENSE:2,APP:3,TIMING:4,SERVER_CERTIFICATE:5,KEY:6};goog.exportProperty(shaka.net.NetworkingEngine,"RequestType",shaka.net.NetworkingEngine.RequestType);shaka.net.NetworkingEngine.AdvancedRequestType={INIT_SEGMENT:0,MEDIA_SEGMENT:1,MEDIA_PLAYLIST:2,MASTER_PLAYLIST:3,MPD:4,MSS:5};
|
|
387
|
+
goog.exportProperty(shaka.net.NetworkingEngine,"PendingRequest",shaka.net.NetworkingEngine.PendingRequest);shaka.net.NetworkingEngine.RequestType={MANIFEST:0,SEGMENT:1,LICENSE:2,APP:3,TIMING:4,SERVER_CERTIFICATE:5,KEY:6,ADS:7};goog.exportProperty(shaka.net.NetworkingEngine,"RequestType",shaka.net.NetworkingEngine.RequestType);shaka.net.NetworkingEngine.AdvancedRequestType={INIT_SEGMENT:0,MEDIA_SEGMENT:1,MEDIA_PLAYLIST:2,MASTER_PLAYLIST:3,MPD:4,MSS:5};
|
|
385
388
|
goog.exportProperty(shaka.net.NetworkingEngine,"AdvancedRequestType",shaka.net.NetworkingEngine.AdvancedRequestType);shaka.net.NetworkingEngine.PluginPriority={FALLBACK:1,PREFERRED:2,APPLICATION:3};goog.exportProperty(shaka.net.NetworkingEngine,"PluginPriority",shaka.net.NetworkingEngine.PluginPriority);shaka.net.NetworkingEngine.schemes_={};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()})};
|
|
386
389
|
shaka.util.Destroyer.prototype.ensureNotDestroyed=function(a){if(this.destroyed_){if(a instanceof shaka.util.Error&&a.code==shaka.util.Error.Code.OBJECT_DESTROYED)throw a;throw shaka.util.Destroyer.destroyedError(a);}};shaka.util.Destroyer.destroyedError=function(a){return new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.PLAYER,shaka.util.Error.Code.OBJECT_DESTROYED,a)};shaka.util.EventManager=function(){this.bindingMap_=new shaka.util.MultiMap};shaka.util.EventManager.prototype.release=function(){this.removeAll();this.bindingMap_=null};shaka.util.EventManager.prototype.listen=function(a,b,c,d){this.bindingMap_&&(a=new shaka.util.EventManager.Binding_(a,b,c,d),this.bindingMap_.push(b,a))};shaka.util.EventManager.prototype.listenOnce=function(a,b,c,d){var e=this,f=function(g){e.unlisten(a,b,f);c(g)};this.listen(a,b,f,d)};
|
|
387
390
|
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()}};
|
|
@@ -400,8 +403,8 @@ if(0==c[1]&&0==c[3])return b.fromUTF16(a,!0);if(d(0)&&d(1)&&d(2)&&d(3))return b.
|
|
|
400
403
|
shaka.util.StringUtils.toUTF8=function(a){if(window.TextEncoder&&!shaka.util.Platform.isPS4()){var b=new TextEncoder;return shaka.util.BufferUtils.toArrayBuffer(b.encode(a))}a=encodeURIComponent(a);a=unescape(a);b=new Uint8Array(a.length);for(var c=0;c<a.length;c++)b[c]=a[c].charCodeAt(0);return shaka.util.BufferUtils.toArrayBuffer(b)};shaka.util.StringUtils.toUTF16=function(a,b){for(var c=new ArrayBuffer(2*a.length),d=new DataView(c),e=0;e<a.length;++e){var f=a.charCodeAt(e);d.setUint16(2*e,f,b)}return c};
|
|
401
404
|
shaka.util.StringUtils.fromCharCode=function(a){return shaka.util.StringUtils.fromCharCodeImpl_.value()(a)};shaka.util.StringUtils.resetFromCharCode=function(){shaka.util.StringUtils.fromCharCodeImpl_.reset()};goog.exportSymbol("shaka.util.StringUtils",shaka.util.StringUtils);goog.exportProperty(shaka.util.StringUtils,"resetFromCharCode",shaka.util.StringUtils.resetFromCharCode);goog.exportProperty(shaka.util.StringUtils,"toUTF16",shaka.util.StringUtils.toUTF16);
|
|
402
405
|
goog.exportProperty(shaka.util.StringUtils,"toUTF8",shaka.util.StringUtils.toUTF8);goog.exportProperty(shaka.util.StringUtils,"fromBytesAutoDetect",shaka.util.StringUtils.fromBytesAutoDetect);goog.exportProperty(shaka.util.StringUtils,"fromUTF16",shaka.util.StringUtils.fromUTF16);goog.exportProperty(shaka.util.StringUtils,"fromUTF8",shaka.util.StringUtils.fromUTF8);
|
|
403
|
-
shaka.util.StringUtils.fromCharCodeImpl_=new shaka.util.Lazy(function(){for(var a=function(c){try{var d=new Uint8Array(c),e=String.fromCharCode.apply(null,d);goog.asserts.assert(e,"Should get value");return 0<e.length}catch(f){return!1}},b={$jscomp$loop$prop$size$
|
|
404
|
-
c.$jscomp$loop$prop$size$
|
|
406
|
+
shaka.util.StringUtils.fromCharCodeImpl_=new shaka.util.Lazy(function(){for(var a=function(c){try{var d=new Uint8Array(c),e=String.fromCharCode.apply(null,d);goog.asserts.assert(e,"Should get value");return 0<e.length}catch(f){return!1}},b={$jscomp$loop$prop$size$751:65536};0<b.$jscomp$loop$prop$size$751;b={$jscomp$loop$prop$size$751:b.$jscomp$loop$prop$size$751},b.$jscomp$loop$prop$size$751/=2)if(a(b.$jscomp$loop$prop$size$751))return function(c){return function(d){for(var e="",f=0;f<d.length;f+=
|
|
407
|
+
c.$jscomp$loop$prop$size$751){var g=d.subarray(f,f+c.$jscomp$loop$prop$size$751);e+=String.fromCharCode.apply(null,g)}return e}}(b);goog.asserts.assert(!1,"Unable to create a fromCharCode method");return null});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_};
|
|
405
408
|
shaka.util.DataViewReader.prototype.getLength=function(){return this.dataView_.byteLength};shaka.util.DataViewReader.prototype.readUint8=function(){try{var a=this.dataView_.getUint8(this.position_);this.position_+=1;return a}catch(b){throw this.outOfBounds_();}};shaka.util.DataViewReader.prototype.readUint16=function(){try{var a=this.dataView_.getUint16(this.position_,this.littleEndian_);this.position_+=2;return a}catch(b){throw this.outOfBounds_();}};
|
|
406
409
|
shaka.util.DataViewReader.prototype.readUint32=function(){try{var a=this.dataView_.getUint32(this.position_,this.littleEndian_);this.position_+=4;return a}catch(b){throw this.outOfBounds_();}};shaka.util.DataViewReader.prototype.readInt32=function(){try{var a=this.dataView_.getInt32(this.position_,this.littleEndian_);this.position_+=4;return a}catch(b){throw this.outOfBounds_();}};
|
|
407
410
|
shaka.util.DataViewReader.prototype.readUint64=function(){try{if(this.littleEndian_){var a=this.dataView_.getUint32(this.position_,!0);var b=this.dataView_.getUint32(this.position_+4,!0)}else b=this.dataView_.getUint32(this.position_,!1),a=this.dataView_.getUint32(this.position_+4,!1)}catch(c){throw this.outOfBounds_();}if(2097151<b)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MEDIA,shaka.util.Error.Code.JS_INTEGER_OVERFLOW);this.position_+=8;return b*Math.pow(2,
|
|
@@ -429,7 +432,7 @@ shaka.util.Pssh.prototype.parsePsshBox_=function(a){goog.asserts.assert(null!=a.
|
|
|
429
432
|
if(0<a.version){b=a.reader.readUint32();for(var c=0;c<b;c++){var d=shaka.util.Uint8ArrayUtils.toHex(a.reader.readBytes(16));this.cencKeyIds.push(d)}}}};
|
|
430
433
|
shaka.util.Pssh.createPssh=function(a,b,c,d){goog.asserts.assert(16==b.byteLength,"Invalid system ID length");var e=a.length,f=12+b.length+4+e;0<d&&(f+=4+16*c.size);var g=new Uint8Array(f),h=shaka.util.BufferUtils.toDataView(g),k=0;h.setUint32(k,f);k+=4;h.setUint32(k,1886614376);k+=4;1>d?h.setUint32(k,0):h.setUint32(k,16777216);k+=4;g.set(b,k);k+=b.length;if(0<d)for(h.setUint32(k,c.size),k+=4,b=shaka.util.Uint8ArrayUtils,c=$jscomp.makeIterator(c),d=c.next();!d.done;d=c.next())d=b.fromHex(d.value),
|
|
431
434
|
g.set(d,k),k+=d.length;h.setUint32(k,e);k+=4;g.set(a,k);goog.asserts.assert(k+e===f,"PSSH invalid length.");return g};
|
|
432
|
-
shaka.util.Pssh.normaliseInitData=function(a){if(!a)return a;var b=new shaka.util.Pssh(a);if(1>=b.data.length)return a;a=[];var c={};b=$jscomp.makeIterator(b.data);for(var d=b.next();!d.done;c={$jscomp$loop$prop$initData$
|
|
435
|
+
shaka.util.Pssh.normaliseInitData=function(a){if(!a)return a;var b=new shaka.util.Pssh(a);if(1>=b.data.length)return a;a=[];var c={};b=$jscomp.makeIterator(b.data);for(var d=b.next();!d.done;c={$jscomp$loop$prop$initData$499$753:c.$jscomp$loop$prop$initData$499$753},d=b.next())c.$jscomp$loop$prop$initData$499$753=d.value,a.some(function(e){return function(f){return shaka.util.BufferUtils.equal(f,e.$jscomp$loop$prop$initData$499$753)}}(c))||a.push(c.$jscomp$loop$prop$initData$499$753);return shaka.util.Uint8ArrayUtils.concat.apply(shaka.util.Uint8ArrayUtils,
|
|
433
436
|
$jscomp.arrayFromIterable(a))};shaka.util.XmlUtils=function(){};shaka.util.XmlUtils.findChild=function(a,b){a=shaka.util.XmlUtils.findChildren(a,b);return 1!=a.length?null:a[0]};shaka.util.XmlUtils.findChildNS=function(a,b,c){a=shaka.util.XmlUtils.findChildrenNS(a,b,c);return 1!=a.length?null:a[0]};shaka.util.XmlUtils.findChildren=function(a,b){var c=[];a=$jscomp.makeIterator(a.childNodes);for(var d=a.next();!d.done;d=a.next())d=d.value,d instanceof Element&&d.tagName==b&&c.push(d);return c};
|
|
434
437
|
shaka.util.XmlUtils.getChildren=function(a){return Array.from(a.childNodes).filter(function(b){return b instanceof Element})};shaka.util.XmlUtils.findChildrenNS=function(a,b,c){var d=[];a=$jscomp.makeIterator(a.childNodes);for(var e=a.next();!e.done;e=a.next())e=e.value,e instanceof Element&&e.localName==c&&e.namespaceURI==b&&d.push(e);return d};shaka.util.XmlUtils.getAttributeNS=function(a,b,c){return a.hasAttributeNS(b,c)?a.getAttributeNS(b,c):null};
|
|
435
438
|
shaka.util.XmlUtils.getAttributeNSList=function(a,b,c){b=$jscomp.makeIterator(b);for(var d=b.next();!d.done;d=b.next())if(d=d.value,a.hasAttributeNS(d,c))return a.getAttributeNS(d,c);return null};shaka.util.XmlUtils.getContents=function(a){var b=shaka.util.XmlUtils;return Array.from(a.childNodes).every(b.isText)?a.textContent.trim():null};shaka.util.XmlUtils.isText=function(a){return a.nodeType==Node.TEXT_NODE||a.nodeType==Node.CDATA_SECTION_NODE};
|
|
@@ -448,9 +451,9 @@ shaka.media.DrmEngine.prototype.setSrcEquals=function(a){this.srcEquals_=a};shak
|
|
|
448
451
|
shaka.media.DrmEngine.prototype.initForPlayback=function(a,b){this.storedPersistentSessions_=new Map;b=$jscomp.makeIterator(b);for(var c=b.next();!c.done;c=b.next())this.storedPersistentSessions_.set(c.value,{initData:null,initDataType:null});b=$jscomp.makeIterator(this.config_.persistentSessionsMetadata);for(c=b.next();!c.done;c=b.next())c=c.value,this.storedPersistentSessions_.set(c.sessionId,{initData:c.initData,initDataType:c.initDataType});this.usePersistentLicenses_=0<this.storedPersistentSessions_.size;
|
|
449
452
|
return this.init_(a)};
|
|
450
453
|
shaka.media.DrmEngine.prototype.initForRemoval=function(a,b,c,d,e){var f=new Map;d={audioCapabilities:d,videoCapabilities:e,distinctiveIdentifier:"optional",persistentState:"required",sessionTypes:["persistent-license"],label:a};d.drmInfos=[{keySystem:a,licenseServerUri:b,distinctiveIdentifierRequired:!1,persistentStateRequired:!0,audioRobustness:"",videoRobustness:"",serverCertificate:c,serverCertificateUri:"",initData:null,keyIds:null}];f.set(a,d);return this.queryMediaKeys_(f,[])};
|
|
451
|
-
shaka.media.DrmEngine.prototype.init_=function(a){var b=this,c,d,e,f,g,h,k,l,m,n,p,q,r,t,
|
|
452
|
-
!0:!1});g||(h=shaka.util.MapUtils.asMap(b.config_.servers),shaka.media.DrmEngine.replaceDrmInfo_(a,h));k=new Set;l=$jscomp.makeIterator(a);for(e=l.next();!e.done;e=l.next())for(m=e.value,n=b.getVariantDrmInfos_(m),p=$jscomp.makeIterator(n),q=p.next();!q.done;q=p.next())r=q.value,k.add(r);t=$jscomp.makeIterator(k);for(q=t.next();!q.done;q=t.next())
|
|
453
|
-
b.config_.keySystemsMapping);return x.yield(shaka.util.StreamUtils.getDecodingInfosForVariants(a,b.usePersistentLicenses_,b.srcEquals_,b.config_.preferredKeySystems),2)}u=g||Object.keys(b.config_.servers).length;if(!u)return b.initialized_=!0,x.return(Promise.resolve());
|
|
454
|
+
shaka.media.DrmEngine.prototype.init_=function(a){var b=this,c,d,e,f,g,h,k,l,m,n,p,q,r,t,v,u,w;return $jscomp.asyncExecutePromiseGeneratorProgram(function(x){if(1==x.nextAddress){goog.asserts.assert(b.config_,"DrmEngine configure() must be called before init()!");if(c=b.configureClearKey_())for(d=$jscomp.makeIterator(a),e=d.next();!e.done;e=d.next())f=e.value,f.video&&(f.video.drmInfos=[c]),f.audio&&(f.audio.drmInfos=[c]);g=a.some(function(y){return y.video&&y.video.drmInfos.length||y.audio&&y.audio.drmInfos.length?
|
|
455
|
+
!0:!1});g||(h=shaka.util.MapUtils.asMap(b.config_.servers),shaka.media.DrmEngine.replaceDrmInfo_(a,h));k=new Set;l=$jscomp.makeIterator(a);for(e=l.next();!e.done;e=l.next())for(m=e.value,n=b.getVariantDrmInfos_(m),p=$jscomp.makeIterator(n),q=p.next();!q.done;q=p.next())r=q.value,k.add(r);t=$jscomp.makeIterator(k);for(q=t.next();!q.done;q=t.next())v=q.value,shaka.media.DrmEngine.fillInDrmInfoDefaults_(v,shaka.util.MapUtils.asMap(b.config_.servers),shaka.util.MapUtils.asMap(b.config_.advanced||{}),
|
|
456
|
+
b.config_.keySystemsMapping);return x.yield(shaka.util.StreamUtils.getDecodingInfosForVariants(a,b.usePersistentLicenses_,b.srcEquals_,b.config_.preferredKeySystems),2)}u=g||Object.keys(b.config_.servers).length;if(!u)return b.initialized_=!0,x.return(Promise.resolve());w=b.queryMediaKeys_(void 0,a);return x.return(g?w:w.catch(function(){}))})};
|
|
454
457
|
shaka.media.DrmEngine.prototype.attachMediaKeys_=function(){var a=this,b;return $jscomp.asyncExecutePromiseGeneratorProgram(function(c){switch(c.nextAddress){case 1:if(a.video_.mediaKeys)return c.return();if(!a.mediaKeysAttached_){c.jumpTo(2);break}return c.yield(a.mediaKeysAttached_,3);case 3:return a.destroyer_.ensureNotDestroyed(),c.return();case 2:return c.setCatchFinallyBlocks(4),a.mediaKeysAttached_=a.video_.setMediaKeys(a.mediaKeys_),c.yield(a.mediaKeysAttached_,6);case 6:c.leaveTryBlock(5);
|
|
455
458
|
break;case 4:b=c.enterCatchBlock(),goog.asserts.assert(b instanceof Error,"Wrong error type!"),a.onError_(new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.DRM,shaka.util.Error.Code.FAILED_TO_ATTACH_TO_VIDEO,b.message));case 5:a.destroyer_.ensureNotDestroyed(),c.jumpToEnd()}})};
|
|
456
459
|
shaka.media.DrmEngine.prototype.onEncryptedEvent_=function(a){var b=this;return $jscomp.asyncExecutePromiseGeneratorProgram(function(c){if(1==c.nextAddress)return c.yield(b.attachMediaKeys_(),2);b.newInitData(a.initDataType,shaka.util.BufferUtils.toUint8(a.initData));c.jumpToEnd()})};
|
|
@@ -471,19 +474,19 @@ shaka.media.DrmEngine.prototype.willSupport=function(a){if(shaka.util.Platform.i
|
|
|
471
474
|
shaka.media.DrmEngine.prototype.getActiveSessionsMetadata=function(){var a=this,b=this.activeSessions_.keys();b=shaka.util.Iterables.map(b,function(c){var d=a.activeSessions_.get(c);return{sessionId:c.sessionId,sessionType:d.type,initData:d.initData,initDataType:d.initDataType}});return Array.from(b)};
|
|
472
475
|
shaka.media.DrmEngine.prototype.getExpiration=function(){var a=Infinity,b=this.activeSessions_.keys();b=$jscomp.makeIterator(b);for(var c=b.next();!c.done;c=b.next())c=c.value,isNaN(c.expiration)||(a=Math.min(a,c.expiration));return a};shaka.media.DrmEngine.prototype.getLicenseTime=function(){return this.licenseTimeSeconds_?this.licenseTimeSeconds_:NaN};shaka.media.DrmEngine.prototype.getDrmInfo=function(){return this.currentDrmInfo_};shaka.media.DrmEngine.prototype.getMediaKeys=function(){return this.mediaKeys_};
|
|
473
476
|
shaka.media.DrmEngine.prototype.getKeyStatuses=function(){return shaka.util.MapUtils.asObject(this.announcedKeyStatusByKeyId_)};shaka.media.DrmEngine.prototype.getMediaKeySessions=function(){return Array.from(this.activeSessions_.keys())};shaka.media.DrmEngine.computeMimeType_=function(a,b){b=shaka.util.MimeUtils.getFullType(a.mimeType,b||a.codecs);var c=shaka.transmuxer.TransmuxerEngine;return c.isSupported(b,a.type)?c.convertCodecs(a.type,b):b};
|
|
474
|
-
shaka.media.DrmEngine.prototype.queryMediaKeys_=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,t,
|
|
475
|
-
c.destroyer_.ensureNotDestroyed();
|
|
476
|
-
"We should get at least one supported MIME type");c.currentDrmInfo_=b.length?c.createDrmInfoByInfos_(f.keySystem,d.get(f.keySystem)):shaka.media.DrmEngine.createDrmInfoByConfigs_(f.keySystem,a.get(f.keySystem));if(!c.currentDrmInfo_.licenseServerUri)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.DRM,shaka.util.Error.Code.NO_LICENSE_SERVER_GIVEN,c.currentDrmInfo_.keySystem);return
|
|
477
|
-
shaka.log.info("Created MediaKeys object for key system",c.currentDrmInfo_.keySystem);c.mediaKeys_=r;if(!(""!=c.config_.minHdcpVersion&&"getStatusForPolicy"in c.mediaKeys_)){
|
|
478
|
-
|
|
477
|
+
shaka.media.DrmEngine.prototype.queryMediaKeys_=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,t,v,u;return $jscomp.asyncExecutePromiseGeneratorProgram(function(w){switch(w.nextAddress){case 1:d=new Map;if(b.length){e=c.getKeySystemAccessFromVariants_(b,d);w.jumpTo(2);break}return w.yield(c.getKeySystemAccessByConfigs_(a),3);case 3:e=w.yieldResult;case 2:f=e;if(!f)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.DRM,shaka.util.Error.Code.REQUESTED_KEY_SYSTEM_CONFIG_UNAVAILABLE);
|
|
478
|
+
c.destroyer_.ensureNotDestroyed();w.setCatchFinallyBlocks(4);c.supportedTypes_.clear();g=f.getConfiguration();shaka.log.v2("Got MediaKeySystemAccess with configuration",g);h=g.audioCapabilities||[];k=g.videoCapabilities||[];l=$jscomp.makeIterator(h);for(m=l.next();!m.done;m=l.next())n=m.value,c.supportedTypes_.add(n.contentType.toLowerCase());p=$jscomp.makeIterator(k);for(m=p.next();!m.done;m=p.next())q=m.value,c.supportedTypes_.add(q.contentType.toLowerCase());goog.asserts.assert(c.supportedTypes_.size,
|
|
479
|
+
"We should get at least one supported MIME type");c.currentDrmInfo_=b.length?c.createDrmInfoByInfos_(f.keySystem,d.get(f.keySystem)):shaka.media.DrmEngine.createDrmInfoByConfigs_(f.keySystem,a.get(f.keySystem));if(!c.currentDrmInfo_.licenseServerUri)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.DRM,shaka.util.Error.Code.NO_LICENSE_SERVER_GIVEN,c.currentDrmInfo_.keySystem);return w.yield(f.createMediaKeys(),6);case 6:r=w.yieldResult;c.destroyer_.ensureNotDestroyed();
|
|
480
|
+
shaka.log.info("Created MediaKeys object for key system",c.currentDrmInfo_.keySystem);c.mediaKeys_=r;if(!(""!=c.config_.minHdcpVersion&&"getStatusForPolicy"in c.mediaKeys_)){w.jumpTo(7);break}w.setCatchFinallyBlocks(8);return w.yield(c.mediaKeys_.getStatusForPolicy({minHdcpVersion:c.config_.minHdcpVersion}),10);case 10:t=w.yieldResult;if("usable"!=t)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.DRM,shaka.util.Error.Code.MIN_HDCP_VERSION_NOT_MATCH);c.destroyer_.ensureNotDestroyed();
|
|
481
|
+
w.leaveTryBlock(7,4);break;case 8:v=w.enterCatchBlock(4);if(v instanceof shaka.util.Error)throw v;throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.DRM,shaka.util.Error.Code.ERROR_CHECKING_HDCP_VERSION,v.message);case 7:return c.initialized_=!0,w.yield(c.setServerCertificate(),11);case 11:c.destroyer_.ensureNotDestroyed();w.leaveTryBlock(0);break;case 4:u=w.enterCatchBlock();c.destroyer_.ensureNotDestroyed(u);c.currentDrmInfo_=null;c.supportedTypes_.clear();if(u instanceof
|
|
479
482
|
shaka.util.Error)throw u;throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.DRM,shaka.util.Error.Code.FAILED_TO_CREATE_CDM,u.message);}})};
|
|
480
483
|
shaka.media.DrmEngine.prototype.getKeySystemAccessFromVariants_=function(a,b){for(var c=$jscomp.makeIterator(a),d=c.next();!d.done;d=c.next()){var e=this.getVariantDrmInfos_(d.value);e=$jscomp.makeIterator(e);for(d=e.next();!d.done;d=e.next()){var f=d.value;b.has(f.keySystem)||b.set(f.keySystem,[]);b.get(f.keySystem).push(f)}}if(1==b.size&&b.has(""))throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.DRM,shaka.util.Error.Code.NO_RECOGNIZED_KEY_SYSTEMS);c={};e=$jscomp.makeIterator(this.config_.preferredKeySystems);
|
|
481
|
-
for(f=e.next();!f.done;c={$jscomp$loop$prop$preferredKeySystem$
|
|
484
|
+
for(f=e.next();!f.done;c={$jscomp$loop$prop$preferredKeySystem$755:c.$jscomp$loop$prop$preferredKeySystem$755},f=e.next())for(c.$jscomp$loop$prop$preferredKeySystem$755=f.value,f=$jscomp.makeIterator(a),d=f.next();!d.done;d=f.next())if(d=d.value.decodingInfos.find(function(l){return function(m){return m.supported&&null!=m.keySystemAccess&&m.keySystemAccess.keySystem==l.$jscomp$loop$prop$preferredKeySystem$755}}(c)))return d.keySystemAccess;c=$jscomp.makeIterator([!0,!1]);for(e=c.next();!e.done;e=
|
|
482
485
|
c.next())for(e=e.value,f=$jscomp.makeIterator(a),d=f.next();!d.done;d=f.next()){var g=$jscomp.makeIterator(d.value.decodingInfos);for(d=g.next();!d.done;d=g.next()){var h=d.value;if(h.supported&&h.keySystemAccess){d=b.get(h.keySystemAccess.keySystem);var k=$jscomp.makeIterator(d);for(d=k.next();!d.done;d=k.next())if(!!d.value.licenseServerUri==e)return h.keySystemAccess}}}return null};
|
|
483
|
-
shaka.media.DrmEngine.prototype.getKeySystemAccessByConfigs_=function(a){var b=this,c,d,e,f,g,h,k,l,m,n,p,q,r,t,
|
|
486
|
+
shaka.media.DrmEngine.prototype.getKeySystemAccessByConfigs_=function(a){var b=this,c,d,e,f,g,h,k,l,m,n,p,q,r,t,v,u,w;return $jscomp.asyncExecutePromiseGeneratorProgram(function(x){switch(x.nextAddress){case 1:if(1==a.size&&a.has(""))throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.DRM,shaka.util.Error.Code.NO_RECOGNIZED_KEY_SYSTEMS);d=$jscomp.makeIterator(a.values());for(e=d.next();!e.done;e=d.next())f=e.value,0==f.audioCapabilities.length&&delete f.audioCapabilities,
|
|
484
487
|
0==f.videoCapabilities.length&&delete f.videoCapabilities;g=$jscomp.makeIterator(b.config_.preferredKeySystems);h=g.next();case 2:if(h.done){x.jumpTo(4);break}k=h.value;if(!a.has(k)){x.jumpTo(3);break}l=a.get(k);x.setCatchFinallyBlocks(6);return x.yield(navigator.requestMediaKeySystemAccess(k,[l]),8);case 8:return c=x.yieldResult,x.return(c);case 6:m=x.enterCatchBlock(),shaka.log.v2("Requesting",k,"failed with config",l,m);case 7:b.destroyer_.ensureNotDestroyed();case 3:h=g.next();x.jumpTo(2);break;
|
|
485
|
-
case 4:n=$jscomp.makeIterator([!0,!1]),p=n.next();case 9:if(p.done){x.jumpTo(11);break}q=p.value;r=$jscomp.makeIterator(a.keys());h=r.next();case 12:if(h.done){p=n.next();x.jumpTo(9);break}t=h.value;
|
|
486
|
-
w
|
|
488
|
+
case 4:n=$jscomp.makeIterator([!0,!1]),p=n.next();case 9:if(p.done){x.jumpTo(11);break}q=p.value;r=$jscomp.makeIterator(a.keys());h=r.next();case 12:if(h.done){p=n.next();x.jumpTo(9);break}t=h.value;v=a.get(t);u=v.drmInfos.some(function(y){return!!y.licenseServerUri});if(u!=q){x.jumpTo(13);break}x.setCatchFinallyBlocks(15);return x.yield(navigator.requestMediaKeySystemAccess(t,[v]),17);case 17:return c=x.yieldResult,x.return(c);case 15:w=x.enterCatchBlock(),shaka.log.v2("Requesting",t,"failed with config",
|
|
489
|
+
v,w);case 16:b.destroyer_.ensureNotDestroyed();case 13:h=r.next();x.jumpTo(12);break;case 11:return x.return(c)}})};
|
|
487
490
|
shaka.media.DrmEngine.prototype.configureClearKey_=function(){var a=shaka.util.MapUtils.asMap(this.config_.clearKeys);if(0==a.size)return null;var b=shaka.util.StringUtils,c=shaka.util.Uint8ArrayUtils,d=[],e=[];a.forEach(function(g,h){var k=h;22!=k.length&&(k=c.toBase64(c.fromHex(h),!1));h=g;22!=h.length&&(h=c.toBase64(c.fromHex(g),!1));g={kty:"oct",kid:k,k:h};d.push(g);e.push(g.kid)});a=JSON.stringify({keys:d});var f=JSON.stringify({kids:e});b=[{initData:shaka.util.BufferUtils.toUint8(b.toUTF8(f)),
|
|
488
491
|
initDataType:"keyids"}];return{keySystem:"org.w3.clearkey",licenseServerUri:"data:application/json;base64,"+window.btoa(a),distinctiveIdentifierRequired:!1,persistentStateRequired:!1,audioRobustness:"",videoRobustness:"",serverCertificate:null,serverCertificateUri:"",sessionType:"",initData:b,keyIds:new Set(e)}};shaka.media.DrmEngine.prototype.checkSessionsLoaded_=function(){this.areAllSessionsLoaded_()&&this.allSessionsLoaded_.resolve()};
|
|
489
492
|
shaka.media.DrmEngine.prototype.setLoadSessionTimeoutTimer_=function(a){var b=this;(new shaka.util.Timer(function(){a.loaded=!0;b.checkSessionsLoaded_()})).tickAfter(shaka.media.DrmEngine.SESSION_LOAD_TIMEOUT_)};
|
|
@@ -495,11 +498,11 @@ shaka.media.DrmEngine.prototype.createSession=function(a,b,c){var d=this;goog.as
|
|
|
495
498
|
this.eventManager_.listen(e,"keystatuseschange",function(f){return d.onKeyStatusesChange_(f)});this.activeSessions_.set(e,{initData:b,initDataType:a,loaded:!1,oldExpiration:Infinity,updatePromise:null,type:c});try{b=this.config_.initDataTransform(b,a,this.currentDrmInfo_)}catch(f){a=f;f instanceof shaka.util.Error||(a=new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.DRM,shaka.util.Error.Code.INIT_DATA_TRANSFORM_ERROR,f));this.onError_(a);return}this.config_.logLicenseExchange&&
|
|
496
499
|
(c=shaka.util.Uint8ArrayUtils.toBase64(b),shaka.log.info("EME init data: type=",a,"data=",c));e.generateRequest(a,b).catch(function(f){if(!d.destroyer_.destroyed()){goog.asserts.assert(f instanceof Error,"Wrong error type!");d.activeSessions_.delete(e);var g=f.errorCode;if(g&&g.systemCode){var h=g.systemCode;0>h&&(h+=Math.pow(2,32));h="0x"+h.toString(16)}d.onError_(new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.DRM,shaka.util.Error.Code.FAILED_TO_GENERATE_LICENSE_REQUEST,
|
|
497
500
|
f.message,f,h))}})};shaka.media.DrmEngine.prototype.onSessionMessage_=function(a){this.delayLicenseRequest_()?this.mediaKeyMessageEvents_.push(a):this.sendLicenseRequest_(a)};shaka.media.DrmEngine.prototype.delayLicenseRequest_=function(){return this.video_?this.config_.delayLicenseRequestUntilPlayed&&this.video_.paused&&!this.initialRequestsSent_:!1};
|
|
498
|
-
shaka.media.DrmEngine.prototype.sendLicenseRequest_=function(a){var b=this,c,d,e,f,g,h,k,l,m,n,p,q,r,t,
|
|
501
|
+
shaka.media.DrmEngine.prototype.sendLicenseRequest_=function(a){var b=this,c,d,e,f,g,h,k,l,m,n,p,q,r,t,v,u;return $jscomp.asyncExecutePromiseGeneratorProgram(function(w){switch(w.nextAddress){case 1:return c=a.target,shaka.log.v1("Sending license request for session",c.sessionId,"of type",a.messageType),b.config_.logLicenseExchange&&(d=shaka.util.Uint8ArrayUtils.toBase64(a.message),shaka.log.info("EME license request",d)),e=b.activeSessions_.get(c),f=b.currentDrmInfo_.licenseServerUri,g=b.config_.advanced[b.currentDrmInfo_.keySystem],
|
|
499
502
|
"individualization-request"==a.messageType&&g&&g.individualizationServer&&(f=g.individualizationServer),h=shaka.net.NetworkingEngine.RequestType.LICENSE,k=shaka.net.NetworkingEngine.makeRequest([f],b.config_.retryParameters),k.body=a.message,k.method="POST",k.licenseRequestType=a.messageType,k.sessionId=c.sessionId,k.drmInfo=b.currentDrmInfo_,e&&(k.initData=e.initData,k.initDataType=e.initDataType),shaka.media.DrmEngine.isPlayReadyKeySystem(b.currentDrmInfo_.keySystem)&&b.unpackPlayReadyRequest_(k),
|
|
500
|
-
l=Date.now(),
|
|
501
|
-
b.licenseTimeSeconds_+=(Date.now()-l)/1E3;b.config_.logLicenseExchange&&(r=shaka.util.Uint8ArrayUtils.toBase64(m.data),shaka.log.info("EME license response",r));
|
|
502
|
-
e.updatePromise.reject(
|
|
503
|
+
l=Date.now(),w.setCatchFinallyBlocks(2),n=b.playerInterface_.netEngine.request(h,k),w.yield(n.promise,4);case 4:m=w.yieldResult;w.leaveTryBlock(3);break;case 2:return p=w.enterCatchBlock(),goog.asserts.assert(p instanceof shaka.util.Error,"Wrong NetworkingEngine error type!"),q=new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.DRM,shaka.util.Error.Code.LICENSE_REQUEST_FAILED,p),b.onError_(q),e&&e.updatePromise&&e.updatePromise.reject(q),w.return();case 3:if(b.destroyer_.destroyed())return w.return();
|
|
504
|
+
b.licenseTimeSeconds_+=(Date.now()-l)/1E3;b.config_.logLicenseExchange&&(r=shaka.util.Uint8ArrayUtils.toBase64(m.data),shaka.log.info("EME license response",r));w.setCatchFinallyBlocks(5);shaka.log.v1("Updating session",c.sessionId);return w.yield(c.update(m.data),7);case 7:w.leaveTryBlock(6);break;case 5:return t=w.enterCatchBlock(),v=new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.DRM,shaka.util.Error.Code.LICENSE_RESPONSE_REJECTED,t.message),b.onError_(v),e&&e.updatePromise&&
|
|
505
|
+
e.updatePromise.reject(v),w.return();case 6:if(b.destroyer_.destroyed())return w.return();u=new shaka.util.FakeEvent("drmsessionupdate");b.playerInterface_.onEvent(u);e&&(e.updatePromise&&e.updatePromise.resolve(),b.setLoadSessionTimeoutTimer_(e));w.jumpToEnd()}})};
|
|
503
506
|
shaka.media.DrmEngine.prototype.unpackPlayReadyRequest_=function(a){var b=shaka.util.StringUtils.fromUTF16(a.body,!0,!0);if(b.includes("PlayReadyKeyMessage")){shaka.log.debug("Unwrapping PlayReady request.");b=shaka.util.XmlUtils.parseXmlString(b,"PlayReadyKeyMessage");goog.asserts.assert(b,"Failed to parse PlayReady XML!");var c=b.getElementsByTagName("HttpHeader");c=$jscomp.makeIterator(c);for(var d=c.next();!d.done;d=c.next()){var e=d.value;d=e.getElementsByTagName("name")[0];e=e.getElementsByTagName("value")[0];
|
|
504
507
|
goog.asserts.assert(d&&e,"Malformed PlayReady headers!");a.headers[d.textContent]=e.textContent}b=b.getElementsByTagName("Challenge")[0];goog.asserts.assert(b,"Malformed PlayReady challenge!");goog.asserts.assert("base64encoded"==b.getAttribute("encoding"),"Unexpected PlayReady challenge encoding!");a.body=shaka.util.Uint8ArrayUtils.fromBase64(b.textContent)}else shaka.log.debug("PlayReady request is already unwrapped."),a.headers["Content-Type"]="text/xml; charset=utf-8"};
|
|
505
508
|
shaka.media.DrmEngine.prototype.onKeyStatusesChange_=function(a){var b=this;a=a.target;shaka.log.v2("Key status changed for session",a.sessionId);var c=this.activeSessions_.get(a),d=!1;a.keyStatuses.forEach(function(f,g){if("string"==typeof g){var h=g;g=f;f=h}if(shaka.media.DrmEngine.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,
|
|
@@ -515,9 +518,9 @@ shaka.media.DrmEngine.prototype.closeOpenSessions_=function(){var a=this,b;retur
|
|
|
515
518
|
"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)})};
|
|
516
519
|
shaka.media.DrmEngine.prototype.supportsVariant=function(a){var b=a.audio,c=a.video;if(b&&b.encrypted&&(b=shaka.media.DrmEngine.computeMimeType_(b),!this.willSupport(b))||c&&c.encrypted&&(c=shaka.media.DrmEngine.computeMimeType_(c),!this.willSupport(c)))return!1;var d=shaka.media.DrmEngine.keySystem(this.currentDrmInfo_);a=this.getVariantDrmInfos_(a);return 0==a.length||a.some(function(e){return e.keySystem==d})};
|
|
517
520
|
shaka.media.DrmEngine.areDrmCompatible=function(a,b){return a.length&&b.length&&a!==b?0<shaka.media.DrmEngine.getCommonDrmInfos(a,b).length:!0};
|
|
518
|
-
shaka.media.DrmEngine.getCommonDrmInfos=function(a,b){if(!a.length)return b;if(!b.length)return a;var c=[];a=$jscomp.makeIterator(a);for(var d=a.next();!d.done;d=a.next()){d=d.value;for(var e={},f=$jscomp.makeIterator(b),g=f.next();!g.done;e={$jscomp$loop$prop$initData$
|
|
519
|
-
e.$jscomp$loop$prop$initData$
|
|
520
|
-
g.distinctiveIdentifierRequired,persistentStateRequired:d.persistentStateRequired||g.persistentStateRequired,videoRobustness:d.videoRobustness||g.videoRobustness,audioRobustness:d.audioRobustness||g.audioRobustness,serverCertificate:d.serverCertificate||g.serverCertificate,serverCertificateUri:d.serverCertificateUri||g.serverCertificateUri,initData:e.$jscomp$loop$prop$initData$
|
|
521
|
+
shaka.media.DrmEngine.getCommonDrmInfos=function(a,b){if(!a.length)return b;if(!b.length)return a;var c=[];a=$jscomp.makeIterator(a);for(var d=a.next();!d.done;d=a.next()){d=d.value;for(var e={},f=$jscomp.makeIterator(b),g=f.next();!g.done;e={$jscomp$loop$prop$initData$757:e.$jscomp$loop$prop$initData$757},g=f.next())if(g=g.value,d.keySystem==g.keySystem){e.$jscomp$loop$prop$initData$757=[];e.$jscomp$loop$prop$initData$757=e.$jscomp$loop$prop$initData$757.concat(d.initData||[]);e.$jscomp$loop$prop$initData$757=
|
|
522
|
+
e.$jscomp$loop$prop$initData$757.concat(g.initData||[]);e.$jscomp$loop$prop$initData$757=e.$jscomp$loop$prop$initData$757.filter(function(h){return function(k,l){return void 0===k.keyId||l===h.$jscomp$loop$prop$initData$757.findIndex(function(m){return m.keyId===k.keyId})}}(e));f=d.keyIds&&g.keyIds?new Set([].concat($jscomp.arrayFromIterable(d.keyIds),$jscomp.arrayFromIterable(g.keyIds))):d.keyIds||g.keyIds;c.push({keySystem:d.keySystem,licenseServerUri:d.licenseServerUri||g.licenseServerUri,distinctiveIdentifierRequired:d.distinctiveIdentifierRequired||
|
|
523
|
+
g.distinctiveIdentifierRequired,persistentStateRequired:d.persistentStateRequired||g.persistentStateRequired,videoRobustness:d.videoRobustness||g.videoRobustness,audioRobustness:d.audioRobustness||g.audioRobustness,serverCertificate:d.serverCertificate||g.serverCertificate,serverCertificateUri:d.serverCertificateUri||g.serverCertificateUri,initData:e.$jscomp$loop$prop$initData$757,keyIds:f});break}}return c};
|
|
521
524
|
shaka.media.DrmEngine.prototype.getVariantDrmInfos_=function(a){return(a.video?a.video.drmInfos:[]).concat(a.audio?a.audio.drmInfos:[])};shaka.media.DrmEngine.prototype.pollExpiration_=function(){var a=this;this.activeSessions_.forEach(function(b,c){var d=b.oldExpiration,e=c.expiration;isNaN(e)&&(e=Infinity);e!=d&&(a.playerInterface_.onExpirationUpdated(c.sessionId,e),b.oldExpiration=e)})};
|
|
522
525
|
shaka.media.DrmEngine.prototype.areAllSessionsLoaded_=function(){var a=this.activeSessions_.values();return shaka.util.Iterables.every(a,function(b){return b.loaded})};shaka.media.DrmEngine.prototype.areAllKeysUsable_=function(){var a=this.currentDrmInfo_&&this.currentDrmInfo_.keyIds||new Set([]);a=$jscomp.makeIterator(a);for(var b=a.next();!b.done;b=a.next())if("usable"!==this.keyStatusByKeyId_.get(b.value))return!1;return!0};
|
|
523
526
|
shaka.media.DrmEngine.replaceDrmInfo_=function(a,b){var c=[];b.forEach(function(d,e){c.push({keySystem:e,licenseServerUri:d,distinctiveIdentifierRequired:!1,persistentStateRequired:!1,audioRobustness:"",videoRobustness:"",serverCertificate:null,serverCertificateUri:"",initData:[],keyIds:new Set})});a=$jscomp.makeIterator(a);for(b=a.next();!b.done;b=a.next())b=b.value,b.video&&(b.video.drmInfos=c),b.audio&&(b.audio.drmInfos=c)};
|
|
@@ -526,9 +529,9 @@ shaka.media.DrmEngine.prototype.createDrmInfoByInfos_=function(a,b){var c=[],d=[
|
|
|
526
529
|
c.distinctiveIdentifierRequired),c.persistentStateRequired&&(a.persistentStateRequired=c.persistentStateRequired);return a};
|
|
527
530
|
shaka.media.DrmEngine.createDrmInfoByConfigs_=function(a,b){var c=[],d=[],e=[],f=[],g=new Set;shaka.media.DrmEngine.processDrmInfos_(b.drmInfos,c,e,d,f,g);1<e.length&&shaka.log.warning("Multiple unique server certificates found! Only the first will be used.");1<d.length&&shaka.log.warning("Multiple unique server certificate URIs found! Only the first will be used.");1<c.length&&shaka.log.warning("Multiple unique license server URIs found! Only the first will be used.");return{keySystem:a,licenseServerUri:c[0],
|
|
528
531
|
distinctiveIdentifierRequired:"required"==b.distinctiveIdentifier,persistentStateRequired:"required"==b.persistentState,sessionType:b.sessionTypes[0]||"temporary",audioRobustness:(b.audioCapabilities?b.audioCapabilities[0].robustness:"")||"",videoRobustness:(b.videoCapabilities?b.videoCapabilities[0].robustness:"")||"",serverCertificate:e[0],serverCertificateUri:d[0],initData:f,keyIds:g}};
|
|
529
|
-
shaka.media.DrmEngine.processDrmInfos_=function(a,b,c,d,e,f){var g={};a=$jscomp.makeIterator(a);for(var h=a.next();!h.done;g={$jscomp$loop$prop$drmInfo$
|
|
530
|
-
(c.some(function(m){return function(n){return shaka.util.BufferUtils.equal(n,m.$jscomp$loop$prop$drmInfo$
|
|
531
|
-
m.$jscomp$loop$prop$initDataOverride$
|
|
532
|
+
shaka.media.DrmEngine.processDrmInfos_=function(a,b,c,d,e,f){var g={};a=$jscomp.makeIterator(a);for(var h=a.next();!h.done;g={$jscomp$loop$prop$drmInfo$759:g.$jscomp$loop$prop$drmInfo$759},h=a.next()){g.$jscomp$loop$prop$drmInfo$759=h.value;b.includes(g.$jscomp$loop$prop$drmInfo$759.licenseServerUri)||b.push(g.$jscomp$loop$prop$drmInfo$759.licenseServerUri);d.includes(g.$jscomp$loop$prop$drmInfo$759.serverCertificateUri)||d.push(g.$jscomp$loop$prop$drmInfo$759.serverCertificateUri);g.$jscomp$loop$prop$drmInfo$759.serverCertificate&&
|
|
533
|
+
(c.some(function(m){return function(n){return shaka.util.BufferUtils.equal(n,m.$jscomp$loop$prop$drmInfo$759.serverCertificate)}}(g))||c.push(g.$jscomp$loop$prop$drmInfo$759.serverCertificate));if(g.$jscomp$loop$prop$drmInfo$759.initData){h={};for(var k=$jscomp.makeIterator(g.$jscomp$loop$prop$drmInfo$759.initData),l=k.next();!l.done;h={$jscomp$loop$prop$initDataOverride$761:h.$jscomp$loop$prop$initDataOverride$761},l=k.next())h.$jscomp$loop$prop$initDataOverride$761=l.value,e.some(function(m){return function(n){var p=
|
|
534
|
+
m.$jscomp$loop$prop$initDataOverride$761;n=n.keyId&&n.keyId==p.keyId?!0:n.initDataType==p.initDataType&&shaka.util.BufferUtils.equal(n.initData,p.initData);return n}}(h))||e.push(h.$jscomp$loop$prop$initDataOverride$761)}if(g.$jscomp$loop$prop$drmInfo$759.keyIds)for(h=$jscomp.makeIterator(g.$jscomp$loop$prop$drmInfo$759.keyIds),k=h.next();!k.done;k=h.next())f.add(k.value)}};
|
|
532
535
|
shaka.media.DrmEngine.fillInDrmInfoDefaults_=function(a,b,c,d){var e=a.keySystem;if(e&&("org.w3.clearkey"!=e||!a.licenseServerUri)){b.size&&(b=b.get(e)||"",a.licenseServerUri=b);a.keyIds||(a.keyIds=new Set);if(c=c.get(e))a.distinctiveIdentifierRequired||(a.distinctiveIdentifierRequired=c.distinctiveIdentifierRequired),a.persistentStateRequired||(a.persistentStateRequired=c.persistentStateRequired),a.videoRobustness||(a.videoRobustness=c.videoRobustness),a.audioRobustness||(a.audioRobustness=c.audioRobustness),
|
|
533
536
|
a.serverCertificate||(a.serverCertificate=c.serverCertificate),c.sessionType&&(a.sessionType=c.sessionType),a.serverCertificateUri||(a.serverCertificateUri=c.serverCertificateUri);d[e]&&(a.keySystem=d[e]);window.cast&&window.cast.__platform__&&"com.microsoft.playready"==e&&(a.keySystem="com.chromecast.playready")}};
|
|
534
537
|
shaka.media.DrmEngine.prototype.parseInbandPssh=function(a,b){if(!this.config_.parseInbandPsshEnabled||this.manifestInitData_)return Promise.resolve();var c=shaka.util.ManifestParserUtils.ContentType;if(![c.AUDIO,c.VIDEO].includes(a))return Promise.resolve();b=new shaka.util.Pssh(shaka.util.BufferUtils.toUint8(b));c=0;var d=$jscomp.makeIterator(b.data);for(a=d.next();!a.done;a=d.next())c+=a.value.length;if(0==c)return Promise.resolve();c=new Uint8Array(c);d=0;b=$jscomp.makeIterator(b.data);for(a=
|
|
@@ -550,11 +553,12 @@ a.start,a.size+g.byteLength);f=shaka.util.BufferUtils.toDataView(e,b.start);b=sh
|
|
|
550
553
|
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};
|
|
551
554
|
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))};
|
|
552
555
|
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;shaka.media.ContentWorkarounds.BOX_SIZE_OFFSET_=0;shaka.media.ContentWorkarounds.BOX_TYPE_OFFSET_=4;
|
|
553
|
-
shaka.media.ContentWorkarounds.BOX_SIZE_64_OFFSET_=8;shaka.media.ContentWorkarounds.BOX_TYPE_ENCV_=1701733238;shaka.media.ContentWorkarounds.BOX_TYPE_ENCA_=1701733217;shaka.media.InitSegmentReference=function(a,b,c,d,e,f){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
|
|
554
|
-
shaka.media.InitSegmentReference.prototype.
|
|
555
|
-
|
|
556
|
+
shaka.media.ContentWorkarounds.BOX_SIZE_64_OFFSET_=8;shaka.media.ContentWorkarounds.BOX_TYPE_ENCV_=1701733238;shaka.media.ContentWorkarounds.BOX_TYPE_ENCA_=1701733217;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.aes128Key=void 0===g?null:g};shaka.media.InitSegmentReference.prototype.getStartByte=function(){return this.startByte};shaka.media.InitSegmentReference.prototype.getEndByte=function(){return this.endByte};
|
|
557
|
+
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};
|
|
558
|
+
shaka.media.InitSegmentReference.equal=function(a,b){var c=shaka.util.ArrayUtils,d=shaka.util.BufferUtils;return a&&b?a.getStartByte()==b.getStartByte()&&a.getEndByte()==b.getEndByte()&&c.equal(a.getUris(),b.getUris())&&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);
|
|
559
|
+
goog.exportProperty(shaka.media.InitSegmentReference.prototype,"getStartByte",shaka.media.InitSegmentReference.prototype.getStartByte);
|
|
556
560
|
shaka.media.SegmentReference=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r){l=void 0===l?[]:l;m=void 0===m?"":m;n=void 0===n?null:n;p=void 0===p?null:p;q=void 0===q?shaka.media.SegmentReference.Status.AVAILABLE:q;r=void 0===r?null:r;goog.asserts.assert(a<=b,"startTime must be less than or equal to endTime");goog.asserts.assert(null==e||d<e,"startByte must be < endByte");this.startTime=a;this.trueEndTime=this.endTime=b;this.getUrisInner=c;this.startByte=d;this.endByte=e;this.initSegmentReference=f;this.timestampOffset=
|
|
557
|
-
g;this.appendWindowStart=h;this.appendWindowEnd=k;this.partialReferences=l;this.tilesLayout=m;this.tileDuration=n;this.syncTime=p;this.status=q;this.preload=!1;this.independent=!0;this.byterangeOptimization=!1;this.
|
|
561
|
+
g;this.appendWindowStart=h;this.appendWindowEnd=k;this.partialReferences=l;this.tilesLayout=m;this.tileDuration=n;this.syncTime=p;this.status=q;this.preload=!1;this.independent=!0;this.byterangeOptimization=!1;this.aes128Key=r;this.thumbnailSprite=null;this.discontinuitySequence=0};shaka.media.SegmentReference.prototype.getUris=function(){return this.getUrisInner()};shaka.media.SegmentReference.prototype.getStartTime=function(){return this.startTime};
|
|
558
562
|
shaka.media.SegmentReference.prototype.getEndTime=function(){return this.endTime};shaka.media.SegmentReference.prototype.getStartByte=function(){return this.startByte};shaka.media.SegmentReference.prototype.getEndByte=function(){return this.endByte};shaka.media.SegmentReference.prototype.getSize=function(){return this.endByte?this.endByte-this.startByte:null};shaka.media.SegmentReference.prototype.hasPartialSegments=function(){return 0<this.partialReferences.length};
|
|
559
563
|
shaka.media.SegmentReference.prototype.getTilesLayout=function(){return this.tilesLayout};shaka.media.SegmentReference.prototype.getTileDuration=function(){return this.tileDuration};shaka.media.SegmentReference.prototype.getStatus=function(){return this.status};shaka.media.SegmentReference.prototype.markAsUnavailable=function(){this.status=shaka.media.SegmentReference.Status.UNAVAILABLE};shaka.media.SegmentReference.prototype.markAsPreload=function(){this.preload=!0};
|
|
560
564
|
shaka.media.SegmentReference.prototype.isPreload=function(){return this.preload};shaka.media.SegmentReference.prototype.markAsNonIndependent=function(){this.independent=!1};shaka.media.SegmentReference.prototype.isIndependent=function(){return this.independent};shaka.media.SegmentReference.prototype.markAsByterangeOptimization=function(){this.byterangeOptimization=!0};shaka.media.SegmentReference.prototype.hasByterangeOptimization=function(){return this.byterangeOptimization};
|
|
@@ -603,7 +607,7 @@ shaka.util.Mp4BoxParsers.toHex_=function(a){return("0"+a.toString(16).toUpperCas
|
|
|
603
607
|
See the License for the specific language governing permissions and
|
|
604
608
|
limitations under the License.
|
|
605
609
|
*/
|
|
606
|
-
shaka.util.ExpGolomb=function(a){this.data_=a;this.
|
|
610
|
+
shaka.util.ExpGolomb=function(a,b){this.data_=a;if(void 0===b?0:b)this.data_=this.ebsp2rbsp_(a);this.workingBytesAvailable_=this.data_.byteLength;this.workingBitsAvailable_=this.workingWord_=0};shaka.util.ExpGolomb.prototype.ebsp2rbsp_=function(a){for(var b=new Uint8Array(a.byteLength),c=0,d=0;d<a.byteLength;d++)2<=d&&3==a[d]&&0==a[d-1]&&0==a[d-2]||(b[c]=a[d],c++);return shaka.util.BufferUtils.toUint8(b,0,c)};
|
|
607
611
|
shaka.util.ExpGolomb.prototype.loadWord_=function(){var a=this.data_.byteLength-this.workingBytesAvailable_,b=new Uint8Array(4),c=Math.min(4,this.workingBytesAvailable_);0!==c&&(b.set(this.data_.subarray(a,a+c)),this.workingWord_=(new shaka.util.DataViewReader(b,shaka.util.DataViewReader.Endianness.BIG_ENDIAN)).readUint32(),this.workingBitsAvailable_=8*c,this.workingBytesAvailable_-=c)};
|
|
608
612
|
shaka.util.ExpGolomb.prototype.skipBits=function(a){if(this.workingBitsAvailable_<=a){a-=this.workingBitsAvailable_;var b=Math.floor(a/8);a-=8*b;this.workingBitsAvailable_-=b;this.loadWord_()}this.workingWord_<<=a;this.workingBitsAvailable_-=a};
|
|
609
613
|
shaka.util.ExpGolomb.prototype.readBits=function(a){var b=Math.min(this.workingBitsAvailable_,a),c=this.workingWord_>>>32-b;this.workingBitsAvailable_-=b;0<this.workingBitsAvailable_?this.workingWord_<<=b:0<this.workingBytesAvailable_&&this.loadWord_();b=a-b;return 0<b?c<<b|this.readBits(b):c};
|
|
@@ -611,46 +615,54 @@ shaka.util.ExpGolomb.prototype.skipLeadingZeros_=function(){var a;for(a=0;a<this
|
|
|
611
615
|
shaka.util.ExpGolomb.prototype.readExpGolomb=function(){var a=this.readUnsignedExpGolomb();return 1&a?1+a>>>1:-1*(a>>>1)};shaka.util.ExpGolomb.prototype.readBoolean=function(){return 1===this.readBits(1)};shaka.util.ExpGolomb.prototype.readUnsignedByte=function(){return this.readBits(8)};shaka.util.ExpGolomb.prototype.skipScalingList=function(a){for(var b=8,c=8,d=0;d<a;d++)0!==c&&(c=this.readExpGolomb(),c=(b+c+256)%256),b=0===c?b:c};
|
|
612
616
|
shaka.util.ExpGolomb.prototype.readSliceType=function(){this.readUnsignedByte();this.readUnsignedExpGolomb();return this.readUnsignedExpGolomb()};goog.exportSymbol("shaka.util.ExpGolomb",shaka.util.ExpGolomb);shaka.util.TsParser=function(){this.pmtId_=null;this.pmtParsed_=!1;this.videoCodec_=this.videoPid_=null;this.videoData_=[];this.audioCodec_=this.audioPid_=null;this.audioData_=[];this.id3Pid_=null;this.id3Data_=[]};shaka.util.TsParser.prototype.clearData=function(){this.videoData_=[];this.audioData_=[];this.id3Data_=[]};
|
|
613
617
|
shaka.util.TsParser.prototype.parse=function(a){var b=shaka.util.TsParser.PacketLength_,c=shaka.util.Uint8ArrayUtils;if(a.length<3*b)return this;for(var d=Math.max(0,shaka.util.TsParser.syncOffset(a)),e=a.length-(a.length+d)%b,f=!1,g=d;g<e;g+=b)if(71==a[g]){var h=!!(a[g+1]&64),k=((a[g+1]&31)<<8)+a[g+2];if(1<(a[g+3]&48)>>4){var l=g+5+a[g+4];if(l==g+b)continue}else l=g+4;switch(k){case 0:h&&(l+=a[l]+1);this.pmtId_=this.getPmtId_(a,l);break;case 17:case 8191:break;case this.pmtId_:h&&(l+=a[l]+1);h=this.parsePMT_(a,
|
|
614
|
-
l)
|
|
615
|
-
|
|
618
|
+
l);-1!=h.video&&(this.videoPid_=h.video,this.videoCodec_=h.videoCodec);-1!=h.audio&&(this.audioPid_=h.audio,this.audioCodec_=h.audioCodec);-1!=h.id3&&(this.id3Pid_=h.id3);f&&!this.pmtParsed_&&(shaka.log.debug("reparse from beginning"),f=!1,g=d-b);this.pmtParsed_=!0;break;case this.videoPid_:k=a.subarray(l,g+b);h?this.videoData_.push(k):this.videoData_.length&&(h=this.videoData_[this.videoData_.length-1])&&(this.videoData_[this.videoData_.length-1]=c.concat(h,k));break;case this.audioPid_:k=a.subarray(l,
|
|
619
|
+
g+b);h?this.audioData_.push(k):this.audioData_.length&&(h=this.audioData_[this.audioData_.length-1])&&(this.audioData_[this.audioData_.length-1]=c.concat(h,k));break;case this.id3Pid_:k=a.subarray(l,g+b);h?this.id3Data_.push(k):this.id3Data_.length&&(h=this.id3Data_[this.id3Data_.length-1])&&(this.id3Data_[this.id3Data_.length-1]=c.concat(h,k));break;default:f=!0}}else shaka.log.warning("Found TS packet that do not start with 0x47");return this};
|
|
616
620
|
shaka.util.TsParser.prototype.getPmtId_=function(a,b){return(a[b+10]&31)<<8|a[b+11]};
|
|
617
621
|
shaka.util.TsParser.prototype.parsePMT_=function(a,b){var c={audio:-1,video:-1,id3:-1,audioCodec:"",videoCodec:""},d=b+3+((a[b+1]&15)<<8|a[b+2])-4;for(b+=12+((a[b+10]&15)<<8|a[b+11]);b<d;){var e=(a[b+1]&31)<<8|a[b+2],f=(a[b+3]&15)<<8|a[b+4];switch(a[b]){case 6:if(-1==c.audio&&0<f)for(var g=b+5,h=f;2<h;){switch(a[g]){case 106:c.audio=e;c.audioCodec="ac3";break;case 122:c.audio=e,c.audioCodec="ec3"}var k=a[g+1]+2;g+=k;h-=k}break;case 15:-1==c.audio&&(c.audio=e,c.audioCodec="aac");break;case 21:-1==
|
|
618
622
|
c.id3&&(c.id3=e);break;case 27:-1==c.video&&(c.video=e,c.videoCodec="avc");break;case 3:case 4:-1==c.audio&&(c.audio=e,c.audioCodec="mp3");break;case 36:-1==c.video&&(c.video=e,c.videoCodec="hvc");break;case 129:-1==c.audio&&(c.audio=e,c.audioCodec="ac3");break;case 132:case 135:-1==c.audio&&(c.audio=e,c.audioCodec="ec3")}b+=f+5}return c};
|
|
619
623
|
shaka.util.TsParser.prototype.parsePES_=function(a){if(1!==(a[0]<<16|a[1]<<8|a[2]))return null;var b={data:new Uint8Array(0),packetLength:a[4]<<8|a[5],pts:null,dts:null};if(b.packetLength&&b.packetLength>a.byteLength-6)return null;var c=a[7];c&192&&(b.pts=536870912*(a[9]&14)+4194304*(a[10]&255)+16384*(a[11]&254)+128*(a[12]&255)+(a[13]&254)/2,b.dts=b.pts,c&64&&(b.dts=536870912*(a[14]&14)+4194304*(a[15]&255)+16384*(a[16]&254)+128*(a[17]&255)+(a[18]&254)/2));c=a[8]+9;if(a.byteLength<=c)return null;b.data=
|
|
620
|
-
a.subarray(c);return b};
|
|
621
|
-
shaka.util.TsParser.prototype.
|
|
622
|
-
g.push(
|
|
623
|
-
shaka.util.TsParser.prototype.getMetadata=function(){for(var a=shaka.util.TsParser.Timescale,b=[],c=$jscomp.makeIterator(this.id3Data_),d=c.next();!d.done;d=c.next())(d=this.parsePES_(d.value))&&b.push({cueTime:d.pts?d.pts/a:null,data:d.data,frames:shaka.util.Id3Utils.getID3Frames(d.data),dts:d.dts,pts:d.pts});return b};
|
|
624
|
-
shaka.util.TsParser.prototype.getVideoData=function(){for(var a=shaka.util.Uint8ArrayUtils,b=[],c=$jscomp.makeIterator(this.videoData_),d=c.next();!d.done;d=c.next()){d=d.value;var e=this.parsePES_(d);e&&null!=e.pts&&null!=e.dts?b.push(e):b.length&&(d=e?e.data:d)&&(e=b.pop(),e.data=a.concat(e.data,d),b.push(e))}return b};
|
|
624
|
+
a.subarray(c);return b};shaka.util.TsParser.prototype.parseAvcNalus=function(a,b){shaka.Deprecate.deprecateFeature(5,"TsParser","Please use parseNalus function instead.");return this.parseNalus(a,b)};
|
|
625
|
+
shaka.util.TsParser.prototype.parseNalus=function(a,b,c){var d=shaka.util.TsParser.Timescale;d=a.pts?a.pts/d:null;a=a.data;var e=a.byteLength,f=1;"hvc"==this.videoCodec_&&(f=2);for(var g=0,h=[],k=-1,l=0,m,n=0;n<e;++n){var p=a[n];if(p){if(2<=g&&1==p&&c){b=n-(3<g?3:g);if(0==b)return[];c.data=shaka.util.Uint8ArrayUtils.concat(c.data,a.subarray(0,b));c.fullData=shaka.util.Uint8ArrayUtils.concat(c.fullData,a.subarray(0,b));return[]}if(2<=g&&1==p){0<=k?(g=n-((3<g?3:g)+1),k={data:a.subarray(k+f,g+1),fullData:a.subarray(k,
|
|
626
|
+
g+1),type:l,time:d},h.push(k)):c&&(k=n-g,0<k&&(c.data=shaka.util.Uint8ArrayUtils.concat(c.data,a.subarray(0,k))));if(n>=e-f)return shaka.log.warning("Malformed TS, incomplete NALU, ignoring."),h;n++;k=n;l="hvc"==this.videoCodec_?a[n]>>1&63:a[n]&31}g=0}else g++;n>=e-1&&0<=k&&0<=g&&(m={data:a.subarray(k+f,e),fullData:a.subarray(k,e),type:l,time:d},b&&this.parseNalus(b,null,m))}m&&h.push(m);!h.length&&c&&(c.data=shaka.util.Uint8ArrayUtils.concat(c.data,a),c.fullData=shaka.util.Uint8ArrayUtils.concat(c.fullData,
|
|
627
|
+
a));return h};shaka.util.TsParser.prototype.getMetadata=function(){for(var a=shaka.util.TsParser.Timescale,b=[],c=$jscomp.makeIterator(this.id3Data_),d=c.next();!d.done;d=c.next())(d=this.parsePES_(d.value))&&b.push({cueTime:d.pts?d.pts/a:null,data:d.data,frames:shaka.util.Id3Utils.getID3Frames(d.data),dts:d.dts,pts:d.pts});return b};
|
|
628
|
+
shaka.util.TsParser.prototype.getAudioData=function(){for(var a=[],b=$jscomp.makeIterator(this.audioData_),c=b.next();!c.done;c=b.next())(c=this.parsePES_(c.value))&&a.push(c);return a};shaka.util.TsParser.prototype.getVideoData=function(){for(var a=shaka.util.Uint8ArrayUtils,b=[],c=$jscomp.makeIterator(this.videoData_),d=c.next();!d.done;d=c.next()){d=d.value;var e=this.parsePES_(d);e&&null!=e.pts&&null!=e.dts?b.push(e):b.length&&(d=e?e.data:d)&&(e=b.pop(),e.data=a.concat(e.data,d),b.push(e))}return b};
|
|
625
629
|
shaka.util.TsParser.prototype.getStartTime=function(){for(var a=shaka.util.TsParser.Timescale,b=null,c=$jscomp.makeIterator(this.getAudioData()),d=c.next();!d.done;d=c.next()){var e=d.value;e&&null!=e.pts&&(e=Math.min(e.dts,e.pts)/a,null==b||b>e)&&(b=e)}c=null;e=$jscomp.makeIterator(this.getVideoData());for(d=e.next();!d.done;d=e.next())(d=d.value)&&null!=d.pts&&(d=Math.min(d.dts,d.pts)/a,null==c||c>d)&&(c=d);return{audio:b,video:c}};
|
|
626
|
-
shaka.util.TsParser.prototype.getCodecs=function(){return{audio:this.audioCodec_,video:this.videoCodec_}};shaka.util.TsParser.prototype.getVideoNalus=function(){var a=[]
|
|
627
|
-
shaka.util.TsParser.prototype.getVideoResolution=function(){shaka.Deprecate.deprecateFeature(5,"TsParser","Please use getVideoInfo function instead.");var a=this.getVideoInfo();return{height:a.height,width:a.width}};
|
|
628
|
-
shaka.util.TsParser.prototype.
|
|
630
|
+
shaka.util.TsParser.prototype.getCodecs=function(){return{audio:this.audioCodec_,video:this.videoCodec_}};shaka.util.TsParser.prototype.getVideoNalus=function(){for(var a=[],b=this.getVideoData(),c=0;c<b.length;c++){var d=b[c],e=void 0;c+1<b.length&&(e=b[c+1]);a.push.apply(a,$jscomp.arrayFromIterable(this.parseNalus(d,e)))}return a};
|
|
631
|
+
shaka.util.TsParser.prototype.getVideoResolution=function(){shaka.Deprecate.deprecateFeature(5,"TsParser","Please use getVideoInfo function instead.");var a=this.getVideoInfo();return{height:a.height,width:a.width}};shaka.util.TsParser.prototype.getVideoInfo=function(){return"hvc"==this.videoCodec_?this.getHvcInfo_():this.getAvcInfo_()};
|
|
632
|
+
shaka.util.TsParser.prototype.getAvcInfo_=function(){var a=shaka.util.TsParser,b={height:null,width:null,codec:null},c=this.getVideoNalus();if(!c.length)return b;c=c.find(function(q){return q.type==a.H264_NALU_TYPE_SPS_});if(!c)return b;c=new shaka.util.ExpGolomb(c.data);var d=c.readUnsignedByte(),e=c.readUnsignedByte(),f=c.readUnsignedByte();c.skipExpGolomb();if(a.PROFILES_WITH_OPTIONAL_SPS_DATA_.includes(d)){var g=c.readUnsignedExpGolomb();3===g&&c.skipBits(1);c.skipExpGolomb();c.skipExpGolomb();
|
|
629
633
|
c.skipBits(1);if(c.readBoolean()){g=3!==g?8:12;for(var h=0;h<g;h++)c.readBoolean()&&(6>h?c.skipScalingList(16):c.skipScalingList(64))}}c.skipExpGolomb();g=c.readUnsignedExpGolomb();if(0===g)c.readUnsignedExpGolomb();else if(1===g)for(c.skipBits(1),c.skipExpGolomb(),c.skipExpGolomb(),g=c.readUnsignedExpGolomb(),h=0;h<g;h++)c.skipExpGolomb();c.skipExpGolomb();c.skipBits(1);g=c.readUnsignedExpGolomb();h=c.readUnsignedExpGolomb();var k=c.readBits(1);0===k&&c.skipBits(1);c.skipBits(1);var l=0,m=0,n=0,
|
|
630
|
-
p=0;c.readBoolean()&&(l=c.readUnsignedExpGolomb(),m=c.readUnsignedExpGolomb(),n=c.readUnsignedExpGolomb(),p=c.readUnsignedExpGolomb());b.height=String((2-k)*(h+1)*16-2*n-2*p);b.width=String(16*(g+1)-2*l-2*m);b.codec="avc1."+this.byteToHex_(d)+this.byteToHex_(e)+this.byteToHex_(f);return b};
|
|
631
|
-
shaka.util.TsParser.
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
shaka.
|
|
636
|
-
shaka.
|
|
637
|
-
shaka.
|
|
638
|
-
shaka.
|
|
639
|
-
|
|
640
|
-
shaka.
|
|
634
|
+
p=0;c.readBoolean()&&(l=c.readUnsignedExpGolomb(),m=c.readUnsignedExpGolomb(),n=c.readUnsignedExpGolomb(),p=c.readUnsignedExpGolomb());b.height=String((2-k)*(h+1)*16-2*n-2*p);b.width=String(16*(g+1)-2*l-2*m);b.codec="avc1."+this.byteToHex_(d)+this.byteToHex_(e)+this.byteToHex_(f);return b};
|
|
635
|
+
shaka.util.TsParser.prototype.getHvcInfo_=function(){var a=shaka.util.TsParser,b={height:null,width:null,codec:null},c=this.getVideoNalus();if(!c.length)return b;c=c.find(function(z){return z.type==a.H265_NALU_TYPE_SPS_});if(!c)return b;var d=new shaka.util.ExpGolomb(c.fullData,!0);d.readUnsignedByte();d.readUnsignedByte();d.readBits(4);var e=d.readBits(3);d.readBoolean();var f=d.readBits(2),g=d.readBits(1),h=d.readBits(5),k=d.readBits(32);c=d.readUnsignedByte();for(var l=d.readUnsignedByte(),m=d.readUnsignedByte(),
|
|
636
|
+
n=d.readUnsignedByte(),p=d.readUnsignedByte(),q=d.readUnsignedByte(),r=d.readUnsignedByte(),t=[],v=[],u=0;u<e;u++)t.push(d.readBoolean()),v.push(d.readBoolean());if(0<e)for(u=e;8>u;u++)d.readBits(2);for(u=0;u<e;u++)t[u]&&d.readBits(88),v[u]&&d.readUnsignedByte();d.readUnsignedExpGolomb();e=d.readUnsignedExpGolomb();3==e&&d.readBits(1);t=d.readUnsignedExpGolomb();v=d.readUnsignedExpGolomb();var w=u=0,x=0,y=0;d.readBoolean()&&(u+=d.readUnsignedExpGolomb(),w+=d.readUnsignedExpGolomb(),x+=d.readUnsignedExpGolomb(),
|
|
637
|
+
y+=d.readUnsignedExpGolomb());b.width=String(t-(u+w)*(1===e||2===e?2:1));b.height=String(v-(x+y)*(1===e?2:1));d=["","A","B","C"][f];k=function(z){for(var A=0,C=0;32>C;C++)A|=(z>>C&1)<<31-C;return A>>>0}(k);g=1==g?"H":"L";h="hvc1"+("."+d+h)+("."+k.toString(16).toUpperCase());h+="."+g+r;q&&(h+="."+q.toString(16).toUpperCase());p&&(h+="."+p.toString(16).toUpperCase());n&&(h+="."+n.toString(16).toUpperCase());m&&(h+="."+m.toString(16).toUpperCase());l&&(h+="."+l.toString(16).toUpperCase());c&&(h+="."+
|
|
638
|
+
c.toString(16).toUpperCase());b.codec=h;return b};shaka.util.TsParser.prototype.byteToHex_=function(a){return("0"+a.toString(16).toUpperCase()).slice(-2)};shaka.util.TsParser.probe=function(a){a=shaka.util.TsParser.syncOffset(a);if(0>a)return!1;0<a&&shaka.log.warning("MPEG2-TS detected but first sync word found @ offset "+a+", junk ahead ?");return!0};
|
|
639
|
+
shaka.util.TsParser.syncOffset=function(a){for(var b=shaka.util.TsParser.PacketLength_,c=Math.min(1E3,a.length-3*b),d=0;d<c;){if(71==a[d]&&71==a[d+b]&&71==a[d+2*b])return d;d++}return-1};goog.exportSymbol("shaka.util.TsParser",shaka.util.TsParser);goog.exportProperty(shaka.util.TsParser,"syncOffset",shaka.util.TsParser.syncOffset);goog.exportProperty(shaka.util.TsParser,"probe",shaka.util.TsParser.probe);goog.exportProperty(shaka.util.TsParser.prototype,"getVideoInfo",shaka.util.TsParser.prototype.getVideoInfo);
|
|
640
|
+
goog.exportProperty(shaka.util.TsParser.prototype,"getVideoResolution",shaka.util.TsParser.prototype.getVideoResolution);goog.exportProperty(shaka.util.TsParser.prototype,"getVideoNalus",shaka.util.TsParser.prototype.getVideoNalus);goog.exportProperty(shaka.util.TsParser.prototype,"getCodecs",shaka.util.TsParser.prototype.getCodecs);goog.exportProperty(shaka.util.TsParser.prototype,"getStartTime",shaka.util.TsParser.prototype.getStartTime);
|
|
641
|
+
goog.exportProperty(shaka.util.TsParser.prototype,"getVideoData",shaka.util.TsParser.prototype.getVideoData);goog.exportProperty(shaka.util.TsParser.prototype,"getAudioData",shaka.util.TsParser.prototype.getAudioData);goog.exportProperty(shaka.util.TsParser.prototype,"getMetadata",shaka.util.TsParser.prototype.getMetadata);goog.exportProperty(shaka.util.TsParser.prototype,"parseNalus",shaka.util.TsParser.prototype.parseNalus);goog.exportProperty(shaka.util.TsParser.prototype,"parseAvcNalus",shaka.util.TsParser.prototype.parseAvcNalus);
|
|
642
|
+
goog.exportProperty(shaka.util.TsParser.prototype,"parse",shaka.util.TsParser.prototype.parse);goog.exportProperty(shaka.util.TsParser.prototype,"clearData",shaka.util.TsParser.prototype.clearData);shaka.util.TsParser.Timescale=9E4;goog.exportProperty(shaka.util.TsParser,"Timescale",shaka.util.TsParser.Timescale);shaka.util.TsParser.PacketLength_=188;shaka.util.TsParser.H264_NALU_TYPE_SPS_=7;shaka.util.TsParser.H265_NALU_TYPE_SPS_=33;
|
|
643
|
+
shaka.util.TsParser.PROFILES_WITH_OPTIONAL_SPS_DATA_=[100,110,122,244,44,83,86,118,128,138,139,134];shaka.lcevc={};shaka.lcevc.Dec=function(a,b,c){this.dec_=null;this.variantId_=-1;this.media_=a;this.canvas_=b;this.decConfig_=c;this.toBeDeprecated_=!1;this.create_()};shaka.lcevc.Dec.prototype.appendBuffer=function(a,b){this.dec_&&this.dec_.appendBuffer(a,"video",this.variantId_,-b)};shaka.lcevc.Dec.prototype.hideCanvas=function(){this.dec_&&this.canvas_.classList.add("shaka-hidden")};
|
|
644
|
+
shaka.lcevc.Dec.prototype.create_=function(){this.isSupported_()&&!this.dec_&&this.lcevcLib_.SupportObject.webGLSupport(this.canvas_)&&(this.canvas_.classList.remove("shaka-hidden"),this.dec_=this.toBeDeprecated_?new this.lcevcLib_.LcevcDil(this.media_,this.canvas_,this.decConfig_):new this.lcevcLib_.LCEVCdec(this.media_,this.canvas_,this.decConfig_))};shaka.lcevc.Dec.prototype.release=function(){this.dec_&&(this.dec_.close(),this.dec_=null)};
|
|
645
|
+
shaka.lcevc.Dec.prototype.isSupported_=function(){"undefined"===typeof libDPIModule&&shaka.log.alwaysWarn("Could not find LCEVC Library dependencies on this page");if("undefined"!==typeof LCEVCdec)this.lcevcLib_=LCEVCdec;else if("undefined"!==typeof LcevcDil)this.lcevcLib_=LcevcDil,this.toBeDeprecated_=!0,shaka.Deprecate.deprecateFeature(5,"LcevcDil","lcevc_dil.js is deprecated, please use lcevc_dec.js instead");else return shaka.log.alwaysWarn("Could not find LCEVC Library on this page"),!1;if("undefined"===
|
|
646
|
+
typeof this.lcevcLib_.SupportObject)return shaka.log.alwaysWarn("Could not find LCEVC Library on this page"),!1;this.lcevcLib_.SupportObject.SupportStatus||shaka.log.alwaysWarn(this.lcevcLib_.SupportObject.SupportError);return"undefined"!==typeof this.lcevcLib_&&"undefined"!==typeof libDPIModule&&this.canvas_ instanceof HTMLCanvasElement&&this.lcevcLib_.SupportObject.SupportStatus};
|
|
647
|
+
shaka.lcevc.Dec.prototype.updateVariant=function(a,b){var c=shaka.lcevc.Dec.ContainerFormat.MPEG2_TS,d=shaka.lcevc.Dec.StreamingFormat.OTHER;switch(a.mimeType){case "video/webm":c=shaka.lcevc.Dec.ContainerFormat.WEBM;break;case "video/mp4":c=shaka.lcevc.Dec.ContainerFormat.MP4}switch(b){case "DASH":d=shaka.lcevc.Dec.StreamingFormat.DASH;break;case "HLS":d=shaka.lcevc.Dec.StreamingFormat.HLS}this.dec_&&(this.variantId_=a.id,this.dec_.setLevelSwitching(a.id,!0),this.dec_.setContainerFormat(c),this.toBeDeprecated_||
|
|
648
|
+
this.dec_.setStreamingFormat(d))};goog.exportSymbol("shaka.lcevc.Dec",shaka.lcevc.Dec);goog.exportProperty(shaka.lcevc.Dec.prototype,"release",shaka.lcevc.Dec.prototype.release);shaka.lcevc.Dec.ContainerFormat={MPEG2_TS:0,WEBM:1,MP4:2};shaka.lcevc.Dec.StreamingFormat={HLS:0,DASH:1,OTHER:-1};shaka.media.MediaSourceEngine=function(a,b,c,d){var e=this;this.video_=a;this.config_=null;this.textDisplayer_=b;this.sourceBuffers_={};this.sourceBufferTypes_={};this.expectedEncryption_={};this.textEngine_=null;this.segmentRelativeVttTiming_=!1;a=function(f,g,h){};this.onMetadata_=c||a;this.lcevcDec_=d||null;this.queues_={};this.eventManager_=new shaka.util.EventManager;this.transmuxers_={};this.captionParser_=null;this.mediaSourceOpen_=new shaka.util.PublicPromise;this.url_="";this.playbackHasBegun_=
|
|
649
|
+
!1;this.mediaSource_=this.createMediaSource(this.mediaSourceOpen_);this.reloadingMediaSource_=!1;this.destroyer_=new shaka.util.Destroyer(function(){return e.doDestroy_()});this.sequenceMode_=!1;this.manifestType_=shaka.media.ManifestParser.UNKNOWN;this.attemptTimestampOffsetCalculation_=this.ignoreManifestTimestampsInSegmentsMode_=!1;this.textSequenceModeOffset_=new shaka.util.PublicPromise;this.needSplitMuxedContent_=!1};
|
|
650
|
+
shaka.media.MediaSourceEngine.prototype.createMediaSource=function(a){var b=this,c=new MediaSource;this.eventManager_.listenOnce(c,"sourceopen",function(){return b.onSourceOpen_(a)});this.eventManager_.listenOnce(this.video_,"playing",function(){b.playbackHasBegun_=!0});this.url_=shaka.media.MediaSourceEngine.createObjectURL(c);this.video_.src=this.url_;return c};
|
|
651
|
+
shaka.media.MediaSourceEngine.prototype.onSourceOpen_=function(a){goog.asserts.assert(this.url_,"Must have object URL");URL.revokeObjectURL(this.url_);a.resolve()};
|
|
641
652
|
shaka.media.MediaSourceEngine.isStreamSupported=function(a){var b=shaka.util.MimeUtils,c=b.getFullType(a.mimeType,a.codecs),d=b.getExtendedType(a);b=b.getFullTypeWithAllCodecs(a.mimeType,a.codecs);var e=shaka.transmuxer.TransmuxerEngine;return shaka.text.TextEngine.isTypeSupported(c)||shaka.media.Capabilities.isTypeSupported(d)||e.isSupported(b,a.type)};
|
|
642
653
|
shaka.media.MediaSourceEngine.probeSupport=function(){var a='video/mp4; codecs="avc1.42E01E",video/mp4; codecs="avc3.42E01E",video/mp4; codecs="hev1.1.6.L93.90",video/mp4; codecs="hvc1.1.6.L93.90",video/mp4; codecs="hev1.2.4.L153.B0"; eotf="smpte2084",video/mp4; codecs="hvc1.2.4.L153.B0"; eotf="smpte2084",video/mp4; codecs="vp9",video/mp4; codecs="vp09.00.10.08",video/mp4; codecs="av01.0.01M.08",audio/mp4; codecs="mp4a.40.2",audio/mp4; codecs="ac-3",audio/mp4; codecs="ec-3",audio/mp4; codecs="opus",audio/mp4; codecs="flac",audio/mp4; codecs="dtsc",audio/mp4; codecs="dtse",audio/mp4; codecs="dtsx",video/webm; codecs="vp8",video/webm; codecs="vp9",video/webm; codecs="vp09.00.10.08",audio/webm; codecs="vorbis",audio/webm; codecs="opus",video/mp2t; codecs="avc1.42E01E",video/mp2t; codecs="avc3.42E01E",video/mp2t; codecs="hvc1.1.6.L93.90",video/mp2t; codecs="mp4a.40.2",video/mp2t; codecs="ac-3",video/mp2t; codecs="ec-3",text/vtt,application/mp4; codecs="wvtt",application/ttml+xml,application/mp4; codecs="stpp"'.split(",").concat($jscomp.arrayFromIterable(shaka.util.MimeUtils.RAW_FORMATS)),b=
|
|
643
654
|
{};a=$jscomp.makeIterator(a);for(var c=a.next();!c.done;c=a.next()){c=c.value;shaka.util.Platform.supportsMediaSource()?shaka.text.TextEngine.isTypeSupported(c)?b[c]=!0:b[c]=shaka.media.Capabilities.isTypeSupported(c)||shaka.transmuxer.TransmuxerEngine.isSupported(c):b[c]=shaka.util.Platform.supportsMediaType(c);var d=c.split(";")[0];b[d]=b[d]||b[c]}return b};shaka.media.MediaSourceEngine.prototype.destroy=function(){return this.destroyer_.destroy()};
|
|
644
655
|
shaka.media.MediaSourceEngine.prototype.doDestroy_=function(){var a=this,b,c,d,e,f,g,h,k,l,m;return $jscomp.asyncExecutePromiseGeneratorProgram(function(n){if(1==n.nextAddress){b=shaka.util.Functional;c=[];for(d in a.queues_)for(e=a.queues_[d],f=e[0],a.queues_[d]=e.slice(0,1),f&&c.push(f.p.catch(b.noop)),g=$jscomp.makeIterator(e.slice(1)),h=g.next();!h.done;h=g.next())k=h.value,k.p.reject(shaka.util.Destroyer.destroyedError());a.textEngine_&&c.push(a.textEngine_.destroy());a.textDisplayer_&&c.push(a.textDisplayer_.destroy());
|
|
645
656
|
for(l in a.transmuxers_)c.push(a.transmuxers_[l].destroy());return n.yield(Promise.all(c),2)}a.eventManager_&&(a.eventManager_.release(),a.eventManager_=null);a.video_&&(a.video_.removeAttribute("src"),a.video_.load(),a.video_=null);a.config_=null;a.mediaSource_=null;a.textEngine_=null;a.textDisplayer_=null;a.sourceBuffers_={};a.transmuxers_={};a.captionParser_=null;if(goog.DEBUG)for(m in a.queues_)goog.asserts.assert(0==a.queues_[m].length,m+" queue should be empty after destroy!");a.queues_={};
|
|
646
|
-
a.
|
|
647
|
-
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;return $jscomp.asyncExecutePromiseGeneratorProgram(function(
|
|
648
|
-
|
|
649
|
-
shaka.media.MediaSourceEngine.prototype.initSourceBuffer_=function(a,b){var
|
|
650
|
-
!0;
|
|
651
|
-
this.mediaSource_.readyState+"expected 'open'");}this.sequenceMode_&&(
|
|
652
|
-
shaka.media.MediaSourceEngine.prototype.reinitText=function(a,b,c){this.textEngine_||(this.textEngine_=new shaka.text.TextEngine(this.textDisplayer_));this.textEngine_.initParser(a,b,c||this.segmentRelativeVttTiming_,this.manifestType_)};
|
|
653
|
-
shaka.media.MediaSourceEngine.prototype.
|
|
657
|
+
a.lcevcDec_=null;n.jumpToEnd()})};shaka.media.MediaSourceEngine.prototype.open=function(){return this.mediaSourceOpen_};
|
|
658
|
+
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;return $jscomp.asyncExecutePromiseGeneratorProgram(function(m){if(1==m.nextAddress)return f=shaka.util.ManifestParserUtils.ContentType,m.yield(e.mediaSourceOpen_,2);e.sequenceMode_=b;e.manifestType_=c;e.ignoreManifestTimestampsInSegmentsMode_=d;e.attemptTimestampOffsetCalculation_=!e.sequenceMode_&&e.manifestType_==shaka.media.ManifestParser.HLS&&
|
|
659
|
+
!e.ignoreManifestTimestampsInSegmentsMode_;g=$jscomp.makeIterator(a.keys());for(h=g.next();!h.done;h=g.next())k=h.value,l=a.get(k),e.initSourceBuffer_(k,l,l.codecs),e.needSplitMuxedContent_?(e.queues_[f.AUDIO]=[],e.queues_[f.VIDEO]=[]):e.queues_[k]=[];m.jumpToEnd()})};
|
|
660
|
+
shaka.media.MediaSourceEngine.prototype.initSourceBuffer_=function(a,b,c){var d=this,e=shaka.util.ManifestParserUtils.ContentType;goog.asserts.assert(shaka.media.MediaSourceEngine.isStreamSupported(b),"Type negotiation should happen before MediaSourceEngine.init!");var f=shaka.util.MimeUtils.getFullType(b.mimeType,c);if(a==e.TEXT)this.reinitText(f,this.sequenceMode_,b.external);else{var g=this.config_.forceTransmux;if(!shaka.media.Capabilities.isTypeSupported(f)||!this.sequenceMode_&&shaka.util.MimeUtils.RAW_FORMATS.includes(f))g=
|
|
661
|
+
!0;var h=shaka.util.MimeUtils.getFullTypeWithAllCodecs(b.mimeType,c),k=shaka.transmuxer.TransmuxerEngine;if(g){g=shaka.util.ManifestParserUtils.guessCodecsSafe(e.AUDIO,(c||"").split(","));c=shaka.util.ManifestParserUtils.guessCodecsSafe(e.VIDEO,(c||"").split(","));if(g&&c){this.needSplitMuxedContent_=!0;this.initSourceBuffer_(e.AUDIO,b,g);this.initSourceBuffer_(e.VIDEO,b,c);return}if(e=k.findTransmuxer(h))f=e(),this.transmuxers_[a]=f,f=f.convertCodecs(a,h)}h=f+this.config_.sourceBufferExtraFeatures;
|
|
662
|
+
this.destroyer_.ensureNotDestroyed();try{var l=this.mediaSource_.addSourceBuffer(h)}catch(m){throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MEDIA,shaka.util.Error.Code.MEDIA_SOURCE_OPERATION_THREW,m,"The mediaSource_ status was"+this.mediaSource_.readyState+"expected 'open'");}this.sequenceMode_&&(l.mode=shaka.media.MediaSourceEngine.SourceBufferMode_.SEQUENCE);this.eventManager_.listen(l,"error",function(){return d.onError_(a)});this.eventManager_.listen(l,
|
|
663
|
+
"updateend",function(){return d.onUpdateEnd_(a)});this.sourceBuffers_[a]=l;this.sourceBufferTypes_[a]=f;this.expectedEncryption_[a]=!!b.drmInfos.length}};shaka.media.MediaSourceEngine.prototype.configure=function(a){this.config_=a};shaka.media.MediaSourceEngine.prototype.reinitText=function(a,b,c){this.textEngine_||(this.textEngine_=new shaka.text.TextEngine(this.textDisplayer_));this.textEngine_.initParser(a,b,c||this.segmentRelativeVttTiming_,this.manifestType_)};
|
|
664
|
+
shaka.media.MediaSourceEngine.prototype.ended=function(){return this.reloadingMediaSource_?!1:this.mediaSource_?"ended"==this.mediaSource_.readyState:!0};shaka.media.MediaSourceEngine.prototype.bufferStart=function(a){return this.reloadingMediaSource_||!Object.keys(this.sourceBuffers_).length?null:a==shaka.util.ManifestParserUtils.ContentType.TEXT?this.textEngine_.bufferStart():shaka.media.TimeRangesUtils.bufferStart(this.getBuffered_(a))};
|
|
665
|
+
shaka.media.MediaSourceEngine.prototype.bufferEnd=function(a){return this.reloadingMediaSource_?null:a==shaka.util.ManifestParserUtils.ContentType.TEXT?this.textEngine_.bufferEnd():shaka.media.TimeRangesUtils.bufferEnd(this.getBuffered_(a))};
|
|
654
666
|
shaka.media.MediaSourceEngine.prototype.isBuffered=function(a,b){if(this.reloadingMediaSource_)return!1;if(a==shaka.util.ManifestParserUtils.ContentType.TEXT)return this.textEngine_.isBuffered(b);a=this.getBuffered_(a);return shaka.media.TimeRangesUtils.isBuffered(a,b)};
|
|
655
667
|
shaka.media.MediaSourceEngine.prototype.bufferedAheadOf=function(a,b){if(this.reloadingMediaSource_)return 0;if(a==shaka.util.ManifestParserUtils.ContentType.TEXT)return this.textEngine_.bufferedAheadOf(b);a=this.getBuffered_(a);return shaka.media.TimeRangesUtils.bufferedAheadOf(a,b)};
|
|
656
668
|
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:this.reloadingMediaSource_?[]:b.getBufferedInfo(this.getBuffered_(a.AUDIO)),video:this.reloadingMediaSource_?[]:b.getBufferedInfo(this.getBuffered_(a.VIDEO)),text:[]};if(this.textEngine_){b=this.textEngine_.bufferStart();var c=this.textEngine_.bufferEnd();null!=b&&null!=
|
|
@@ -658,27 +670,29 @@ c&&a.text.push({start:b,end:c})}return a};shaka.media.MediaSourceEngine.prototyp
|
|
|
658
670
|
shaka.media.MediaSourceEngine.prototype.getTimestampAndDispatchMetadata_=function(a,b,c,d,e){var f=null,g=shaka.util.BufferUtils.toUint8(b);if(shaka.util.MimeUtils.RAW_FORMATS.includes(d))e=shaka.util.Id3Utils.getID3Frames(g),e.length&&c&&((a=e.find(function(m){return"com.apple.streaming.transportStreamTimestamp"===m.description}))&&a.data&&(f=Math.round(a.data)/1E3),this.onMetadata_([{cueTime:c.startTime,data:g,frames:e,dts:c.startTime,pts:c.startTime}],0,c.endTime));else if(d.includes("/mp4")&&
|
|
659
671
|
c&&0==c.timestampOffset&&c.initSegmentReference&&c.initSegmentReference.timescale){var h=c.initSegmentReference.timescale;if(!isNaN(h)){c=shaka.util.Mp4Parser;var k=0,l=!1;(new c).box("moof",c.children).box("traf",c.children).fullBox("tfdt",function(m){goog.asserts.assert(0==m.version||1==m.version,"TFDT version can only be 0 or 1");k=shaka.util.Mp4BoxParsers.parseTFDTInaccurate(m.reader,m.version).baseMediaDecodeTime/h;l=!0;m.parser.stop()}).parse(b,!0);l&&(f=k)}}else if(!d.includes("/mp4")&&!d.includes("/webm")&&
|
|
660
672
|
shaka.util.TsParser.probe(g)&&(g=(new shaka.util.TsParser).parse(g),a=g.getStartTime()[a],null!=a&&(f=a),g=g.getMetadata(),g.length))this.onMetadata_(g,e,c?c.endTime:null);return f};
|
|
661
|
-
shaka.media.MediaSourceEngine.prototype.appendBuffer=function(a,b,c,d,e,f,g,h){f=void 0===f?!1:f;g=void 0===g?!1:g;h=void 0===h?!1:h;var
|
|
662
|
-
c?c.startTime:null,c?c.endTime:null),5);case 5:return
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
y))&&(
|
|
666
|
-
|
|
667
|
-
shaka.media.MediaSourceEngine.prototype.
|
|
668
|
-
shaka.media.MediaSourceEngine.prototype.
|
|
669
|
-
shaka.media.MediaSourceEngine.prototype.
|
|
670
|
-
function(){return
|
|
671
|
-
shaka.media.MediaSourceEngine.prototype.
|
|
672
|
-
|
|
673
|
+
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,v,u,w,x,y,z,A,C,D,G;return $jscomp.asyncExecutePromiseGeneratorProgram(function(B){switch(B.nextAddress){case 1:m=shaka.util.ManifestParserUtils.ContentType;if(a!=m.TEXT){B.jumpTo(2);break}if(!l.sequenceMode_){B.jumpTo(3);break}return B.yield(l.textSequenceModeOffset_,4);case 4:n=B.yieldResult,l.textEngine_.setTimestampOffset(n);
|
|
674
|
+
case 3:return B.yield(l.textEngine_.appendBuffer(b,c?c.startTime:null,c?c.endTime:null),5);case 5:return B.return();case 2:if(k||!l.needSplitMuxedContent_){B.jumpTo(6);break}return B.yield(l.appendBuffer(m.AUDIO,b,c,d,e,f,g,h,!0),7);case 7:return B.yield(l.appendBuffer(m.VIDEO,b,c,d,e,f,g,h,!0),8);case 8:return B.return();case 6:if(!l.sourceBuffers_[a])return shaka.log.warning("Attempted to restore a non-existent source buffer"),B.return();p=l.sourceBuffers_[a].timestampOffset;q=l.sourceBufferTypes_[a];
|
|
675
|
+
l.transmuxers_[a]&&(q=l.transmuxers_[a].getOrginalMimeType());if(c&&(r=l.getTimestampAndDispatchMetadata_(a,b,c,q,p),null!=r)){t=c.startTime-r;v=Math.abs(p-t);if(.1<=v||f||g)p=t,l.attemptTimestampOffsetCalculation_&&(l.enqueueOperation_(a,function(){return l.abort_(a)}),l.enqueueOperation_(a,function(){return l.setTimestampOffset_(a,p)}));u=a==m.VIDEO||!(m.VIDEO in l.sourceBuffers_);l.sequenceMode_&&u&&l.textSequenceModeOffset_.resolve(p)}e&&a==m.VIDEO&&(l.textEngine_||l.reinitText(shaka.util.MimeUtils.CEA608_CLOSED_CAPTION_MIMETYPE,
|
|
676
|
+
l.sequenceMode_,!1),l.captionParser_||(w=q.split(";",1)[0],l.captionParser_=l.getCaptionParser(w)),c?(x=l.captionParser_.parseFrom(b),x.length&&l.textEngine_.storeAndAppendClosedCaptions(x,c.startTime,c.endTime,p)):l.captionParser_.init(b));if(!l.transmuxers_[a]){B.jumpTo(9);break}return B.yield(l.transmuxers_[a].transmux(b,d,c,l.mediaSource_.duration,a),10);case 10:b=B.yieldResult;case 9:return b=l.workAroundBrokenPlatforms_(b,c?c.startTime:null,a),c&&l.sequenceMode_&&a!=m.TEXT&&(f||g)&&(y=c.startTime,
|
|
677
|
+
l.enqueueOperation_(a,function(){return l.abort_(a)}),l.enqueueOperation_(a,function(){return l.setTimestampOffset_(a,y)})),z=null,B.yield(l.enqueueOperation_(a,function(){goog.DEBUG&&c&&!c.isPreload()&&!h&&(z=l.getBuffered_(a));l.append_(a,b,p)}),11);case 11:goog.DEBUG&&c&&!c.isPreload()&&!h&&(A=l.getBuffered_(a),C=shaka.media.TimeRangesUtils.computeAddedRange(z,A))&&(D=c.endTime-c.startTime,G=Math.abs(C.end-c.endTime),.1<D&&G>D/2&&shaka.log.error("Possible encoding problem detected!","Unexpected buffered range for reference",
|
|
678
|
+
c,"from URIs",c.getUris(),"should be",{start:c.startTime,end:c.endTime},"but got",C)),B.jumpToEnd()}})};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)};
|
|
679
|
+
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)}),4)):d.needSplitMuxedContent_?f.yield(d.enqueueOperation_(e.AUDIO,function(){return d.remove_(e.AUDIO,b,c)}),0):f.jumpTo(0)})};
|
|
680
|
+
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)}),4)):b.needSplitMuxedContent_?d.yield(b.enqueueOperation_(c.AUDIO,function(){return b.remove_(c.AUDIO,0,b.mediaSource_.duration)}),
|
|
681
|
+
0):d.jumpTo(0)})};shaka.media.MediaSourceEngine.prototype.resetCaptionParser=function(){this.captionParser_&&this.captionParser_.reset()};
|
|
682
|
+
shaka.media.MediaSourceEngine.prototype.flush=function(a){var b=this,c;return $jscomp.asyncExecutePromiseGeneratorProgram(function(d){return 1==d.nextAddress?(c=shaka.util.ManifestParserUtils.ContentType,a==c.TEXT?d.return():d.yield(b.enqueueOperation_(a,function(){return b.flush_(a)}),2)):b.needSplitMuxedContent_?d.yield(b.enqueueOperation_(c.AUDIO,function(){return b.flush_(c.AUDIO)}),0):d.jumpTo(0)})};
|
|
683
|
+
shaka.media.MediaSourceEngine.prototype.setStreamProperties=function(a,b,c,d,e,f,g){var h=this,k,l,m;return $jscomp.asyncExecutePromiseGeneratorProgram(function(n){if(1==n.nextAddress){k=shaka.util.ManifestParserUtils.ContentType;if(a==k.TEXT)return e||h.textEngine_.setTimestampOffset(b),h.textEngine_.setAppendWindow(c,d),n.return();l=[];return n.yield(h.codecSwitchIfNecessary_(a,f,g),2)}m=n.yieldResult;m||(l.push(h.enqueueOperation_(a,function(){return h.abort_(a)})),h.needSplitMuxedContent_&&l.push(h.enqueueOperation_(k.AUDIO,
|
|
684
|
+
function(){return h.abort_(k.AUDIO)})));e||(l.push(h.enqueueOperation_(a,function(){return h.setTimestampOffset_(a,b)})),h.needSplitMuxedContent_&&l.push(h.enqueueOperation_(k.AUDIO,function(){return h.setTimestampOffset_(k.AUDIO,b)})));l.push(h.enqueueOperation_(a,function(){return h.setAppendWindow_(a,c,d)}));h.needSplitMuxedContent_&&l.push(h.enqueueOperation_(k.AUDIO,function(){return h.setAppendWindow_(k.AUDIO,c,d)}));return n.yield(Promise.all(l),0)})};
|
|
685
|
+
shaka.media.MediaSourceEngine.prototype.resync=function(a,b){var c=this,d;return $jscomp.asyncExecutePromiseGeneratorProgram(function(e){if(1==e.nextAddress){d=shaka.util.ManifestParserUtils.ContentType;if(a==d.TEXT)return e.return();c.enqueueOperation_(a,function(){return c.abort_(a)});c.needSplitMuxedContent_&&c.enqueueOperation_(d.AUDIO,function(){return c.abort_(d.AUDIO)});return e.yield(c.enqueueOperation_(a,function(){return c.setTimestampOffset_(a,b)}),2)}return c.needSplitMuxedContent_?e.yield(c.enqueueOperation_(d.AUDIO,
|
|
686
|
+
function(){return c.setTimestampOffset_(d.AUDIO,b)}),0):e.jumpTo(0)})};shaka.media.MediaSourceEngine.prototype.endOfStream=function(a){var b=this;return $jscomp.asyncExecutePromiseGeneratorProgram(function(c){return c.yield(b.enqueueBlockingOperation_(function(){b.ended()||"closed"===b.mediaSource_.readyState||(a?b.mediaSource_.endOfStream(a):b.mediaSource_.endOfStream())}),0)})};
|
|
673
687
|
shaka.media.MediaSourceEngine.prototype.setDuration=function(a){var b=this;return $jscomp.asyncExecutePromiseGeneratorProgram(function(c){return c.yield(b.enqueueBlockingOperation_(function(){if(a<b.mediaSource_.duration)for(var d in b.sourceBuffers_){var e={start:function(){},p:new shaka.util.PublicPromise};b.queues_[d].unshift(e)}b.mediaSource_.duration=a}),0)})};shaka.media.MediaSourceEngine.prototype.getDuration=function(){return this.mediaSource_.duration};
|
|
674
|
-
shaka.media.MediaSourceEngine.prototype.append_=function(a,b){a==shaka.util.ManifestParserUtils.ContentType.VIDEO&&this.
|
|
688
|
+
shaka.media.MediaSourceEngine.prototype.append_=function(a,b,c){a==shaka.util.ManifestParserUtils.ContentType.VIDEO&&this.lcevcDec_&&this.lcevcDec_.appendBuffer(b,c);this.sourceBuffers_[a].appendBuffer(b)};shaka.media.MediaSourceEngine.prototype.remove_=function(a,b,c){if(c<=b)this.onUpdateEnd_(a);else this.sourceBuffers_[a].remove(b,c)};
|
|
675
689
|
shaka.media.MediaSourceEngine.prototype.abort_=function(a){var b=this.sourceBuffers_[a].appendWindowStart,c=this.sourceBuffers_[a].appendWindowEnd;this.sourceBuffers_[a].abort();this.sourceBuffers_[a].appendWindowStart=b;this.sourceBuffers_[a].appendWindowEnd=c;this.onUpdateEnd_(a)};shaka.media.MediaSourceEngine.prototype.flush_=function(a){goog.asserts.assert(0==this.video_.buffered.length,"MediaSourceEngine.flush_ should only be used after clearing all data!");this.video_.currentTime-=.001;this.onUpdateEnd_(a)};
|
|
676
690
|
shaka.media.MediaSourceEngine.prototype.setTimestampOffset_=function(a,b){0>b&&(b+=.001);this.sourceBuffers_[a].timestampOffset=b;this.onUpdateEnd_(a)};shaka.media.MediaSourceEngine.prototype.setAppendWindow_=function(a,b,c){this.sourceBuffers_[a].appendWindowStart=0;this.sourceBuffers_[a].appendWindowEnd=c;this.sourceBuffers_[a].appendWindowStart=b;this.onUpdateEnd_(a)};
|
|
677
691
|
shaka.media.MediaSourceEngine.prototype.onError_=function(a){var b=this.queues_[a][0];goog.asserts.assert(b,"Spurious error event!");goog.asserts.assert(!this.sourceBuffers_[a].updating,"SourceBuffer should not be updating on error!");b.p.reject(new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MEDIA,shaka.util.Error.Code.MEDIA_SOURCE_OPERATION_FAILED,this.video_.error?this.video_.error.code:0))};
|
|
678
692
|
shaka.media.MediaSourceEngine.prototype.onUpdateEnd_=function(a){if(!this.reloadingMediaSource_){var b=this.queues_[a][0];goog.asserts.assert(b,"Spurious updateend event!");b&&(goog.asserts.assert(!this.sourceBuffers_[a].updating,"SourceBuffer should not be updating on updateend!"),b.p.resolve(),this.popFromQueue_(a))}};
|
|
679
693
|
shaka.media.MediaSourceEngine.prototype.enqueueOperation_=function(a,b){this.destroyer_.ensureNotDestroyed();b={start:b,p:new shaka.util.PublicPromise};this.queues_[a].push(b);1==this.queues_[a].length&&this.startOperation_(a);return b.p};
|
|
680
|
-
shaka.media.MediaSourceEngine.prototype.enqueueBlockingOperation_=function(a){var b=this,c,d,e,f,g,h,k,l,m;return $jscomp.asyncExecutePromiseGeneratorProgram(function(n){switch(n.nextAddress){case 1:b.destroyer_.ensureNotDestroyed();c=[];d={};for(e in b.sourceBuffers_)d.$jscomp$loop$prop$ready$
|
|
681
|
-
1==b.queues_[e].length&&f.start(),d={$jscomp$loop$prop$ready$
|
|
694
|
+
shaka.media.MediaSourceEngine.prototype.enqueueBlockingOperation_=function(a){var b=this,c,d,e,f,g,h,k,l,m;return $jscomp.asyncExecutePromiseGeneratorProgram(function(n){switch(n.nextAddress){case 1:b.destroyer_.ensureNotDestroyed();c=[];d={};for(e in b.sourceBuffers_)d.$jscomp$loop$prop$ready$763=new shaka.util.PublicPromise,f={start:function(p){return function(){return p.$jscomp$loop$prop$ready$763.resolve()}}(d),p:d.$jscomp$loop$prop$ready$763},b.queues_[e].push(f),c.push(d.$jscomp$loop$prop$ready$763),
|
|
695
|
+
1==b.queues_[e].length&&f.start(),d={$jscomp$loop$prop$ready$763:d.$jscomp$loop$prop$ready$763};n.setCatchFinallyBlocks(2);return n.yield(Promise.all(c),4);case 4:n.leaveTryBlock(3);break;case 2:g=n.enterCatchBlock();goog.asserts.assert(b.destroyer_.destroyed(),"Should be destroyed by now");if(goog.DEBUG)for(h in b.sourceBuffers_)b.queues_[h].length&&(goog.asserts.assert(1==b.queues_[h].length,"Should be at most one item in queue!"),goog.asserts.assert(c.includes(b.queues_[h][0].p),"The item in queue should be one of our waiters!"),
|
|
682
696
|
b.queues_[h].shift());throw g;case 3:if(goog.DEBUG)for(k in b.sourceBuffers_)goog.asserts.assert(0==b.sourceBuffers_[k].updating,"SourceBuffers should not be updating after a blocking op!");n.setCatchFinallyBlocks(5,6);return n.yield(a(),6);case 6:n.enterFinallyBlock();for(l in b.sourceBuffers_)b.popFromQueue_(l);n.leaveFinallyBlock(0);break;case 5:throw m=n.enterCatchBlock(),new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MEDIA,shaka.util.Error.Code.MEDIA_SOURCE_OPERATION_THREW,
|
|
683
697
|
m,b.video_.error||"No error in the media element");}})};shaka.media.MediaSourceEngine.prototype.popFromQueue_=function(a){this.queues_[a].shift();this.startOperation_(a)};
|
|
684
698
|
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")),
|
|
@@ -687,12 +701,15 @@ shaka.media.MediaSourceEngine.prototype.setSegmentRelativeVttTiming=function(a){
|
|
|
687
701
|
shaka.media.MediaSourceEngine.prototype.workAroundBrokenPlatforms_=function(a,b,c){var d=this.expectedEncryption_[c];this.config_.insertFakeEncryptionInInit&&null==b&&d&&shaka.util.Platform.requiresEncryptionInfoInAllInitSegments()&&"mp4"==shaka.util.MimeUtils.getContainerType(this.sourceBufferTypes_[c])&&(shaka.log.debug("Forcing fake encryption information in init segment."),a=shaka.media.ContentWorkarounds.fakeEncryption(a));return a};
|
|
688
702
|
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(),c&&(this.transmuxers_[a]=c),this.sourceBuffers_[a].changeType(b+this.config_.sourceBufferExtraFeatures),this.sourceBufferTypes_[a]=b):shaka.log.debug("Change Type not supported"),
|
|
689
703
|
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)})};
|
|
690
|
-
shaka.media.MediaSourceEngine.prototype.reset_=function(a){var b=this,c,d,e,f,g,h,k,l,m,n,p,q,r,t,
|
|
691
|
-
m=l.next();!
|
|
692
|
-
w=b.mediaSource_.sourceBuffers;
|
|
704
|
+
shaka.media.MediaSourceEngine.prototype.reset_=function(a){var b=this,c,d,e,f,g,h,k,l,m,n,p,q,r,t,v,u,w,x,y,z,A,C,D,G;return $jscomp.asyncExecutePromiseGeneratorProgram(function(B){switch(B.nextAddress){case 1:c=shaka.util.Functional;d=shaka.util.ManifestParserUtils.ContentType;b.reloadingMediaSource_=!0;b.needSplitMuxedContent_=!1;e=b.video_.currentTime;f=b.video_.autoplay;g=b.video_.paused;b.playbackHasBegun_&&(b.video_.autoplay=!1);B.setFinallyBlock(2);b.eventManager_.removeAll();h=[];for(k in b.transmuxers_)h.push(b.transmuxers_[k].destroy());
|
|
705
|
+
for(l in b.queues_)for(m=b.queues_[l],n=m[0],b.queues_[l]=m.slice(0,1),n&&h.push(n.p.catch(c.noop)),p=$jscomp.makeIterator(m.slice(1)),q=p.next();!q.done;q=p.next())r=q.value,r.p.reject(shaka.util.Destroyer.destroyedError());for(t in b.sourceBuffers_){v=b.sourceBuffers_[t];try{b.mediaSource_.removeSourceBuffer(v)}catch(E){}}return B.yield(Promise.all(h),4);case 4:return b.transmuxers_={},b.sourceBuffers_={},u=b.mediaSource_.duration,b.mediaSourceOpen_=new shaka.util.PublicPromise,b.mediaSource_=b.createMediaSource(b.mediaSourceOpen_),
|
|
706
|
+
B.yield(b.mediaSourceOpen_,5);case 5:b.mediaSource_.duration=u;w=new shaka.util.PublicPromise;x=b.mediaSource_.sourceBuffers;y=a.size;z=0;b.eventManager_.listen(x,"addsourcebuffer",function(E){z++;z===y&&w.resolve()});A=$jscomp.makeIterator(a.keys());for(C=A.next();!C.done;C=A.next())D=C.value,G=a.get(D),b.initSourceBuffer_(D,G,G.codecs),b.needSplitMuxedContent_?(b.queues_[d.AUDIO]=[],b.queues_[d.VIDEO]=[]):b.queues_[D]=[];b.video_.currentTime=e;return B.yield(w,2);case 2:B.enterFinallyBlock(),b.reloadingMediaSource_=
|
|
707
|
+
!1,b.destroyer_.ensureNotDestroyed(),b.eventManager_.listenOnce(b.video_,"canplay",function(){b.destroyer_.ensureNotDestroyed();b.video_.autoplay=f;g||b.video_.play()}),B.leaveFinallyBlock(0)}})};shaka.media.MediaSourceEngine.prototype.reset=function(a){var b=this;return this.enqueueBlockingOperation_(function(){return b.reset_(a)})};
|
|
693
708
|
shaka.media.MediaSourceEngine.prototype.codecSwitchIfNecessary_=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=shaka.util.MimeUtils;f=e.getCodecBase(e.getCodecs(d.sourceBufferTypes_[a]));g=e.getBasicType(d.sourceBufferTypes_[a]);k=shaka.util.MimeUtils.getFullType(b.mimeType,b.codecs);l=d.config_.forceTransmux;if(!shaka.media.Capabilities.isTypeSupported(k)||!d.sequenceMode_&&shaka.util.MimeUtils.RAW_FORMATS.includes(k))l=
|
|
694
|
-
!0;m=shaka.util.MimeUtils.getFullTypeWithAllCodecs(b.mimeType,b.codecs);n=shaka.transmuxer.TransmuxerEngine;l&&(p=n.findTransmuxer(m))&&(h=p(),k=h.convertCodecs(a,m));q=e.getCodecBase(e.getCodecs(k));r=e.getBasicType(k);if(f===q&&g===r)return t.return(!1);if(shaka.media.Capabilities.isChangeTypeSupported())return t.yield(d.changeType(a,k,h),3);h&&h.destroy();return t.yield(d.reset(c),3)}return t.return(!0)})};
|
|
695
|
-
shaka.media.MediaSourceEngine.
|
|
709
|
+
!0;m=shaka.util.MimeUtils.getFullTypeWithAllCodecs(b.mimeType,b.codecs);n=shaka.transmuxer.TransmuxerEngine;l&&(p=n.findTransmuxer(m))&&(h=p(),k=h.convertCodecs(a,m));q=e.getCodecBase(e.getCodecs(k));r=e.getBasicType(k);if(f===q&&g===r)return t.return(!1);if(d.config_.codecSwitchingStrategy===shaka.config.CodecSwitchingStrategy.SMOOTH&&shaka.media.Capabilities.isChangeTypeSupported()&&!d.needSplitMuxedContent_)return t.yield(d.changeType(a,k,h),3);h&&h.destroy();return t.yield(d.reset(c),3)}return t.return(!0)})};
|
|
710
|
+
shaka.media.MediaSourceEngine.prototype.isCodecSwitchNecessary_=function(a,b){var c=shaka.util.MimeUtils,d=c.getCodecBase(c.getCodecs(this.sourceBufferTypes_[a])),e=c.getBasicType(this.sourceBufferTypes_[a]),f=shaka.util.MimeUtils.getFullType(b.mimeType,b.codecs),g=this.config_.forceTransmux;if(!shaka.media.Capabilities.isTypeSupported(f)||!this.sequenceMode_&&shaka.util.MimeUtils.RAW_FORMATS.includes(f))g=!0;b=shaka.util.MimeUtils.getFullTypeWithAllCodecs(b.mimeType,b.codecs);var h=shaka.transmuxer.TransmuxerEngine;
|
|
711
|
+
g&&(g=h.findTransmuxer(b))&&(g=g(),f=g.convertCodecs(a,b),g.destroy());a=c.getCodecBase(c.getCodecs(f));c=c.getBasicType(f);return d!==a||e!==c};shaka.media.MediaSourceEngine.prototype.isResetMediaSourceNecessary=function(a,b){return this.isCodecSwitchNecessary_(a,b)?this.config_.codecSwitchingStrategy!==shaka.config.CodecSwitchingStrategy.SMOOTH||!shaka.media.Capabilities.isChangeTypeSupported()||this.needSplitMuxedContent_:!1};
|
|
712
|
+
shaka.media.MediaSourceEngine.prototype.updateLcevcDec=function(a){this.lcevcDec_=a};shaka.media.MediaSourceEngine.createObjectURL=window.URL.createObjectURL;shaka.media.MediaSourceEngine.SourceBufferMode_={SEQUENCE:"sequence",SEGMENTS:"segments"};shaka.media.PresentationTimeline=function(a,b,c){this.presentationStartTime_=a;this.presentationDelay_=b;this.segmentAvailabilityDuration_=this.duration_=Infinity;this.maxSegmentDuration_=1;this.maxSegmentEndTime_=this.minSegmentStartTime_=null;this.clockOffset_=0;this.static_=!0;this.userSeekStart_=0;this.autoCorrectDrift_=void 0===c?!0:c;this.availabilityTimeOffset_=0;this.startTimeLocked_=!1};shaka.media.PresentationTimeline.prototype.getDuration=function(){return this.duration_};
|
|
696
713
|
shaka.media.PresentationTimeline.prototype.getMaxSegmentDuration=function(){return this.maxSegmentDuration_};shaka.media.PresentationTimeline.prototype.setPresentationStartTime=function(a){goog.asserts.assert(0<=a,"presentationStartTime must be >= 0");this.presentationStartTime_=a};shaka.media.PresentationTimeline.prototype.setDuration=function(a){goog.asserts.assert(0<a,"duration must be > 0");this.duration_=a};shaka.media.PresentationTimeline.prototype.getPresentationStartTime=function(){return this.presentationStartTime_};
|
|
697
714
|
shaka.media.PresentationTimeline.prototype.setClockOffset=function(a){this.clockOffset_=a};shaka.media.PresentationTimeline.prototype.setStatic=function(a){this.static_=a};shaka.media.PresentationTimeline.prototype.setSegmentAvailabilityDuration=function(a){goog.asserts.assert(0<=a,"segmentAvailabilityDuration must be >= 0");this.segmentAvailabilityDuration_=a};shaka.media.PresentationTimeline.prototype.setDelay=function(a){goog.asserts.assert(0<=a,"delay must be >= 0");this.presentationDelay_=a};
|
|
698
715
|
shaka.media.PresentationTimeline.prototype.getDelay=function(){return this.presentationDelay_};
|
|
@@ -758,7 +775,7 @@ shaka.media.SegmentIndex.prototype.merge=function(a){goog.DEBUG&&shaka.media.Seg
|
|
|
758
775
|
shaka.media.SegmentIndex.prototype.mergeAndEvict=function(a,b){var c=this;a=a.filter(function(e){return e.endTime>b&&(0==c.references.length||e.endTime>c.references[0].startTime)});var d=this.references[0];this.merge(a);a=this.references[0];d&&goog.asserts.assert(d.startTime==a.startTime,"SegmentIndex.merge should not change the first reference time!");this.evict(b)};
|
|
759
776
|
shaka.media.SegmentIndex.prototype.evict=function(a){if(!this.immutable_){var b=this.references.length;this.references=this.references.filter(function(c){return c.endTime>a});this.numEvicted_+=b-this.references.length}};
|
|
760
777
|
shaka.media.SegmentIndex.prototype.fit=function(a,b,c){c=void 0===c?!1:c;goog.asserts.assert(null!=b,"Content duration must be known for static content!");goog.asserts.assert(Infinity!=b,"Content duration must be finite for static content!");if(!this.immutable_){for(;this.references.length;)if(this.references[this.references.length-1].startTime>=b)this.references.pop();else break;for(;this.references.length;)if(this.references[0].endTime<=a)this.references.shift(),c||this.numEvicted_++;else break;
|
|
761
|
-
0!=this.references.length&&(a=this.references[this.references.length-1],this.references[this.references.length-1]=new shaka.media.SegmentReference(a.startTime,b,a.getUrisInner,a.startByte,a.endByte,a.initSegmentReference,a.timestampOffset,a.appendWindowStart,a.appendWindowEnd,a.partialReferences,a.tilesLayout,a.tileDuration,a.syncTime,a.status,a.
|
|
778
|
+
0!=this.references.length&&(a=this.references[this.references.length-1],this.references[this.references.length-1]=new shaka.media.SegmentReference(a.startTime,b,a.getUrisInner,a.startByte,a.endByte,a.initSegmentReference,a.timestampOffset,a.appendWindowStart,a.appendWindowEnd,a.partialReferences,a.tilesLayout,a.tileDuration,a.syncTime,a.status,a.aes128Key),this.references[this.references.length-1].discontinuitySequence=a.discontinuitySequence)}};
|
|
762
779
|
shaka.media.SegmentIndex.prototype.updateEvery=function(a,b){var c=this;goog.asserts.assert(!this.timer_,"SegmentIndex timer already started!");this.immutable_||(this.timer_&&this.timer_.stop(),this.timer_=new shaka.util.Timer(function(){var d=b();d?c.references.push.apply(c.references,$jscomp.arrayFromIterable(d)):(c.timer_.stop(),c.timer_=null)}),this.timer_.tickEvery(a))};
|
|
763
780
|
shaka.media.SegmentIndex.prototype[Symbol.iterator]=function(){var a=this.getIteratorForTime(0);goog.asserts.assert(null!=a,"Iterator for 0 should never be null!");return a};
|
|
764
781
|
shaka.media.SegmentIndex.prototype.getIteratorForTime=function(a){var b=this.find(a);if(null==b)return null;b--;var c=this.get(b+1),d=-1;if(c&&c.hasPartialSegments())for(var e=c.partialReferences.length-1;0<=e;--e){var f=c.partialReferences[e];if(a>=f.startTime&&a<f.endTime){for(;e&&!f.isIndependent();)e--,f=c.partialReferences[e];if(!f.isIndependent())return shaka.log.alwaysError("No independent partial segment found!"),null;b++;d=e-1;break}}return new shaka.media.SegmentIterator(this,b,d)};
|
|
@@ -771,8 +788,8 @@ shaka.media.SegmentIterator.prototype.current=function(){var a=this.segmentIndex
|
|
|
771
788
|
shaka.media.SegmentIterator.prototype.next=function(){var a=this.segmentIndex_.get(this.currentPosition_);a&&a.hasPartialSegments()?(this.currentPartialPosition_++,a.getUris().length&&this.currentPartialPosition_==a.partialReferences.length&&(this.currentPosition_++,this.currentPartialPosition_=0)):(this.currentPosition_++,this.currentPartialPosition_=0);a=this.current();return{value:a,done:!a}};goog.exportSymbol("shaka.media.SegmentIterator",shaka.media.SegmentIterator);
|
|
772
789
|
goog.exportProperty(shaka.media.SegmentIterator.prototype,"next",shaka.media.SegmentIterator.prototype.next);goog.exportProperty(shaka.media.SegmentIterator.prototype,"current",shaka.media.SegmentIterator.prototype.current);goog.exportProperty(shaka.media.SegmentIterator.prototype,"currentPosition",shaka.media.SegmentIterator.prototype.currentPosition);shaka.media.MetaSegmentIndex=function(){shaka.media.SegmentIndex.call(this,[]);this.indexes_=[]};$jscomp.inherits(shaka.media.MetaSegmentIndex,shaka.media.SegmentIndex);
|
|
773
790
|
shaka.media.MetaSegmentIndex.prototype.appendSegmentIndex=function(a){goog.asserts.assert(0==this.indexes_.length||0==a.numEvicted_,"Should not append a new segment index with already-evicted segments");this.indexes_.push(a)};shaka.media.MetaSegmentIndex.prototype.clone=function(){var a=new shaka.media.MetaSegmentIndex;a.indexes_=this.indexes_.slice();return a};
|
|
774
|
-
shaka.media.MetaSegmentIndex.prototype.release=function(){for(var a=$jscomp.makeIterator(this.indexes_),b=a.next();!b.done;b=a.next())b.value.release();this.indexes_=[]};shaka.media.MetaSegmentIndex.prototype.find=function(a){for(var b=0,c=$jscomp.makeIterator(this.indexes_),d=c.next();!d.done;d=c.next()){d=d.value;var e=d.find(a);if(null!=e)return e+b;b+=d.numEvicted_+d.
|
|
775
|
-
shaka.media.MetaSegmentIndex.prototype.get=function(a){for(var b=0,c=!1,d=$jscomp.makeIterator(this.indexes_),e=d.next();!e.done;e=d.next()){e=e.value;goog.asserts.assert(!c||0==e.numEvicted_,"Should not see evicted segments after available segments");var f=e.get(a-b);if(f)return f;b+=e.numEvicted_+
|
|
791
|
+
shaka.media.MetaSegmentIndex.prototype.release=function(){for(var a=$jscomp.makeIterator(this.indexes_),b=a.next();!b.done;b=a.next())b.value.release();this.indexes_=[]};shaka.media.MetaSegmentIndex.prototype.find=function(a){for(var b=0,c=$jscomp.makeIterator(this.indexes_),d=c.next();!d.done;d=c.next()){d=d.value;var e=d.find(a);if(null!=e)return e+b;b+=d.numEvicted_+d.getNumReferences()}return null};
|
|
792
|
+
shaka.media.MetaSegmentIndex.prototype.get=function(a){for(var b=0,c=!1,d=$jscomp.makeIterator(this.indexes_),e=d.next();!e.done;e=d.next()){e=e.value;goog.asserts.assert(!c||0==e.numEvicted_,"Should not see evicted segments after available segments");var f=e.get(a-b);if(f)return f;f=e.getNumReferences();b+=e.numEvicted_+f;c=c||0!=f}return null};shaka.media.MetaSegmentIndex.prototype.offset=function(a){goog.asserts.assert(!1,"offset() should not be used in MetaSegmentIndex!")};
|
|
776
793
|
shaka.media.MetaSegmentIndex.prototype.merge=function(a){goog.asserts.assert(!1,"merge() should not be used in MetaSegmentIndex!")};shaka.media.MetaSegmentIndex.prototype.evict=function(a){goog.asserts.assert(!1,"evict() should not be used in MetaSegmentIndex!")};shaka.media.MetaSegmentIndex.prototype.mergeAndEvict=function(a,b){goog.asserts.assert(!1,"mergeAndEvict() should not be used in MetaSegmentIndex!")};shaka.media.MetaSegmentIndex.prototype.fit=function(a,b){goog.asserts.assert(!1,"fit() should not be used in MetaSegmentIndex!")};
|
|
777
794
|
shaka.media.MetaSegmentIndex.prototype.updateEvery=function(a,b){goog.asserts.assert(!1,"updateEvery() should not be used in MetaSegmentIndex!")};goog.exportSymbol("shaka.media.MetaSegmentIndex",shaka.media.MetaSegmentIndex);goog.exportProperty(shaka.media.MetaSegmentIndex.prototype,"updateEvery",shaka.media.MetaSegmentIndex.prototype.updateEvery);goog.exportProperty(shaka.media.MetaSegmentIndex.prototype,"fit",shaka.media.MetaSegmentIndex.prototype.fit);
|
|
778
795
|
goog.exportProperty(shaka.media.MetaSegmentIndex.prototype,"mergeAndEvict",shaka.media.MetaSegmentIndex.prototype.mergeAndEvict);goog.exportProperty(shaka.media.MetaSegmentIndex.prototype,"evict",shaka.media.MetaSegmentIndex.prototype.evict);goog.exportProperty(shaka.media.MetaSegmentIndex.prototype,"merge",shaka.media.MetaSegmentIndex.prototype.merge);goog.exportProperty(shaka.media.MetaSegmentIndex.prototype,"offset",shaka.media.MetaSegmentIndex.prototype.offset);
|
|
@@ -844,28 +861,28 @@ shaka.media.StreamingEngine.prototype.getTimeNeeded_=function(a,b){return a.last
|
|
|
844
861
|
shaka.media.StreamingEngine.prototype.getSegmentReferenceNeeded_=function(a,b,c){var d=shaka.media.StreamingEngine.logPrefix_(a);goog.asserts.assert(a.stream.segmentIndex,"segment index should have been generated already");if(a.segmentIterator)return a.segmentIterator.current();if(a.lastSegmentReference||c)return b=a.lastSegmentReference?a.lastSegmentReference.endTime:c,goog.asserts.assert(null!=b,"Should have a time to search"),shaka.log.v1(d,"looking up segment from new stream endTime:",b),a.needsResync=
|
|
845
862
|
!0,a.segmentIterator=a.stream.segmentIndex.getIteratorForTime(b),a=a.segmentIterator&&a.segmentIterator.next().value,null==a&&shaka.log.warning(d,"cannot find segment","endTime:",b),a;c=this.config_.inaccurateManifestTolerance;var e=Math.max(b-c,0);shaka.log.v1(d,"looking up segment","lookupTime:",e,"presentationTime:",b);var f=null;c&&(a.segmentIterator=a.stream.segmentIndex.getIteratorForTime(e),f=a.segmentIterator&&a.segmentIterator.next().value);f||(a.segmentIterator=a.stream.segmentIndex.getIteratorForTime(b),
|
|
846
863
|
f=a.segmentIterator&&a.segmentIterator.next().value);null==f&&shaka.log.warning(d,"cannot find segment","lookupTime:",e,"presentationTime:",b);return f};
|
|
847
|
-
shaka.media.StreamingEngine.prototype.fetchAndAppend_=function(a,b,c){var d=this,e,f,g,h,k,l,m,n,p,q,r,t,
|
|
864
|
+
shaka.media.StreamingEngine.prototype.fetchAndAppend_=function(a,b,c){var d=this,e,f,g,h,k,l,m,n,p,q,r,t,v,u,w,x,y,z;return $jscomp.asyncExecutePromiseGeneratorProgram(function(A){switch(A.nextAddress){case 1:e=shaka.util.ManifestParserUtils.ContentType;f=shaka.media.StreamingEngine;g=f.logPrefix_(a);shaka.log.v1(g,"fetchAndAppend_:","presentationTime="+b,"reference.startTime="+c.startTime,"reference.endTime="+c.endTime);h=a.stream;k=a.segmentIterator;a.performingUpdate=!0;A.setCatchFinallyBlocks(2);
|
|
848
865
|
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 A.yield(d.initSourceBuffer_(a,c),4);case 4:d.destroyer_.ensureNotDestroyed();if(d.fatalError_)return A.return();shaka.log.v2(g,"fetching segment");l="video/mp4"==h.mimeType||"audio/mp4"==h.mimeType;m=window.ReadableStream;if(d.config_.lowLatencyMode&&m&&l&&(d.manifest_.type!=shaka.media.ManifestParser.HLS||
|
|
849
|
-
c.hasByterangeOptimization()))return q=new Uint8Array(0),t=r=!1,
|
|
850
|
-
!m&&shaka.log.warning("Low latency streaming mode is enabled, but ReadableStream is not supported by the browser.");n=d.fetch_(a,c);return A.yield(n,7);case 7:p=A.yieldResult;d.destroyer_.ensureNotDestroyed();if(d.fatalError_)return A.return();
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
shaka.media.StreamingEngine.prototype.aes128Decrypt_=function(a,b,c){var d,e,f,g;return $jscomp.asyncExecutePromiseGeneratorProgram(function(h){if(1==h.nextAddress){d=b
|
|
866
|
+
c.hasByterangeOptimization()))return q=new Uint8Array(0),t=r=!1,v=function(C){var D,G,B;return $jscomp.asyncExecutePromiseGeneratorProgram(function(E){if(r)return E.return();t=!0;d.destroyer_.ensureNotDestroyed();if(d.fatalError_)return E.return();q=d.concatArray_(q,C);D=!1;G=0;(new shaka.util.Mp4Parser).box("mdat",function(F){G=F.size+F.start;D=!0}).parse(q,!1,!0);if(!D)return E.jumpTo(0);B=q.subarray(0,G);q=q.subarray(G);return E.yield(d.append_(a,b,h,c,B,!0),0)})},A.yield(d.fetch_(a,c,v),9);d.config_.lowLatencyMode&&
|
|
867
|
+
!m&&shaka.log.warning("Low latency streaming mode is enabled, but ReadableStream is not supported by the browser.");n=d.fetch_(a,c);return A.yield(n,7);case 7:p=A.yieldResult;d.destroyer_.ensureNotDestroyed();if(d.fatalError_)return A.return();d.destroyer_.ensureNotDestroyed();return a.waitingToClearBuffer?(shaka.log.info(g,"waitingToClearBuffer, skip append"),a.performingUpdate=!1,d.scheduleUpdate_(a,0),A.return()):A.yield(d.append_(a,b,h,c,p),6);case 9:u=A.yieldResult;if(t){A.jumpTo(6);break}r=
|
|
868
|
+
!0;d.destroyer_.ensureNotDestroyed();return d.fatalError_?A.return():a.waitingToClearBuffer?(shaka.log.info(g,"waitingToClearBuffer, skip append"),a.performingUpdate=!1,d.scheduleUpdate_(a,0),A.return()):A.yield(d.append_(a,b,h,c,u),6);case 6:d.destroyer_.ensureNotDestroyed();if(d.fatalError_)return A.return();a.lastSegmentReference=c;w=k.next().value;shaka.log.v2(g,"advancing to next segment",w);a.performingUpdate=!1;a.recovering=!1;x=d.playerInterface_.mediaSourceEngine.getBufferedInfo();y=x[a.type];
|
|
869
|
+
shaka.log.v1(g,"finished fetch and append",JSON.stringify(y));if(!a.waitingToClearBuffer)d.playerInterface_.onSegmentAppended(c.startTime,c.endTime,a.type);d.scheduleUpdate_(a,0);A.leaveTryBlock(0);break;case 2:z=A.enterCatchBlock();d.destroyer_.ensureNotDestroyed(z);if(d.fatalError_)return A.return();goog.asserts.assert(z instanceof shaka.util.Error,"Should only receive a Shaka error");a.performingUpdate=!1;if(z.code==shaka.util.Error.Code.OPERATION_ABORTED)a.performingUpdate=!1,d.cancelUpdate_(a),
|
|
870
|
+
d.scheduleUpdate_(a,0),A.jumpTo(0);else if(a.type==e.TEXT&&d.config_.ignoreTextStreamFailures)z.code==shaka.util.Error.Code.BAD_HTTP_STATUS?shaka.log.warning(g,"Text stream failed to download. Proceeding without it."):shaka.log.warning(g,"Text stream failed to parse. Proceeding without it."),d.mediaStates_.delete(e.TEXT),A.jumpTo(0);else if(z.code==shaka.util.Error.Code.QUOTA_EXCEEDED_ERROR)d.handleQuotaExceeded_(a,z),A.jumpTo(0);else return shaka.log.error(g,"failed fetch and append: code="+z.code),
|
|
871
|
+
a.hasError=!0,z.severity=shaka.util.Error.Severity.CRITICAL,A.yield(d.handleStreamingError_(a,z),0)}})};
|
|
872
|
+
shaka.media.StreamingEngine.prototype.aes128Decrypt_=function(a,b,c){var d,e,f,g;return $jscomp.asyncExecutePromiseGeneratorProgram(function(h){if(1==h.nextAddress){d=b;if(d.cryptoKey)return h.jumpTo(2);goog.asserts.assert(d.fetchKey,"If AES-128 cryptoKey was not preloaded, fetchKey function should be provided");return h.yield(d.fetchKey(),3)}2!=h.nextAddress&&goog.asserts.assert(d.cryptoKey,"AES-128 cryptoKey should now be set");e=d.iv;if(!e)for(e=shaka.util.BufferUtils.toUint8(new ArrayBuffer(16)),
|
|
856
873
|
f=d.firstMediaSequenceNumber+c.currentPosition(),g=e.byteLength-1;0<=g;g--)e[g]=f&255,f>>=8;return h.return(window.crypto.subtle.decrypt({name:"AES-CBC",iv:e},d.cryptoKey,a))})};
|
|
857
874
|
shaka.media.StreamingEngine.prototype.retry=function(a){if(this.destroyer_.destroyed())return shaka.log.error("Unable to retry after StreamingEngine is destroyed!"),!1;if(this.fatalError_)return shaka.log.error("Unable to retry after StreamingEngine encountered a fatal error!"),!1;for(var b=$jscomp.makeIterator(this.mediaStates_.values()),c=b.next();!c.done;c=b.next()){c=c.value;var d=shaka.media.StreamingEngine.logPrefix_(c);!c.hasError||c.performingUpdate||c.updateTimer||(shaka.log.info(d,"Retrying after failure..."),
|
|
858
875
|
c.hasError=!1,this.scheduleUpdate_(c,a))}return!0};shaka.media.StreamingEngine.prototype.concatArray_=function(a,b){var c=new Uint8Array(a.length+b.length);c.set(a);c.set(b,a.length);return c};
|
|
859
876
|
shaka.media.StreamingEngine.prototype.handleQuotaExceeded_=function(a,b){var c=shaka.media.StreamingEngine.logPrefix_(a);if(Array.from(this.mediaStates_.values()).some(function(e){return e!=a&&e.recovering}))shaka.log.debug(c,"MediaSource threw QuotaExceededError:","waiting for another stream to recover...");else{var d=Math.round(100*this.bufferingGoalScale_);if(20<d)this.bufferingGoalScale_-=.2;else if(4<d)this.bufferingGoalScale_-=.04;else{shaka.log.error(c,"MediaSource threw QuotaExceededError too many times");
|
|
860
877
|
this.fatalError_=a.hasError=!0;this.playerInterface_.onError(b);return}shaka.log.warning(c,"MediaSource threw QuotaExceededError:","reducing buffering goals by "+(100-Math.round(100*this.bufferingGoalScale_))+"%");a.recovering=!0}this.scheduleUpdate_(a,4)};
|
|
861
|
-
shaka.media.StreamingEngine.prototype.initSourceBuffer_=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,t,
|
|
862
|
-
n=e.getBasicType(a.stream.mimeType);p=b.timestampOffset;if(p
|
|
863
|
-
d.AUDIO&&(r=c.mediaStates_.get(d.VIDEO))&&(r.lastInitSegmentReference=null,c.abortOperations_(r));t=function(){var z,
|
|
864
|
-
c.manifest_.type==shaka.media.ManifestParser.HLS,
|
|
865
|
-
|
|
866
|
-
y=shaka.util.Mp4BoxParsers.parseMDHD(
|
|
867
|
-
5);case 5:return E.yield(c.playerInterface_.mediaSourceEngine.appendBuffer(a.type,
|
|
868
|
-
b.startTime))
|
|
878
|
+
shaka.media.StreamingEngine.prototype.initSourceBuffer_=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,t,v,u,w;return $jscomp.asyncExecutePromiseGeneratorProgram(function(x){if(1==x.nextAddress){d=shaka.util.ManifestParserUtils.ContentType;e=shaka.util.MimeUtils;f=shaka.media.StreamingEngine;g=f.logPrefix_(a);h=[];k=Math.max(0,b.appendWindowStart-f.APPEND_WINDOW_START_FUDGE_);l=b.appendWindowEnd+f.APPEND_WINDOW_END_FUDGE_;goog.asserts.assert(b.startTime<=l,g+" segment should start before append window end");
|
|
879
|
+
m=e.getCodecBase(a.stream.codecs);n=e.getBasicType(a.stream.mimeType);p=b.timestampOffset;if(p==a.lastTimestampOffset&&k==a.lastAppendWindowStart&&l==a.lastAppendWindowEnd&&m==a.lastCodecs&&n==a.lastMimeType)return x.jumpTo(2);shaka.log.v1(g,"setting timestamp offset to "+p);shaka.log.v1(g,"setting append window start to "+k);shaka.log.v1(g,"setting append window end to "+l);if(q=a.lastCodecs&&a.lastMimeType&&c.playerInterface_.mediaSourceEngine.isResetMediaSourceNecessary(a.type,a.stream))r=null,
|
|
880
|
+
a.type===d.VIDEO?r=c.mediaStates_.get(d.AUDIO):a.type===d.AUDIO&&(r=c.mediaStates_.get(d.VIDEO)),r&&(r.lastInitSegmentReference=null,c.forceClearBuffer_(r),c.abortOperations_(r).catch(function(){}));t=function(){var y,z,A,C;return $jscomp.asyncExecutePromiseGeneratorProgram(function(D){if(1==D.nextAddress)return y=new Map,c.currentVariant_.audio&&y.set(d.AUDIO,c.currentVariant_.audio),c.currentVariant_.video&&y.set(d.VIDEO,c.currentVariant_.video),D.setCatchFinallyBlocks(2),a.lastAppendWindowStart=
|
|
881
|
+
k,a.lastAppendWindowEnd=l,a.lastCodecs=m,a.lastMimeType=n,a.lastTimestampOffset=p,z=c.manifest_.sequenceMode||c.manifest_.type==shaka.media.ManifestParser.HLS,D.yield(c.playerInterface_.mediaSourceEngine.setStreamProperties(a.type,p,k,l,z,a.stream,y),4);if(2!=D.nextAddress)return q&&(A=null,a.type===d.VIDEO?A=c.mediaStates_.get(d.AUDIO):a.type===d.AUDIO&&(A=c.mediaStates_.get(d.VIDEO)),A&&(A.waitingToClearBuffer=!1,A.performingUpdate=!1,c.forceClearBuffer_(A))),D.leaveTryBlock(0);C=D.enterCatchBlock();
|
|
882
|
+
a.lastAppendWindowStart=null;a.lastAppendWindowEnd=null;a.lastCodecs=null;a.lastTimestampOffset=null;throw C;})};return x.yield(t(),2)}!shaka.media.InitSegmentReference.equal(b.initSegmentReference,a.lastInitSegmentReference)&&(a.lastInitSegmentReference=b.initSegmentReference)&&(shaka.log.v1(g,"fetching init segment"),v=c.fetch_(a,b.initSegmentReference,void 0,!0),u=function(){var y,z,A,C,D,G,B;return $jscomp.asyncExecutePromiseGeneratorProgram(function(E){switch(E.nextAddress){case 1:return E.setCatchFinallyBlocks(2),
|
|
883
|
+
E.yield(v,4);case 4:return y=E.yieldResult,c.destroyer_.ensureNotDestroyed(),z=null,A=new Map,C=new shaka.util.Mp4Parser,D=shaka.util.Mp4Parser,C.box("moov",D.children).box("trak",D.children).box("mdia",D.children).fullBox("mdhd",function(F){goog.asserts.assert(null!=F.version,"MDHD is a full box and should have a valid version.");z=shaka.util.Mp4BoxParsers.parseMDHD(F.reader,F.version).timescale}).box("hdlr",function(F){switch(shaka.util.Mp4BoxParsers.parseHDLR(F.reader).handlerType){case "soun":A.set(d.AUDIO,
|
|
884
|
+
z);break;case "vide":A.set(d.VIDEO,z)}z=null}).parse(y),A.has(a.type)?b.initSegmentReference.timescale=A.get(a.type):null!=z&&(b.initSegmentReference.timescale=z),shaka.log.v1(g,"appending init segment"),G=a.stream.closedCaptions&&0<a.stream.closedCaptions.size,E.yield(c.playerInterface_.beforeAppendSegment(a.type,y),5);case 5:return E.yield(c.playerInterface_.mediaSourceEngine.appendBuffer(a.type,y,null,a.stream,G),6);case 6:E.leaveTryBlock(0);break;case 2:throw B=E.enterCatchBlock(),a.lastInitSegmentReference=
|
|
885
|
+
null,B;}})},c.playerInterface_.onInitSegmentAppended(b.startTime,b.initSegmentReference),h.push(u()));c.manifest_.sequenceMode&&(w=a.lastSegmentReference?a.lastSegmentReference.discontinuitySequence:null,b.discontinuitySequence!=w||a.needsResync)&&(a.needsResync=!1,h.push(c.playerInterface_.mediaSourceEngine.resync(a.type,b.startTime)));return x.yield(Promise.all(h),0)})};
|
|
869
886
|
shaka.media.StreamingEngine.prototype.append_=function(a,b,c,d,e,f){f=void 0===f?!1:f;var g=this,h,k,l,m,n,p,q;return $jscomp.asyncExecutePromiseGeneratorProgram(function(r){switch(r.nextAddress){case 1:h=shaka.media.StreamingEngine.logPrefix_(a);k=c.closedCaptions&&0<c.closedCaptions.size;m=null!=c.emsgSchemeIdUris&&0<c.emsgSchemeIdUris.length||g.config_.dispatchAllEmsgBoxes;n=g.config_.parsePrftBox&&!g.parsedPrftEventRaised_;if(m||n)l=new shaka.util.Mp4Parser;m&&l.fullBox("emsg",function(t){return g.parseEMSG_(d,
|
|
870
887
|
c.emsgSchemeIdUris,t)});n&&l.fullBox("prft",function(t){return g.parsePrft_(d,t)});(m||n)&&l.parse(e);return r.yield(g.evict_(a,b),2);case 2:return g.destroyer_.ensureNotDestroyed(),p=a.seeked,a.seeked=!1,q=a.adaptation,a.adaptation=!1,r.yield(g.playerInterface_.beforeAppendSegment(a.type,e),3);case 3:return r.yield(g.playerInterface_.mediaSourceEngine.appendBuffer(a.type,e,d,c,k,p,q,f),4);case 4:g.destroyer_.ensureNotDestroyed(),shaka.log.v2(h,"appended media segment"),r.jumpToEnd()}})};
|
|
871
888
|
shaka.media.StreamingEngine.prototype.parseEMSG_=function(a,b,c){if(0===c.version){var d=c.reader.readTerminatedString();var e=c.reader.readTerminatedString();var f=c.reader.readUint32();var g=c.reader.readUint32();var h=c.reader.readUint32();var k=c.reader.readUint32();var l=a.startTime+g/f}else f=c.reader.readUint32(),l=c.reader.readUint64()/f+a.timestampOffset,g=l-a.startTime,h=c.reader.readUint32(),k=c.reader.readUint32(),d=c.reader.readTerminatedString(),e=c.reader.readTerminatedString();c=c.reader.readBytes(c.reader.getLength()-
|
|
@@ -876,7 +893,8 @@ a);this.playerInterface_.onEvent(b);this.parsedPrftEventRaised_=!0}};shaka.media
|
|
|
876
893
|
shaka.media.StreamingEngine.prototype.evict_=function(a,b){var c=this,d,e,f,g,h;return $jscomp.asyncExecutePromiseGeneratorProgram(function(k){if(1==k.nextAddress){d=shaka.media.StreamingEngine.logPrefix_(a);shaka.log.v2(d,"checking buffer length");e=Math.max(c.config_.bufferBehind,c.manifest_.presentationTimeline.getMaxSegmentDuration());f=c.playerInterface_.mediaSourceEngine.bufferStart(a.type);if(null==f)return shaka.log.v2(d,"buffer behind okay because nothing buffered:","presentationTime="+b,
|
|
877
894
|
"bufferBehind="+e),k.return();g=b-f;h=g-e;if(.01>=h)return shaka.log.v2(d,"buffer behind okay:","presentationTime="+b,"bufferedBehind="+g,"bufferBehind="+e,"underflow="+Math.abs(h)),k.return();shaka.log.v1(d,"buffer behind too large:","presentationTime="+b,"bufferedBehind="+g,"bufferBehind="+e,"overflow="+h);return k.yield(c.playerInterface_.mediaSourceEngine.remove(a.type,f,f+h),2)}c.destroyer_.ensureNotDestroyed();shaka.log.v1(d,"evicted "+h+" seconds");k.jumpToEnd()})};
|
|
878
895
|
shaka.media.StreamingEngine.isEmbeddedText_=function(a){var b=shaka.util.MimeUtils,c=b.CEA608_CLOSED_CAPTION_MIMETYPE;b=b.CEA708_CLOSED_CAPTION_MIMETYPE;return a&&a.type==shaka.util.ManifestParserUtils.ContentType.TEXT&&(a.stream.mimeType==c||a.stream.mimeType==b)};
|
|
879
|
-
shaka.media.StreamingEngine.prototype.fetch_=function(a,b,c,d){var e=this,f,g,h;return $jscomp.asyncExecutePromiseGeneratorProgram(function(
|
|
896
|
+
shaka.media.StreamingEngine.prototype.fetch_=function(a,b,c,d){var e=this,f,g,h,k,l;return $jscomp.asyncExecutePromiseGeneratorProgram(function(m){switch(m.nextAddress){case 1:if(b instanceof shaka.media.InitSegmentReference&&(f=b.getSegmentData()))return m.return(f);g=null;a.segmentPrefetch&&b instanceof shaka.media.SegmentReference&&(g=a.segmentPrefetch.getPrefetchedSegment(b,c));g||(g=e.dispatchFetch_(b,a.stream,c,d));a.operation=g;return m.yield(g.promise,2);case 2:h=m.yieldResult;a.operation=
|
|
897
|
+
null;k=h.data;if(!b.aes128Key){m.jumpTo(3);break}l=a.segmentIterator;goog.asserts.assert(l,"mediaState.segmentIterator should exist");return m.yield(e.aes128Decrypt_(k,b.aes128Key,l),4);case 4:k=m.yieldResult;case 3:return m.return(k)}})};
|
|
880
898
|
shaka.media.StreamingEngine.prototype.dispatchFetch_=function(a,b,c,d){var e=shaka.net.NetworkingEngine.RequestType.SEGMENT;d=d?shaka.net.NetworkingEngine.AdvancedRequestType.INIT_SEGMENT:shaka.net.NetworkingEngine.AdvancedRequestType.MEDIA_SEGMENT;var f=a instanceof shaka.media.SegmentReference?a:void 0;c=shaka.util.Networking.createSegmentRequest(a.getUris(),a.startByte,a.endByte,this.config_.retryParameters,c);shaka.log.v2("fetching: reference=",a);return this.playerInterface_.netEngine.request(e,
|
|
881
899
|
c,{type:d,stream:b,segment:f})};
|
|
882
900
|
shaka.media.StreamingEngine.prototype.clearBuffer_=function(a,b,c){var d=this,e,f,g;return $jscomp.asyncExecutePromiseGeneratorProgram(function(h){if(1==h.nextAddress)return e=shaka.media.StreamingEngine.logPrefix_(a),goog.asserts.assert(!a.performingUpdate&&null==a.updateTimer,e+" unexpected call to clearBuffer_()"),a.waitingToClearBuffer=!1,a.waitingToFlushBuffer=!1,a.clearBufferSafeMargin=0,a.clearingBuffer=!0,a.lastSegmentReference=null,a.lastInitSegmentReference=null,a.segmentIterator=null,shaka.log.debug(e,
|
|
@@ -901,8 +919,8 @@ shaka.text.Utils.flattenPayload_=function(a){if(a.lineBreak)return"\n";if(a.nest
|
|
|
901
919
|
shaka.text.Utils.getColorName_=function(a){switch(a.toLowerCase()){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";case "yellow":case "#ff0":case "#ffff00":return"yellow";case "magenta":case "#f0f":return"magenta";case "blue":case "#00f":case "#0000ff":return"blue";case "black":case "#000":case "#000000":return"black"}return null};
|
|
902
920
|
shaka.text.Utils.getCuesToFlatten=function(a,b){a=$jscomp.makeIterator(a);for(var c=a.next();!c.done;c=a.next())if(c=c.value,c.isContainer)shaka.text.Utils.getCuesToFlatten(c.nestedCues,b);else{var d=c.clone();d.nestedCues=[];d.payload=shaka.text.Utils.flattenPayload_(c);b.push(d)}return b};shaka.text.SimpleTextDisplayer=function(a){this.textTrack_=null;for(var b=$jscomp.makeIterator(Array.from(a.textTracks)),c=b.next();!c.done;c=b.next())c=c.value,c.mode="disabled",c.label==shaka.Player.TextTrackLabel&&(this.textTrack_=c);this.textTrack_||(this.textTrack_=a.addTextTrack("subtitles",shaka.Player.TextTrackLabel));this.textTrack_.mode="hidden"};
|
|
903
921
|
shaka.text.SimpleTextDisplayer.prototype.remove=function(a,b){if(!this.textTrack_)return!1;shaka.text.SimpleTextDisplayer.removeWhere_(this.textTrack_,function(c){return c.startTime<b&&c.endTime>a});return!0};
|
|
904
|
-
shaka.text.SimpleTextDisplayer.prototype.append=function(a){var b=shaka.text.Utils.getCuesToFlatten(a,[]),c=[];a=this.textTrack_.cues?Array.from(this.textTrack_.cues):[];var d={};b=$jscomp.makeIterator(b);for(var e=b.next();!e.done;d={$jscomp$loop$prop$inCue$
|
|
905
|
-
!0:!1}}(d))||(e=shaka.text.SimpleTextDisplayer.convertToTextTrackCue_(d.$jscomp$loop$prop$inCue$
|
|
922
|
+
shaka.text.SimpleTextDisplayer.prototype.append=function(a){var b=shaka.text.Utils.getCuesToFlatten(a,[]),c=[];a=this.textTrack_.cues?Array.from(this.textTrack_.cues):[];var d={};b=$jscomp.makeIterator(b);for(var e=b.next();!e.done;d={$jscomp$loop$prop$inCue$765:d.$jscomp$loop$prop$inCue$765},e=b.next())d.$jscomp$loop$prop$inCue$765=e.value,a.some(function(f){return function(g){return g.startTime==f.$jscomp$loop$prop$inCue$765.startTime&&g.endTime==f.$jscomp$loop$prop$inCue$765.endTime&&g.text==f.$jscomp$loop$prop$inCue$765.payload?
|
|
923
|
+
!0:!1}}(d))||(e=shaka.text.SimpleTextDisplayer.convertToTextTrackCue_(d.$jscomp$loop$prop$inCue$765))&&c.push(e);a=c.slice().sort(function(f,g){return f.startTime!=g.startTime?f.startTime-g.startTime:f.endTime!=g.endTime?f.endTime-g.startTime:"line"in VTTCue.prototype?c.indexOf(g)-c.indexOf(f):c.indexOf(f)-c.indexOf(g)});a=$jscomp.makeIterator(a);for(d=a.next();!d.done;d=a.next())this.textTrack_.addCue(d.value)};
|
|
906
924
|
shaka.text.SimpleTextDisplayer.prototype.destroy=function(){this.textTrack_&&(shaka.text.SimpleTextDisplayer.removeWhere_(this.textTrack_,function(a){return!0}),this.textTrack_.mode="disabled");this.textTrack_=null;return Promise.resolve()};shaka.text.SimpleTextDisplayer.prototype.isTextVisible=function(){return"showing"==this.textTrack_.mode};shaka.text.SimpleTextDisplayer.prototype.setTextVisibility=function(a){this.textTrack_.mode=a?"showing":"hidden"};
|
|
907
925
|
shaka.text.SimpleTextDisplayer.convertToTextTrackCue_=function(a){if(a.startTime>=a.endTime)return shaka.log.warning("Invalid cue times: "+a.startTime+" - "+a.endTime),null;var b=shaka.text.Cue,c=new VTTCue(a.startTime,a.endTime,a.payload);c.lineAlign=a.lineAlign;c.positionAlign=a.positionAlign;a.size&&(c.size=a.size);try{c.align=a.textAlign}catch(d){}"center"==a.textAlign&&"center"!=c.align&&(c.align="middle");a.writingMode==b.writingMode.VERTICAL_LEFT_TO_RIGHT?c.vertical="lr":a.writingMode==b.writingMode.VERTICAL_RIGHT_TO_LEFT&&
|
|
908
926
|
(c.vertical="rl");a.lineInterpretation==b.lineInterpretation.PERCENTAGE&&(c.snapToLines=!1);null!=a.line&&(c.line=a.line);null!=a.position&&(c.position=a.position);return c};shaka.text.SimpleTextDisplayer.removeWhere_=function(a,b){var c=a.mode,d="showing"==c?"showing":"hidden";a.mode=d;goog.asserts.assert(a.cues,'Cues should be accessible when mode is set to "'+d+'".');d=$jscomp.makeIterator(Array.from(a.cues));for(var e=d.next();!e.done;e=d.next())(e=e.value)&&b(e)&&a.removeCue(e);a.mode=c};
|
|
@@ -910,7 +928,7 @@ goog.exportSymbol("shaka.text.SimpleTextDisplayer",shaka.text.SimpleTextDisplaye
|
|
|
910
928
|
goog.exportProperty(shaka.text.SimpleTextDisplayer.prototype,"append",shaka.text.SimpleTextDisplayer.prototype.append);goog.exportProperty(shaka.text.SimpleTextDisplayer.prototype,"remove",shaka.text.SimpleTextDisplayer.prototype.remove);shaka.util.Dom=function(){};shaka.util.Dom.createHTMLElement=function(a){return document.createElement(a)};shaka.util.Dom.createButton=function(){var a=document.createElement("button");a.setAttribute("type","button");return a};shaka.util.Dom.asHTMLElement=function(a){return a};shaka.util.Dom.asHTMLMediaElement=function(a){return a};shaka.util.Dom.getElementByClassName=function(a,b){b=b.getElementsByClassName(a);goog.asserts.assert(1==b.length,"Should only be one element with class name "+a);return shaka.util.Dom.asHTMLElement(b[0])};
|
|
911
929
|
shaka.util.Dom.removeAllChildren=function(a){for(;a.firstChild;)a.removeChild(a.firstChild)};goog.exportSymbol("shaka.util.Dom",shaka.util.Dom);goog.exportProperty(shaka.util.Dom,"removeAllChildren",shaka.util.Dom.removeAllChildren);shaka.text.UITextDisplayer=function(a,b){var c=this;goog.asserts.assert(b,"videoContainer should be valid.");this.isTextVisible_=!1;this.cues_=[];this.video_=a;this.videoContainer_=b;this.textContainer_=shaka.util.Dom.createHTMLElement("div");this.textContainer_.classList.add("shaka-text-container");this.textContainer_.style.textAlign="center";this.textContainer_.style.display="flex";this.textContainer_.style.flexDirection="column";this.textContainer_.style.alignItems="center";this.textContainer_.style.justifyContent=
|
|
912
930
|
"flex-end";this.videoContainer_.appendChild(this.textContainer_);this.captionsTimer_=(new shaka.util.Timer(function(){c.updateCaptions_()})).tickEvery(.25);this.currentCuesMap_=new Map;this.eventManager_=new shaka.util.EventManager;this.eventManager_.listen(document,"fullscreenchange",function(){c.updateCaptions_(!0)});this.resizeObserver_=null;"ResizeObserver"in window&&(this.resizeObserver_=new ResizeObserver(function(){c.updateCaptions_(!0)}),this.resizeObserver_.observe(this.textContainer_));
|
|
913
|
-
this.regionElements_=new Map};shaka.text.UITextDisplayer.prototype.append=function(a){var b=[].concat($jscomp.arrayFromIterable(this.cues_)),c={};a=$jscomp.makeIterator(a);for(var d=a.next();!d.done;c={$jscomp$loop$prop$cue$
|
|
931
|
+
this.regionElements_=new Map};shaka.text.UITextDisplayer.prototype.append=function(a){var b=[].concat($jscomp.arrayFromIterable(this.cues_)),c={};a=$jscomp.makeIterator(a);for(var d=a.next();!d.done;c={$jscomp$loop$prop$cue$767:c.$jscomp$loop$prop$cue$767},d=a.next())c.$jscomp$loop$prop$cue$767=d.value,b.some(function(e){return function(f){return shaka.text.Cue.equal(f,e.$jscomp$loop$prop$cue$767)}}(c))||this.cues_.push(c.$jscomp$loop$prop$cue$767);this.updateCaptions_()};
|
|
914
932
|
shaka.text.UITextDisplayer.prototype.destroy=function(){this.videoContainer_.removeChild(this.textContainer_);this.textContainer_=null;this.isTextVisible_=!1;this.cues_=[];this.captionsTimer_&&this.captionsTimer_.stop();this.currentCuesMap_.clear();this.eventManager_&&(this.eventManager_.release(),this.eventManager_=null);this.resizeObserver_&&(this.resizeObserver_.disconnect(),this.resizeObserver_=null)};
|
|
915
933
|
shaka.text.UITextDisplayer.prototype.remove=function(a,b){if(!this.textContainer_)return!1;var c=this.cues_.length;this.cues_=this.cues_.filter(function(d){return d.startTime<a||d.endTime>=b});this.updateCaptions_(c>this.cues_.length);return!0};shaka.text.UITextDisplayer.prototype.isTextVisible=function(){return this.isTextVisible_};shaka.text.UITextDisplayer.prototype.setTextVisibility=function(a){this.isTextVisible_=a};
|
|
916
934
|
shaka.text.UITextDisplayer.prototype.isElementUnderTextContainer_=function(a){for(;null!=a;){if(a==this.textContainer_)return!0;a=a.parentElement}return!1};
|
|
@@ -922,16 +940,16 @@ c.next();!d.done;d=c.next())d=d.value,a.set(d,this.currentCuesMap_.get(d));this.
|
|
|
922
940
|
shaka.text.UITextDisplayer.prototype.generateRegionId_=function(a){var b=shaka.text.CueRegion.units.PERCENTAGE;return a.id+"_"+a.width+"x"+a.height+(a.heightUnits==b?"%":"px")+"-"+a.viewportAnchorX+"x"+a.viewportAnchorY+(a.viewportAnchorUnits==b?"%":"px")};
|
|
923
941
|
shaka.text.UITextDisplayer.prototype.getRegionElement_=function(a){var b=a.region,c=this.generateRegionId_(b);if(this.regionElements_.has(c))return this.regionElements_.get(c);var d=shaka.util.Dom.createHTMLElement("span"),e=shaka.text.CueRegion.units.PERCENTAGE,f=b.heightUnits==e?"%":"px",g=b.widthUnits==e?"%":"px";e=b.viewportAnchorUnits==e?"%":"px";d.id="shaka-text-region---"+c;d.classList.add("shaka-text-region");d.style.height=b.height+f;d.style.width=b.width+g;d.style.position="absolute";d.style.top=
|
|
924
942
|
b.viewportAnchorY+e;d.style.left=b.viewportAnchorX+e;d.style.display="flex";d.style.flexDirection="column";d.style.alignItems="center";d.style.justifyContent=a.displayAlign==shaka.text.Cue.displayAlign.BEFORE?"flex-start":a.displayAlign==shaka.text.Cue.displayAlign.CENTER?"center":"flex-end";this.regionElements_.set(c,d);return d};
|
|
925
|
-
shaka.text.UITextDisplayer.prototype.createCue_=function(a,b){var c=1<b.length,d=c?"span":"div";a.lineBreak&&(d="br");c=!c&&0<a.nestedCues.length;var e=shaka.util.Dom.createHTMLElement(d);"br"!=d&&this.setCaptionStyles_(e,a,b,c);b=null;a.region&&a.region.id&&(b=this.getRegionElement_(a));d=e;c&&(d=shaka.util.Dom.createHTMLElement("span"),d.classList.add("shaka-text-wrapper"),d.style.backgroundColor=a.backgroundColor,d.style.lineHeight="normal",e.appendChild(d));this.currentCuesMap_.set(a,
|
|
926
|
-
wrapper:d,regionElement:b})};
|
|
943
|
+
shaka.text.UITextDisplayer.prototype.createCue_=function(a,b){var c=1<b.length,d=c?"span":"div";a.lineBreak&&(d="br");a.rubyTag&&(d=a.rubyTag);c=!c&&0<a.nestedCues.length;var e=shaka.util.Dom.createHTMLElement(d);"br"!=d&&this.setCaptionStyles_(e,a,b,c);b=null;a.region&&a.region.id&&(b=this.getRegionElement_(a));d=e;c&&(d=shaka.util.Dom.createHTMLElement("span"),d.classList.add("shaka-text-wrapper"),d.style.backgroundColor=a.backgroundColor,d.style.lineHeight="normal",e.appendChild(d));this.currentCuesMap_.set(a,
|
|
944
|
+
{cueElement:e,wrapper:d,regionElement:b})};
|
|
927
945
|
shaka.text.UITextDisplayer.prototype.computeCuePositionAlignment_=function(a){var b=shaka.text.Cue,c=a.direction,d=a.positionAlign;a=a.textAlign;return d!==b.positionAlign.AUTO?d:a===b.textAlign.LEFT||a===b.textAlign.START&&c===b.direction.HORIZONTAL_LEFT_TO_RIGHT||a===b.textAlign.END&&c===b.direction.HORIZONTAL_RIGHT_TO_LEFT?b.positionAlign.LEFT:a===b.textAlign.RIGHT||a===b.textAlign.START&&c===b.direction.HORIZONTAL_RIGHT_TO_LEFT||a===b.textAlign.END&&c===b.direction.HORIZONTAL_LEFT_TO_RIGHT?b.positionAlign.RIGHT:
|
|
928
946
|
b.positionAlign.CENTER};
|
|
929
947
|
shaka.text.UITextDisplayer.prototype.setCaptionStyles_=function(a,b,c,d){var e=shaka.text.Cue,f=a.style,g=0==b.nestedCues.length,h=1<c.length;f.whiteSpace="pre-wrap";var k=b.payload.replace(/\s+$/g,function(m){return"\u00a0".repeat(m.length)});f.webkitTextStrokeColor=b.textStrokeColor;f.webkitTextStrokeWidth=b.textStrokeWidth;f.color=b.color;f.direction=b.direction;f.opacity=b.opacity;f.paddingLeft=shaka.text.UITextDisplayer.convertLengthValue_(b.linePadding,b,this.videoContainer_);f.paddingRight=
|
|
930
|
-
shaka.text.UITextDisplayer.convertLengthValue_(b.linePadding,b,this.videoContainer_);f.textShadow=b.textShadow;if(b.backgroundImage)f.backgroundImage="url('"+b.backgroundImage+"')",f.backgroundRepeat="no-repeat",f.backgroundSize="contain",f.backgroundPosition="center",f.width="100%",f.height="100%";else{if(b.nestedCues.length)var l=a;else l=shaka.util.Dom.createHTMLElement("span"),a.appendChild(l);b.border&&(l.style.border=b.border);d||((a=shaka.text.UITextDisplayer.inheritProperty_(c,
|
|
931
|
-
l.style.backgroundColor=a:k&&(l.style.backgroundColor="rgba(0, 0, 0, 0.8)"));k&&(l.textContent=k)}h&&!c[c.length-1].isContainer?f.display="inline":(f.display="flex",f.flexDirection="column",f.alignItems="center",f.justifyContent=b.displayAlign==e.displayAlign.BEFORE?"flex-start":b.displayAlign==e.displayAlign.CENTER?"center":"flex-end");g||(f.margin="0");f.fontFamily=b.fontFamily;f.fontWeight=b.fontWeight.toString();f.fontStyle=b.fontStyle;f.letterSpacing=b.letterSpacing;
|
|
932
|
-
b,this.videoContainer_);null!=b.line&&(c=b.lineInterpretation,0==b.line&&c==e.lineInterpretation.LINE_NUMBER&&(c=e.lineInterpretation.PERCENTAGE),c==e.lineInterpretation.PERCENTAGE&&(f.position="absolute",b.writingMode==e.writingMode.HORIZONTAL_TOP_TO_BOTTOM?(f.width="100%",b.lineAlign==e.lineAlign.START?f.top=b.line+"%":b.lineAlign==e.lineAlign.END&&(f.bottom=100-b.line+"%")):b.writingMode==e.writingMode.VERTICAL_LEFT_TO_RIGHT?
|
|
933
|
-
e.lineAlign.END&&(f.right=100-b.line+"%")):(f.height="100%",b.lineAlign==e.lineAlign.START?f.right=b.line+"%":b.lineAlign==e.lineAlign.END&&(f.left=100-b.line+"%"))));f.lineHeight=b.lineHeight;null!=b.position&&(b.writingMode==e.writingMode.HORIZONTAL_TOP_TO_BOTTOM?f.paddingLeft=b.position:f.paddingTop=b.position);c=this.computeCuePositionAlignment_(b);c==e.positionAlign.LEFT?f.cssFloat="left":c==e.positionAlign.RIGHT&&
|
|
934
|
-
f.writingMode=b.writingMode;"writingMode"in document.documentElement.style&&f.writingMode==b.writingMode||(f.webkitWritingMode=b.writingMode);b.size&&(b.writingMode==e.writingMode.HORIZONTAL_TOP_TO_BOTTOM?f.width=b.size+"%":f.height=b.size+"%")};shaka.text.UITextDisplayer.getLengthValueInfo_=function(a){return(a=(new RegExp(/(\d*\.?\d+)([a-z]+|%+)/)).exec(a))?{value:Number(a[1]),unit:a[2]}:null};
|
|
948
|
+
shaka.text.UITextDisplayer.convertLengthValue_(b.linePadding,b,this.videoContainer_);f.textCombineUpright=b.textCombineUpright;f.textShadow=b.textShadow;if(b.backgroundImage)f.backgroundImage="url('"+b.backgroundImage+"')",f.backgroundRepeat="no-repeat",f.backgroundSize="contain",f.backgroundPosition="center",f.width="100%",f.height="100%";else{if(b.nestedCues.length)var l=a;else l=shaka.util.Dom.createHTMLElement("span"),a.appendChild(l);b.border&&(l.style.border=b.border);d||((a=shaka.text.UITextDisplayer.inheritProperty_(c,
|
|
949
|
+
function(m){return m.backgroundColor}))?l.style.backgroundColor=a:k&&(l.style.backgroundColor="rgba(0, 0, 0, 0.8)"));k&&(l.textContent=k)}h&&!c[c.length-1].isContainer?f.display="inline":(f.display="flex",f.flexDirection="column",f.alignItems="center",f.justifyContent=b.displayAlign==e.displayAlign.BEFORE?"flex-start":b.displayAlign==e.displayAlign.CENTER?"center":"flex-end");g||(f.margin="0");f.fontFamily=b.fontFamily;f.fontWeight=b.fontWeight.toString();f.fontStyle=b.fontStyle;f.letterSpacing=b.letterSpacing;
|
|
950
|
+
f.fontSize=shaka.text.UITextDisplayer.convertLengthValue_(b.fontSize,b,this.videoContainer_);null!=b.line&&(c=b.lineInterpretation,0==b.line&&c==e.lineInterpretation.LINE_NUMBER&&(c=e.lineInterpretation.PERCENTAGE),c==e.lineInterpretation.PERCENTAGE&&(f.position="absolute",b.writingMode==e.writingMode.HORIZONTAL_TOP_TO_BOTTOM?(f.width="100%",b.lineAlign==e.lineAlign.START?f.top=b.line+"%":b.lineAlign==e.lineAlign.END&&(f.bottom=100-b.line+"%")):b.writingMode==e.writingMode.VERTICAL_LEFT_TO_RIGHT?
|
|
951
|
+
(f.height="100%",b.lineAlign==e.lineAlign.START?f.left=b.line+"%":b.lineAlign==e.lineAlign.END&&(f.right=100-b.line+"%")):(f.height="100%",b.lineAlign==e.lineAlign.START?f.right=b.line+"%":b.lineAlign==e.lineAlign.END&&(f.left=100-b.line+"%"))));f.lineHeight=b.lineHeight;null!=b.position&&(b.writingMode==e.writingMode.HORIZONTAL_TOP_TO_BOTTOM?f.paddingLeft=b.position:f.paddingTop=b.position);c=this.computeCuePositionAlignment_(b);c==e.positionAlign.LEFT?f.cssFloat="left":c==e.positionAlign.RIGHT&&
|
|
952
|
+
(f.cssFloat="right");f.textAlign=b.textAlign;f.textDecoration=b.textDecoration.join(" ");f.writingMode=b.writingMode;"writingMode"in document.documentElement.style&&f.writingMode==b.writingMode||(f.webkitWritingMode=b.writingMode);b.size&&(b.writingMode==e.writingMode.HORIZONTAL_TOP_TO_BOTTOM?f.width=b.size+"%":f.height=b.size+"%")};shaka.text.UITextDisplayer.getLengthValueInfo_=function(a){return(a=(new RegExp(/(\d*\.?\d+)([a-z]+|%+)/)).exec(a))?{value:Number(a[1]),unit:a[2]}:null};
|
|
935
953
|
shaka.text.UITextDisplayer.convertLengthValue_=function(a,b,c){var d=shaka.text.UITextDisplayer.getLengthValueInfo_(a);if(!d)return a;var e=d.value;switch(d.unit){case "%":return shaka.text.UITextDisplayer.getAbsoluteLengthInPixels_(e/100,b,c);case "c":return shaka.text.UITextDisplayer.getAbsoluteLengthInPixels_(e,b,c);default:return a}};shaka.text.UITextDisplayer.getAbsoluteLengthInPixels_=function(a,b,c){return c.clientHeight*a/b.cellResolution.rows+"px"};
|
|
936
954
|
shaka.text.UITextDisplayer.inheritProperty_=function(a,b){for(var c=a.length-1;0<=c;c--){var d=b(a[c]);if(d||0===d)return d}return null};goog.exportSymbol("shaka.text.UITextDisplayer",shaka.text.UITextDisplayer);goog.exportProperty(shaka.text.UITextDisplayer.prototype,"setTextVisibility",shaka.text.UITextDisplayer.prototype.setTextVisibility);goog.exportProperty(shaka.text.UITextDisplayer.prototype,"isTextVisible",shaka.text.UITextDisplayer.prototype.isTextVisible);
|
|
937
955
|
goog.exportProperty(shaka.text.UITextDisplayer.prototype,"remove",shaka.text.UITextDisplayer.prototype.remove);goog.exportProperty(shaka.text.UITextDisplayer.prototype,"destroy",shaka.text.UITextDisplayer.prototype.destroy);goog.exportProperty(shaka.text.UITextDisplayer.prototype,"append",shaka.text.UITextDisplayer.prototype.append);shaka.text.WebVttGenerator=function(){};
|
|
@@ -948,7 +966,8 @@ shaka.util.CmcdManager.prototype.createData_=function(){this.sid_||(this.sid_=th
|
|
|
948
966
|
shaka.util.CmcdManager.prototype.apply_=function(a,b,c){b=void 0===b?{}:b;c=void 0===c?this.config_.useHeaders:c;if(this.config_.enabled){Object.assign(b,this.createData_());b.pr=this.playerInterface_.getPlaybackRate();var d=b.ot===shaka.util.CmcdManager.ObjectType.VIDEO||b.ot===shaka.util.CmcdManager.ObjectType.MUXED;this.starved_&&d&&(b.bs=!0,b.su=!0,this.starved_=!1);null==b.su&&(b.su=this.buffering_);if(c)b=shaka.util.CmcdManager.toHeaders(b),Object.keys(b).length&&Object.assign(a.headers,b);
|
|
949
967
|
else{var e=shaka.util.CmcdManager.toQuery(b);e&&(a.uris=a.uris.map(function(f){return shaka.util.CmcdManager.appendQueryToUri(f,e)}))}}};
|
|
950
968
|
shaka.util.CmcdManager.prototype.getObjectType_=function(a){if(a.type===shaka.net.NetworkingEngine.AdvancedRequestType.INIT_SEGMENT)return shaka.util.CmcdManager.ObjectType.INIT;if(a=a.stream){var b=a.type;if("video"==b)return a.codecs&&a.codecs.includes(",")?shaka.util.CmcdManager.ObjectType.MUXED:shaka.util.CmcdManager.ObjectType.VIDEO;if("audio"==b)return shaka.util.CmcdManager.ObjectType.AUDIO;if("text"==b)return"application/mp4"===a.mimeType?shaka.util.CmcdManager.ObjectType.TIMED_TEXT:shaka.util.CmcdManager.ObjectType.CAPTION}};
|
|
951
|
-
shaka.util.CmcdManager.prototype.getObjectTypeFromMimeType_=function(a){switch(a){case "video/webm":case "video/mp4":return shaka.util.CmcdManager.ObjectType.MUXED;case "application/x-mpegurl":
|
|
969
|
+
shaka.util.CmcdManager.prototype.getObjectTypeFromMimeType_=function(a){switch(a.toLowerCase()){case "video/webm":case "video/mp4":case "video/mpeg":case "video/mp2t":return shaka.util.CmcdManager.ObjectType.MUXED;case "application/x-mpegurl":case "application/vnd.apple.mpegurl":case "application/dash+xml":case "video/vnd.mpeg.dash.mpd":return shaka.util.CmcdManager.ObjectType.MANIFEST}};
|
|
970
|
+
shaka.util.CmcdManager.prototype.getBufferLength_=function(a){a=this.playerInterface_.getBufferedInfo()[a];if(!a.length)return NaN;var b=this.playerInterface_.getCurrentTime();return(a=a.find(function(c){return c.start<=b&&c.end>=b}))?1E3*(a.end-b):NaN};
|
|
952
971
|
shaka.util.CmcdManager.prototype.getStreamFormat_=function(a){var b=shaka.net.NetworkingEngine.AdvancedRequestType;switch(a){case b.MPD:return shaka.util.CmcdManager.StreamingFormat.DASH;case b.MASTER_PLAYLIST:case b.MEDIA_PLAYLIST:return shaka.util.CmcdManager.StreamingFormat.HLS;case b.MSS:return shaka.util.CmcdManager.StreamingFormat.SMOOTH}};shaka.util.CmcdManager.prototype.getStreamType_=function(){return this.playerInterface_.isLive()?shaka.util.CmcdManager.StreamType.LIVE:shaka.util.CmcdManager.StreamType.VOD};
|
|
953
972
|
shaka.util.CmcdManager.prototype.getTopBandwidth_=function(a){var b=this.playerInterface_.getVariantTracks();if(!b.length)return NaN;var c=b[0];b=$jscomp.makeIterator(b);for(var d=b.next();!d.done;d=b.next())d=d.value,"variant"===d.type&&d.bandwidth>c.bandwidth&&(c=d);b=shaka.util.CmcdManager.ObjectType;switch(a){case b.VIDEO:return c.videoBandwidth||NaN;case b.AUDIO:return c.audioBandwidth||NaN;default:return c.bandwidth}};
|
|
954
973
|
shaka.util.CmcdManager.serialize=function(a){var b=[],c=function(m){return!Number.isNaN(m)&&null!=m&&""!==m&&!1!==m},d=function(m){return Math.round(m)},e=function(m){return 100*d(m/100)};e={br:d,d:d,bl:e,dl:e,mtp:e,nor:function(m){return encodeURIComponent(m)},rtp:e,tb:d};var f=Object.keys(a||{}).sort();f=$jscomp.makeIterator(f);for(var g=f.next();!g.done;g=f.next()){g=g.value;var h=a[g];if(c(h)&&("v"!==g||1!==h)&&("pr"!=g||1!==h)){var k=e[g];k&&(h=k(h));k=typeof h;var l=void 0;l="string"===k&&"ot"!==
|
|
@@ -972,24 +991,25 @@ shaka.util.FairPlayUtils.commonFairPlayResponse=function(a,b,c){if(a===shaka.net
|
|
|
972
991
|
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);
|
|
973
992
|
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);
|
|
974
993
|
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(){};
|
|
975
|
-
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(
|
|
976
|
-
shaka.util.FairPlayUtils.initDataTransform(
|
|
994
|
+
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(h,k,l){shaka.util.Platform.isMediaKeysPolyfilled()&&"skd"==k&&(k=l.serverCertificate,l=shaka.util.FairPlayUtils.defaultGetContentId(h),h=
|
|
995
|
+
shaka.util.FairPlayUtils.initDataTransform(h,l,k));return h},logLicenseExchange:!1,updateExpirationTime:1,preferredKeySystems:[],keySystemsMapping:{},parseInbandPsshEnabled:shaka.util.Platform.isXboxOne(),minHdcpVersion:""},c={retryParameters:shaka.net.NetworkingEngine.defaultRetryParameters(),availabilityWindowOverride:NaN,disableAudio:!1,disableVideo:!1,disableText:!1,disableThumbnails:!1,defaultPresentationDelay:0,segmentRelativeVttTiming:!1,raiseFatalErrorOnManifestUpdateRequestFailure:!1,dash:{clockSyncUri:"",
|
|
977
996
|
ignoreDrmInfo:!1,disableXlinkProcessing:!1,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",
|
|
978
|
-
"urn:uuid:79f0049a-4098-8642-ab92-e65be0885f95":"com.microsoft.playready","urn:uuid:f239e769-efa3-4850-9c16-a903c6932efb":"com.adobe.primetime"},manifestPreprocessor:function(
|
|
979
|
-
liveSegmentsDelay:3,sequenceMode:shaka.util.Platform.supportsSequenceMode(),ignoreManifestTimestampsInSegmentsMode:!1},mss:{manifestPreprocessor:function(
|
|
980
|
-
|
|
981
|
-
observeQualityChanges:!1,maxDisabledTime:30,parsePrftBox:!1,segmentPrefetchLimit:0,liveSync:!1,liveSyncMaxLatency:1,liveSyncPlaybackRate:1.1};if(shaka.util.Platform.isWebOS()||shaka.util.Platform.isTizen()||shaka.util.Platform.isChromecast())d.stallSkip=0;var e={trackSelectionCallback:function(
|
|
982
|
-
navigator.storage.estimate?
|
|
983
|
-
|
|
984
|
-
preferredAudioLanguage:"",preferredAudioLabel:"",preferredTextLanguage:"",preferredVariantRole:"",preferredTextRole:"",preferredAudioChannelCount:2,preferredVideoHdrLevel:"AUTO",preferredVideoCodecs:[],preferredAudioCodecs:[],preferForcedSubs:!1,preferredDecodingAttributes:[],restrictions:{minWidth:0,
|
|
985
|
-
cmcd:{enabled:!1,sessionId:"",contentId:"",useHeaders:!1},lcevc:{enabled:!1,dynamicPerformanceScaling:!0,logLevel:0,drawLogo:!1},ads:{customPlayheadTracker:!1}};e.trackSelectionCallback=function(
|
|
997
|
+
"urn:uuid:79f0049a-4098-8642-ab92-e65be0885f95":"com.microsoft.playready","urn:uuid:f239e769-efa3-4850-9c16-a903c6932efb":"com.adobe.primetime"},manifestPreprocessor:function(h){return shaka.util.ConfigUtils.referenceParametersAndReturn([h],h)},sequenceMode:!1,enableAudioGroups:!1},hls:{ignoreTextStreamFailures:!1,ignoreImageStreamFailures:!1,defaultAudioCodec:"mp4a.40.2",defaultVideoCodec:"avc1.42E01E",ignoreManifestProgramDateTime:!1,mediaPlaylistFullMimeType:'video/mp2t; codecs="avc1.42E01E, mp4a.40.2"',
|
|
998
|
+
useSafariBehaviorForLive:!0,liveSegmentsDelay:3,sequenceMode:shaka.util.Platform.supportsSequenceMode(),ignoreManifestTimestampsInSegmentsMode:!1},mss:{manifestPreprocessor:function(h){return shaka.util.ConfigUtils.referenceParametersAndReturn([h],h)},sequenceMode:!1,keySystemsBySystemId:{"9a04f079-9840-4286-ab92-e65be0885f95":"com.microsoft.playready","79f0049a-4098-8642-ab92-e65be0885f95":"com.microsoft.playready"}}},d={retryParameters:shaka.net.NetworkingEngine.defaultRetryParameters(),failureCallback:function(h){shaka.log.error("Unhandled streaming error",
|
|
999
|
+
h);return shaka.util.ConfigUtils.referenceParametersAndReturn([h],void 0)},rebufferingGoal:2,bufferingGoal:10,bufferBehind:30,ignoreTextStreamFailures:!1,alwaysStreamText:!1,startAtSegmentBoundary:!1,gapDetectionThreshold:.5,gapJumpTimerTime:.25,durationBackoff:1,safeSeekOffset:5,stallEnabled:!0,stallThreshold:1,stallSkip:.1,useNativeHlsOnSafari:!0,inaccurateManifestTolerance:2,lowLatencyMode:!1,autoLowLatencyMode:!1,forceHTTPS:!1,preferNativeHls:!1,updateIntervalSeconds:1,dispatchAllEmsgBoxes:!1,
|
|
1000
|
+
observeQualityChanges:!1,maxDisabledTime:30,parsePrftBox:!1,segmentPrefetchLimit:0,liveSync:!1,liveSyncMaxLatency:1,liveSyncPlaybackRate:1.1};if(shaka.util.Platform.isWebOS()||shaka.util.Platform.isTizen()||shaka.util.Platform.isChromecast())d.stallSkip=0;var e={trackSelectionCallback:function(h){return $jscomp.asyncExecutePromiseGeneratorProgram(function(k){return k.return(h)})},downloadSizeCallback:function(h){var k;return $jscomp.asyncExecutePromiseGeneratorProgram(function(l){if(1==l.nextAddress)return navigator.storage&&
|
|
1001
|
+
navigator.storage.estimate?l.yield(navigator.storage.estimate(),3):l.return(!0);k=l.yieldResult;return l.return(k.usage+h<.95*k.quota)})},progressCallback:function(h,k){return shaka.util.ConfigUtils.referenceParametersAndReturn([h,k],void 0)},usePersistentLicense:!0,numberOfParallelDownloads:5};a={enabled:!0,useNetworkInformation:!0,defaultBandwidthEstimate:1E6,switchInterval:8,bandwidthUpgradeTarget:.85,bandwidthDowngradeTarget:.95,restrictions:{minWidth:0,maxWidth:Infinity,minHeight:0,maxHeight:a,
|
|
1002
|
+
minPixels:0,maxPixels:Infinity,minFrameRate:0,maxFrameRate:Infinity,minBandwidth:0,maxBandwidth:Infinity},advanced:{minTotalBytes:128E3,minBytes:16E3,fastHalfLife:2,slowHalfLife:5},restrictToElementSize:!1,restrictToScreenSize:!1,ignoreDevicePixelRatio:!1,clearBufferSwitch:!1,safeMarginSwitch:0};var f=shaka.config.CodecSwitchingStrategy.RELOAD;shaka.util.Platform.supportsSmoothCodecSwitching()&&(f=shaka.config.CodecSwitchingStrategy.SMOOTH);var g={drm:b,manifest:c,streaming:d,mediaSource:{codecSwitchingStrategy:f,
|
|
1003
|
+
sourceBufferExtraFeatures:"",forceTransmux:!1,insertFakeEncryptionInInit:!0},offline:e,abrFactory:function(){return new shaka.abr.SimpleAbrManager},abr:a,autoShowText:shaka.config.AutoShowText.IF_SUBTITLES_MAY_BE_NEEDED,preferredAudioLanguage:"",preferredAudioLabel:"",preferredTextLanguage:"",preferredVariantRole:"",preferredTextRole:"",preferredAudioChannelCount:2,preferredVideoHdrLevel:"AUTO",preferredVideoCodecs:[],preferredAudioCodecs:[],preferForcedSubs:!1,preferredDecodingAttributes:[],restrictions:{minWidth:0,
|
|
1004
|
+
maxWidth:Infinity,minHeight:0,maxHeight:Infinity,minPixels:0,maxPixels:Infinity,minFrameRate:0,maxFrameRate:Infinity,minBandwidth:0,maxBandwidth:Infinity},playRangeStart:0,playRangeEnd:Infinity,textDisplayFactory:function(){return null},cmcd:{enabled:!1,sessionId:"",contentId:"",useHeaders:!1},lcevc:{enabled:!1,dynamicPerformanceScaling:!0,logLevel:0,drawLogo:!1},ads:{customPlayheadTracker:!1}};e.trackSelectionCallback=function(h){return $jscomp.asyncExecutePromiseGeneratorProgram(function(k){return k.return(shaka.util.PlayerConfiguration.defaultTrackSelect(h,
|
|
1005
|
+
g.preferredAudioLanguage))})};return g};
|
|
986
1006
|
shaka.util.PlayerConfiguration.mergeConfigObjects=function(a,b,c){var d={".drm.keySystemsMapping":"",".drm.servers":"",".drm.clearKeys":"",".drm.advanced":{distinctiveIdentifierRequired:!1,persistentStateRequired:!1,videoRobustness:"",audioRobustness:"",sessionType:"",serverCertificate:new Uint8Array(0),serverCertificateUri:"",individualizationServer:""}};return shaka.util.ConfigUtils.mergeConfigObjects(a,b,c||shaka.util.PlayerConfiguration.createDefault(),d,"")};
|
|
987
1007
|
shaka.util.PlayerConfiguration.defaultTrackSelect=function(a,b){var c=shaka.util.ManifestParserUtils.ContentType,d=shaka.util.LanguageUtils,e=a.filter(function(k){return"variant"==k.type}),f=[],g=d.findClosestLocale(b,e.map(function(k){return k.language}));g&&(f=e.filter(function(k){return d.normalize(k.language)==g}));0==f.length&&(f=e.filter(function(k){return k.primary}));0==f.length&&(1<(new Set(e.map(function(k){return k.language}))).size&&shaka.log.warning("Could not choose a good audio track based on language preferences or primary tracks. An arbitrary language will be stored!"),
|
|
988
1008
|
f=e);var h=f.filter(function(k){return k.height&&480>=k.height});h.length&&(h.sort(function(k,l){goog.asserts.assert(null!=k.height,"Null height");goog.asserts.assert(null!=l.height,"Null height");return l.height-k.height}),f=h.filter(function(k){return k.height==h[0].height}));b=[];f.length&&(e=Math.floor(f.length/2),f.sort(function(k,l){return k.bandwidth-l.bandwidth}),b.push(f[e]));a=$jscomp.makeIterator(a);for(f=a.next();!f.done;f=a.next())f=f.value,f.type!=c.TEXT&&f.type!=c.IMAGE||b.push(f);
|
|
989
|
-
return b};goog.exportSymbol("shaka.util.PlayerConfiguration",shaka.util.PlayerConfiguration);goog.exportProperty(shaka.util.PlayerConfiguration,"mergeConfigObjects",shaka.util.PlayerConfiguration.mergeConfigObjects);goog.exportProperty(shaka.util.PlayerConfiguration,"createDefault",shaka.util.PlayerConfiguration.createDefault);shaka.util.StateHistory=function(){this.open_=null;this.closed_=[]};shaka.util.StateHistory.prototype.update=function(a){null==this.open_?this.start_(a):this.update_(a)};shaka.util.StateHistory.prototype.getTimeSpentIn=function(a){var b=0;this.open_&&this.open_.state==a&&(b+=this.open_.duration);for(var c=$jscomp.makeIterator(this.closed_),d=c.next();!d.done;d=c.next())d=d.value,b+=d.state==a?d.duration:0;return b};
|
|
1009
|
+
return b};goog.exportSymbol("shaka.util.PlayerConfiguration",shaka.util.PlayerConfiguration);goog.exportProperty(shaka.util.PlayerConfiguration,"mergeConfigObjects",shaka.util.PlayerConfiguration.mergeConfigObjects);goog.exportProperty(shaka.util.PlayerConfiguration,"createDefault",shaka.util.PlayerConfiguration.createDefault);shaka.util.StateHistory=function(){this.open_=null;this.closed_=[]};shaka.util.StateHistory.prototype.update=function(a){return null==this.open_?(this.start_(a),!0):this.update_(a)};shaka.util.StateHistory.prototype.getTimeSpentIn=function(a){var b=0;this.open_&&this.open_.state==a&&(b+=this.open_.duration);for(var c=$jscomp.makeIterator(this.closed_),d=c.next();!d.done;d=c.next())d=d.value,b+=d.state==a?d.duration:0;return b};
|
|
990
1010
|
shaka.util.StateHistory.prototype.getCopy=function(){for(var a=function(e){return{timestamp:e.timestamp,state:e.state,duration:e.duration}},b=[],c=$jscomp.makeIterator(this.closed_),d=c.next();!d.done;d=c.next())b.push(a(d.value));this.open_&&b.push(a(this.open_));return b};
|
|
991
1011
|
shaka.util.StateHistory.prototype.start_=function(a){goog.asserts.assert(null==this.open_,"There must be no open entry in order when we start");shaka.log.v1("Changing Player state to",a);this.open_={timestamp:this.getNowInSeconds_(),state:a,duration:0}};
|
|
992
|
-
shaka.util.StateHistory.prototype.update_=function(a){goog.asserts.assert(this.open_,"There must be an open entry in order to update it");var b=this.getNowInSeconds_();this.open_.duration=b-this.open_.timestamp;this.open_.state
|
|
1012
|
+
shaka.util.StateHistory.prototype.update_=function(a){goog.asserts.assert(this.open_,"There must be an open entry in order to update it");var b=this.getNowInSeconds_();this.open_.duration=b-this.open_.timestamp;if(this.open_.state==a)return!1;shaka.log.v1("Changing Player state to",a);this.closed_.push(this.open_);this.open_={timestamp:b,state:a,duration:0};return!0};shaka.util.StateHistory.prototype.getNowInSeconds_=function(){return Date.now()/1E3};shaka.util.SwitchHistory=function(){this.currentText_=this.currentVariant_=null;this.history_=[]};shaka.util.SwitchHistory.prototype.updateCurrentVariant=function(a,b){this.currentVariant_!=a&&(this.currentVariant_=a,this.history_.push({timestamp:this.getNowInSeconds_(),id:a.id,type:"variant",fromAdaptation:b,bandwidth:a.bandwidth}))};
|
|
993
1013
|
shaka.util.SwitchHistory.prototype.updateCurrentText=function(a,b){this.currentText_!=a&&(this.currentText_=a,this.history_.push({timestamp:this.getNowInSeconds_(),id:a.id,type:"text",fromAdaptation:b,bandwidth:null}))};shaka.util.SwitchHistory.prototype.getCopy=function(){for(var a=[],b=$jscomp.makeIterator(this.history_),c=b.next();!c.done;c=b.next())a.push(this.clone_(c.value));return a};shaka.util.SwitchHistory.prototype.getNowInSeconds_=function(){return Date.now()/1E3};
|
|
994
1014
|
shaka.util.SwitchHistory.prototype.clone_=function(a){return{timestamp:a.timestamp,id:a.id,type:a.type,fromAdaptation:a.fromAdaptation,bandwidth:a.bandwidth}};shaka.util.Stats=function(){this.bandwidthEstimate_=this.currentStreamBandwidth_=this.maxSegmentDurationSeconds_=this.liveLatencySeconds_=this.licenseTimeSeconds_=this.drmTimeSeconds_=this.manifestTimeSeconds_=this.loadLatencySeconds_=this.completionPercent_=this.totalGapsJumped_=this.totalStallsDetected_=this.totalCorruptedFrames_=this.totalDecodedFrames_=this.totalDroppedFrames_=this.height_=this.width_=NaN;this.stateHistory_=new shaka.util.StateHistory;this.switchHistory_=new shaka.util.SwitchHistory};
|
|
995
1015
|
shaka.util.Stats.prototype.setDroppedFrames=function(a,b){this.totalDroppedFrames_=a;this.totalDecodedFrames_=b};shaka.util.Stats.prototype.setCorruptedFrames=function(a){this.totalCorruptedFrames_=a};shaka.util.Stats.prototype.setStallsDetected=function(a){this.totalStallsDetected_=a};shaka.util.Stats.prototype.setGapsJumped=function(a){this.totalGapsJumped_=a};shaka.util.Stats.prototype.setResolution=function(a,b){this.width_=a;this.height_=b};
|
|
@@ -997,40 +1017,40 @@ shaka.util.Stats.prototype.setLoadLatency=function(a){this.loadLatencySeconds_=a
|
|
|
997
1017
|
shaka.util.Stats.prototype.setLiveLatency=function(a){this.liveLatencySeconds_=a};shaka.util.Stats.prototype.setMaxSegmentDuration=function(a){this.maxSegmentDurationSeconds_=a};shaka.util.Stats.prototype.setCurrentStreamBandwidth=function(a){this.currentStreamBandwidth_=a};shaka.util.Stats.prototype.setBandwidthEstimate=function(a){this.bandwidthEstimate_=a};shaka.util.Stats.prototype.getStateHistory=function(){return this.stateHistory_};shaka.util.Stats.prototype.getSwitchHistory=function(){return this.switchHistory_};
|
|
998
1018
|
shaka.util.Stats.prototype.getBlob=function(){return{width:this.width_,height:this.height_,streamBandwidth:this.currentStreamBandwidth_,decodedFrames:this.totalDecodedFrames_,droppedFrames:this.totalDroppedFrames_,corruptedFrames:this.totalCorruptedFrames_,stallsDetected:this.totalStallsDetected_,gapsJumped:this.totalGapsJumped_,estimatedBandwidth:this.bandwidthEstimate_,completionPercent:this.completionPercent_,loadLatency:this.loadLatencySeconds_,manifestTimeSeconds:this.manifestTimeSeconds_,drmTimeSeconds:this.drmTimeSeconds_,
|
|
999
1019
|
playTime:this.stateHistory_.getTimeSpentIn("playing"),pauseTime:this.stateHistory_.getTimeSpentIn("paused"),bufferingTime:this.stateHistory_.getTimeSpentIn("buffering"),licenseTime:this.licenseTimeSeconds_,liveLatency:this.liveLatencySeconds_,maxSegmentDuration:this.maxSegmentDurationSeconds_,stateHistory:this.stateHistory_.getCopy(),switchHistory:this.switchHistory_.getCopy()}};
|
|
1000
|
-
shaka.util.Stats.getEmptyBlob=function(){return{width:NaN,height:NaN,streamBandwidth:NaN,decodedFrames:NaN,droppedFrames:NaN,corruptedFrames:NaN,stallsDetected:NaN,gapsJumped:NaN,estimatedBandwidth:NaN,completionPercent:NaN,loadLatency:NaN,manifestTimeSeconds:NaN,drmTimeSeconds:NaN,playTime:NaN,pauseTime:NaN,bufferingTime:NaN,licenseTime:NaN,liveLatency:NaN,maxSegmentDuration:NaN,switchHistory:[],stateHistory:[]}};shaka.Player=function(a,b){shaka.util.FakeEventTarget.call(this);var c=this;this.loadMode_=shaka.Player.LoadMode.NOT_LOADED;this.videoContainer_=this.video_=null;this.isTextVisible_=!1;this.globalEventManager_=new shaka.util.EventManager;this.attachEventManager_=new shaka.util.EventManager;this.loadEventManager_=new shaka.util.EventManager;this.assetUri_=this.manifest_=this.parserFactory_=this.parser_=this.streamingEngine_=this.qualityObserver_=this.
|
|
1020
|
+
shaka.util.Stats.getEmptyBlob=function(){return{width:NaN,height:NaN,streamBandwidth:NaN,decodedFrames:NaN,droppedFrames:NaN,corruptedFrames:NaN,stallsDetected:NaN,gapsJumped:NaN,estimatedBandwidth:NaN,completionPercent:NaN,loadLatency:NaN,manifestTimeSeconds:NaN,drmTimeSeconds:NaN,playTime:NaN,pauseTime:NaN,bufferingTime:NaN,licenseTime:NaN,liveLatency:NaN,maxSegmentDuration:NaN,switchHistory:[],stateHistory:[]}};shaka.Player=function(a,b){shaka.util.FakeEventTarget.call(this);var c=this;this.loadMode_=shaka.Player.LoadMode.NOT_LOADED;this.videoContainer_=this.video_=null;this.isTextVisible_=!1;this.globalEventManager_=new shaka.util.EventManager;this.attachEventManager_=new shaka.util.EventManager;this.loadEventManager_=new shaka.util.EventManager;this.assetUri_=this.manifest_=this.parserFactory_=this.parser_=this.streamingEngine_=this.qualityObserver_=this.lcevcDec_=this.lcevcCanvas_=this.cmcdManager_=this.regionTimeline_=
|
|
1001
1021
|
this.bufferObserver_=this.bufferPoller_=this.playRateController_=this.playheadObservers_=this.playhead_=this.mediaSourceEngine_=this.drmEngine_=this.networkingEngine_=null;this.fullyLoaded_=!1;this.abrManagerFactory_=this.abrManager_=null;this.nextExternalStreamId_=1E9;this.config_=this.defaultConfig_();this.maxHwRes_={width:Infinity,height:Infinity};this.stats_=null;this.currentAdaptationSetCriteria_=new shaka.media.PreferenceBasedCriteria(this.config_.preferredAudioLanguage,this.config_.preferredVariantRole,
|
|
1002
|
-
this.config_.preferredAudioChannelCount,this.config_.preferredVideoHdrLevel);this.currentTextLanguage_=this.config_.preferredTextLanguage;this.currentTextRole_=this.config_.preferredTextRole;this.currentTextForced_=this.config_.preferForcedSubs;this.cleanupOnUnload_=[];this.updatedStartTime_=null;b&&b(this);this.cmcdManager_=this.createCmcd_();this.networkingEngine_=this.createNetworkingEngine();this.networkingEngine_.setForceHTTPS(this.config_.streaming.forceHTTPS);
|
|
1003
|
-
(this.adManager_=shaka.Player.adManagerFactory_());this.globalEventManager_.listen(window,"online",function(){c.restoreDisabledVariants_();c.retryStreaming()});this.detachNode_={name:"detach"};this.attachNode_={name:"attach"};this.unloadNode_={name:"unload"};this.parserNode_={name:"manifest-parser"};this.manifestNode_={name:"manifest"};this.mediaSourceNode_={name:"media-source"};this.drmNode_={name:"drm-engine"};this.loadNode_={name:"load"};this.srcEqualsDrmNode_=
|
|
1004
|
-
{name:"src-equals"};var d=shaka.util.AbortableOperation,e=new Map;e.set(this.attachNode_,function(f,g){return d.notAbortable(c.onAttach_(f,g))});e.set(this.detachNode_,function(f,g){return d.notAbortable(c.onDetach_(f,g))});e.set(this.unloadNode_,function(f,g){return d.notAbortable(c.onUnload_(f,g))});e.set(this.mediaSourceNode_,function(f,g){f=c.onInitializeMediaSourceEngine_(f,g);return d.notAbortable(f)});e.set(this.parserNode_,function(f,g){f=
|
|
1005
|
-
e.set(this.manifestNode_,function(f,g){return c.onParseManifest_(f,g)});e.set(this.drmNode_,function(f,g){f=c.onInitializeDrm_(f,g);return d.notAbortable(f)});e.set(this.loadNode_,function(f,g){return d.notAbortable(c.onLoad_(f,g))});e.set(this.srcEqualsDrmNode_,function(f,g){f=c.onInitializeSrcEqualsDrm_(f,g);return d.notAbortable(f)});e.set(this.srcEqualsNode_,function(f,g){return c.onSrcEquals_(f,g)});this.walker_=new shaka.routing.Walker(this.detachNode_,
|
|
1006
|
-
g,h,k){return c.getNextStep_(f,g,h,k)},enterNode:function(f,g,h){c.dispatchEvent(c.makeEvent_(shaka.util.FakeEvent.EventName.OnStateChange,(new Map).set("state",f.name)));return e.get(f)(g,h)},handleError:function(f,g){return $jscomp.asyncExecutePromiseGeneratorProgram(function(h){return 1==h.nextAddress?(shaka.log.warning("The walker saw an error:"),g instanceof shaka.util.Error?shaka.log.warning("Error Code:",g.code):(shaka.log.warning("Error Message:",
|
|
1007
|
-
g.stack)),h.yield(c.onUnload_(f,shaka.Player.createEmptyPayload_()),2)):h.return(f.mediaElement?c.attachNode_:c.detachNode_)})},onIdle:function(f){c.dispatchEvent(c.makeEvent_(shaka.util.FakeEvent.EventName.OnStateIdle,(new Map).set("state",f.name)))}});this.checkVariantsTimer_=new shaka.util.Timer(function(){return c.checkVariants_()});a&&this.attach(a,!0)};$jscomp.inherits(shaka.Player,shaka.util.FakeEventTarget);
|
|
1008
|
-
shaka.Player.prototype.
|
|
1009
|
-
shaka.Player.prototype.setupLcevc_=function(a){if(a.lcevc.enabled){var b=this.getVariantTracks();b&&b[0]&&b[0].videoMimeType==shaka.Player.SRC_EQUAL_EXTENSIONS_TO_MIME_TYPES_.ts&&(shaka.util.Platform.isEdge()||shaka.util.Platform.isLegacyEdge())&&(a.mediaSource.forceTransmux||shaka.log.alwaysWarn("LCEVC Warning: For MPEG-2 TS decoding the config.mediaSource.forceTransmux must be enabled."));this.
|
|
1022
|
+
this.config_.preferredAudioChannelCount,this.config_.preferredVideoHdrLevel,this.config_.mediaSource.codecSwitchingStrategy);this.currentTextLanguage_=this.config_.preferredTextLanguage;this.currentTextRole_=this.config_.preferredTextRole;this.currentTextForced_=this.config_.preferForcedSubs;this.cleanupOnUnload_=[];this.updatedStartTime_=null;b&&b(this);this.cmcdManager_=this.createCmcd_();this.networkingEngine_=this.createNetworkingEngine();this.networkingEngine_.setForceHTTPS(this.config_.streaming.forceHTTPS);
|
|
1023
|
+
this.adManager_=null;shaka.Player.adManagerFactory_&&(this.adManager_=shaka.Player.adManagerFactory_());this.globalEventManager_.listen(window,"online",function(){c.restoreDisabledVariants_();c.retryStreaming()});this.detachNode_={name:"detach"};this.attachNode_={name:"attach"};this.unloadNode_={name:"unload"};this.parserNode_={name:"manifest-parser"};this.manifestNode_={name:"manifest"};this.mediaSourceNode_={name:"media-source"};this.drmNode_={name:"drm-engine"};this.loadNode_={name:"load"};this.srcEqualsDrmNode_=
|
|
1024
|
+
{name:"src-equals-drm-engine"};this.srcEqualsNode_={name:"src-equals"};var d=shaka.util.AbortableOperation,e=new Map;e.set(this.attachNode_,function(f,g){return d.notAbortable(c.onAttach_(f,g))});e.set(this.detachNode_,function(f,g){return d.notAbortable(c.onDetach_(f,g))});e.set(this.unloadNode_,function(f,g){return d.notAbortable(c.onUnload_(f,g))});e.set(this.mediaSourceNode_,function(f,g){f=c.onInitializeMediaSourceEngine_(f,g);return d.notAbortable(f)});e.set(this.parserNode_,function(f,g){f=
|
|
1025
|
+
c.onInitializeParser_(f,g);return d.notAbortable(f)});e.set(this.manifestNode_,function(f,g){return c.onParseManifest_(f,g)});e.set(this.drmNode_,function(f,g){f=c.onInitializeDrm_(f,g);return d.notAbortable(f)});e.set(this.loadNode_,function(f,g){return d.notAbortable(c.onLoad_(f,g))});e.set(this.srcEqualsDrmNode_,function(f,g){f=c.onInitializeSrcEqualsDrm_(f,g);return d.notAbortable(f)});e.set(this.srcEqualsNode_,function(f,g){return c.onSrcEquals_(f,g)});this.walker_=new shaka.routing.Walker(this.detachNode_,
|
|
1026
|
+
shaka.Player.createEmptyPayload_(),{getNext:function(f,g,h,k){return c.getNextStep_(f,g,h,k)},enterNode:function(f,g,h){c.dispatchEvent(c.makeEvent_(shaka.util.FakeEvent.EventName.OnStateChange,(new Map).set("state",f.name)));return e.get(f)(g,h)},handleError:function(f,g){return $jscomp.asyncExecutePromiseGeneratorProgram(function(h){return 1==h.nextAddress?(shaka.log.warning("The walker saw an error:"),g instanceof shaka.util.Error?shaka.log.warning("Error Code:",g.code):(shaka.log.warning("Error Message:",
|
|
1027
|
+
g.message),shaka.log.warning("Error Stack:",g.stack)),h.yield(c.onUnload_(f,shaka.Player.createEmptyPayload_()),2)):h.return(f.mediaElement?c.attachNode_:c.detachNode_)})},onIdle:function(f){c.dispatchEvent(c.makeEvent_(shaka.util.FakeEvent.EventName.OnStateIdle,(new Map).set("state",f.name)))}});this.checkVariantsTimer_=new shaka.util.Timer(function(){return c.checkVariants_()});a&&this.attach(a,!0)};$jscomp.inherits(shaka.Player,shaka.util.FakeEventTarget);
|
|
1028
|
+
shaka.Player.prototype.createLcevcDec_=function(a){null==this.lcevcDec_&&(this.lcevcDec_=new shaka.lcevc.Dec(this.video_,this.lcevcCanvas_,a),this.mediaSourceEngine_&&this.mediaSourceEngine_.updateLcevcDec(this.lcevcDec_))};shaka.Player.prototype.closeLcevcDec_=function(){null!=this.lcevcDec_&&(this.lcevcDec_.hideCanvas(),this.lcevcDec_.release(),this.lcevcDec_=null)};
|
|
1029
|
+
shaka.Player.prototype.setupLcevc_=function(a){if(a.lcevc.enabled){var b=this.getVariantTracks();b&&b[0]&&b[0].videoMimeType==shaka.Player.SRC_EQUAL_EXTENSIONS_TO_MIME_TYPES_.ts&&(shaka.util.Platform.isEdge()||shaka.util.Platform.isLegacyEdge())&&(a.mediaSource.forceTransmux||shaka.log.alwaysWarn("LCEVC Warning: For MPEG-2 TS decoding the config.mediaSource.forceTransmux must be enabled."));this.closeLcevcDec_();this.createLcevcDec_(a.lcevc)}else this.closeLcevcDec_()};
|
|
1010
1030
|
shaka.Player.prototype.makeEvent_=function(a,b){return new shaka.util.FakeEvent(a,b)};
|
|
1011
|
-
shaka.Player.prototype.destroy=function(){var a=this,b;return $jscomp.asyncExecutePromiseGeneratorProgram(function(
|
|
1012
|
-
|
|
1013
|
-
a.attachEventManager_=null);a.loadEventManager_&&(a.loadEventManager_.release(),a.loadEventManager_=null);a.abrManagerFactory_=null;a.config_=null;a.stats_=null;a.videoContainer_=null;a.cmcdManager_=null;if(!a.networkingEngine_){
|
|
1031
|
+
shaka.Player.prototype.destroy=function(){var a=this,b,c;return $jscomp.asyncExecutePromiseGeneratorProgram(function(d){switch(d.nextAddress){case 1:if(a.loadMode_==shaka.Player.LoadMode.DESTROYED)return d.return();a.closeLcevcDec_();a.loadMode_=shaka.Player.LoadMode.DESTROYED;b=shaka.Player.createEmptyPayload_();b.keepAdManager=!1;c=a.walker_.startNewRoute(function(e){return{node:a.detachNode_,payload:b,interruptible:!1}});return d.yield(new Promise(function(e){c.onStart=function(){shaka.log.info("Preparing to destroy walker...")};
|
|
1032
|
+
c.onEnd=function(){e()};c.onCancel=function(){goog.asserts.assert(!1,"Our final detach call should never be cancelled.");e()};c.onError=function(){goog.asserts.assert(!1,"Our final detach call should never see an error");e()};c.onSkip=function(){goog.asserts.assert(!1,"Our final detach call should never be skipped");e()}}),2);case 2:return d.yield(a.walker_.destroy(),3);case 3:a.globalEventManager_&&(a.globalEventManager_.release(),a.globalEventManager_=null);a.attachEventManager_&&(a.attachEventManager_.release(),
|
|
1033
|
+
a.attachEventManager_=null);a.loadEventManager_&&(a.loadEventManager_.release(),a.loadEventManager_=null);a.abrManagerFactory_=null;a.config_=null;a.stats_=null;a.videoContainer_=null;a.cmcdManager_=null;if(!a.networkingEngine_){d.jumpTo(4);break}return d.yield(a.networkingEngine_.destroy(),5);case 5:a.networkingEngine_=null;case 4:a.abrManager_&&(a.abrManager_.release(),a.abrManager_=null),shaka.util.FakeEventTarget.prototype.release.call(a),d.jumpToEnd()}})};
|
|
1014
1034
|
shaka.Player.registerSupportPlugin=function(a,b){shaka.Player.supportPlugins_[a]=b};shaka.Player.setAdManagerFactory=function(a){shaka.Player.adManagerFactory_=a};
|
|
1015
1035
|
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&&13>a||!shaka.media.DrmEngine.isBrowserSupported()?!1:shaka.util.Platform.supportsMediaSource()?!0:shaka.util.Platform.supportsMediaType("application/x-mpegurl")};
|
|
1016
1036
|
shaka.Player.probeSupport=function(a){a=void 0===a?!0:a;var b,c,d,e,f,g;return $jscomp.asyncExecutePromiseGeneratorProgram(function(h){if(1==h.nextAddress)return goog.asserts.assert(shaka.Player.isBrowserSupported(),"Must have basic support"),b={},a?h.yield(shaka.media.DrmEngine.probeSupport(),3):h.jumpTo(2);2!=h.nextAddress&&(b=h.yieldResult);c=shaka.media.ManifestParser.probeSupport();d=shaka.media.MediaSourceEngine.probeSupport();e={manifest:c,media:d,drm:b};f=shaka.Player.supportPlugins_;for(g in f)e[g]=
|
|
1017
1037
|
f[g]();return h.return(e)})};shaka.Player.prototype.attach=function(a,b){b=void 0===b?!0:b;if(this.loadMode_==shaka.Player.LoadMode.DESTROYED)return Promise.reject(this.createAbortLoadError_());var c=shaka.Player.createEmptyPayload_();c.mediaElement=a;shaka.util.Platform.supportsMediaSource()||(b=!1);var d=b?this.mediaSourceNode_:this.attachNode_;a=this.walker_.startNewRoute(function(e){return{node:d,payload:c,interruptible:!1}});a.onStart=function(){return shaka.log.info("Starting attach...")};return this.wrapWalkerListenersWithPromise_(a)};
|
|
1018
1038
|
shaka.Player.prototype.attachCanvas=function(a){this.lcevcCanvas_=a};shaka.Player.prototype.detach=function(){var a=this;if(this.loadMode_==shaka.Player.LoadMode.DESTROYED)return Promise.reject(this.createAbortLoadError_());var b=this.walker_.startNewRoute(function(c){return{node:a.detachNode_,payload:shaka.Player.createEmptyPayload_(),interruptible:!1}});b.onStart=function(){return shaka.log.info("Starting detach...")};return this.wrapWalkerListenersWithPromise_(b)};
|
|
1019
|
-
shaka.Player.prototype.unload=function(a){var
|
|
1020
|
-
e.mediaElement;return{node:f,payload:
|
|
1039
|
+
shaka.Player.prototype.unload=function(a,b){var c=this;a=void 0===a?!0:a;b=void 0===b?!1:b;if(this.loadMode_==shaka.Player.LoadMode.DESTROYED)return Promise.reject(this.createAbortLoadError_());this.fullyLoaded_=!1;shaka.util.Platform.supportsMediaSource()||(a=!1);this.closeLcevcDec_();var d=shaka.Player.createEmptyPayload_();d.keepAdManager=b;b=this.walker_.startNewRoute(function(e){var f=e.mediaElement&&a?c.mediaSourceNode_:e.mediaElement?c.attachNode_:c.detachNode_;goog.asserts.assert(f,"We should have picked a destination.");
|
|
1040
|
+
d.mediaElement=e.mediaElement;return{node:f,payload:d,interruptible:!1}});b.onStart=function(){return shaka.log.info("Starting unload...")};return this.wrapWalkerListenersWithPromise_(b)};shaka.Player.prototype.updateStartTime=function(a){this.updatedStartTime_=a};
|
|
1021
1041
|
shaka.Player.prototype.load=function(a,b,c){var d=this;this.updatedStartTime_=null;this.fullyLoaded_=!1;if(this.loadMode_==shaka.Player.LoadMode.DESTROYED)return Promise.reject(this.createAbortLoadError_());this.dispatchEvent(this.makeEvent_(shaka.util.FakeEvent.EventName.Loading));var e=shaka.Player.createEmptyPayload_();e.uri=a;e.startTimeOfLoad=Date.now()/1E3;c&&(e.mimeType=c);void 0!==b&&(e.startTime=b);var f=this.shouldUseSrcEquals_(e)?this.srcEqualsNode_:this.loadNode_,g=this.walker_.startNewRoute(function(h){if(null==
|
|
1022
1042
|
h.mediaElement)return null;e.mediaElement=h.mediaElement;return{node:f,payload:e,interruptible:!0}});this.stats_=new shaka.util.Stats;g.onStart=function(){return shaka.log.info("Starting load of "+a+"...")};return new Promise(function(h,k){g.onSkip=function(){return k(new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.PLAYER,shaka.util.Error.Code.NO_VIDEO_ELEMENT))};g.onEnd=function(){h();d.dispatchEvent(d.makeEvent_(shaka.util.FakeEvent.EventName.Loaded))};g.onCancel=
|
|
1023
1043
|
function(){return k(d.createAbortLoadError_())};g.onError=function(l){return k(l)}})};
|
|
1024
1044
|
shaka.Player.prototype.shouldUseSrcEquals_=function(a){var b=shaka.util.Platform,c=shaka.util.MimeUtils;if(!b.supportsMediaSource())return!0;var d=a.mimeType,e=a.uri||"";d||(d=shaka.media.ManifestParser.getExtension(e),d=shaka.Player.SRC_EQUAL_EXTENSIONS_TO_MIME_TYPES_[d]);if(d){a=""!=(a.mediaElement||b.anyMediaElement()).canPlayType(d);if(!a)return!1;e=shaka.media.ManifestParser.isSupported(e,d);if(!e)return!0;goog.asserts.assert(a&&e,"Both native and MSE playback should be possible!");if(c.isHlsType(d)&&
|
|
1025
1045
|
this.config_.streaming.preferNativeHls)return!0;if(b.isApple())return this.config_.streaming.useNativeHlsOnSafari}return!1};shaka.Player.prototype.onAttach_=function(a,b){var c=this;goog.asserts.assert(null==a.mediaElement||a.mediaElement==b.mediaElement,"The routing logic failed. MediaElement requirement failed.");null==a.mediaElement&&(a.mediaElement=b.mediaElement,this.attachEventManager_.listen(a.mediaElement,"error",function(d){return c.onVideoError_(d)}));this.video_=a.mediaElement;return Promise.resolve()};
|
|
1026
|
-
shaka.Player.prototype.onDetach_=function(a,b){a.mediaElement&&(this.attachEventManager_.removeAll(),a.mediaElement=null);this.adManager_&&this.adManager_.release();this.video_=null;return Promise.resolve()};
|
|
1046
|
+
shaka.Player.prototype.onDetach_=function(a,b){a.mediaElement&&(this.attachEventManager_.removeAll(),a.mediaElement=null);this.adManager_&&!b.keepAdManager&&this.adManager_.release();this.video_=null;return Promise.resolve()};
|
|
1027
1047
|
shaka.Player.prototype.onUnload_=function(a,b){var c=this,d,e,f,g,h,k,l,m,n;return $jscomp.asyncExecutePromiseGeneratorProgram(function(p){switch(p.nextAddress){case 1:return c.loadMode_!=shaka.Player.LoadMode.DESTROYED&&(c.loadMode_=shaka.Player.LoadMode.NOT_LOADED),d=c.cleanupOnUnload_.map(function(q){return q()}),c.cleanupOnUnload_=[],p.yield(Promise.all(d),2);case 2:c.dispatchEvent(c.makeEvent_(shaka.util.FakeEvent.EventName.Unloading));a.mimeType=null;a.startTime=null;a.uri=null;c.regionTimeline_&&
|
|
1028
1048
|
(c.regionTimeline_.release(),c.regionTimeline_=null);a.mediaElement&&c.loadEventManager_.removeAll();c.checkVariantsTimer_.stop();c.playheadObservers_&&(c.playheadObservers_.release(),c.playheadObservers_=null);c.bufferPoller_&&(c.bufferPoller_.stop(),c.bufferPoller_=null);if(!c.parser_){p.jumpTo(3);break}return p.yield(c.parser_.stop(),4);case 4:c.parser_=null,c.parserFactory_=null;case 3:if(!c.abrManager_){p.jumpTo(5);break}return p.yield(c.abrManager_.stop(),5);case 5:if(!c.streamingEngine_){p.jumpTo(7);
|
|
1029
|
-
break}return p.yield(c.streamingEngine_.destroy(),8);case 8:c.streamingEngine_=null;case 7:c.playRateController_&&(c.playRateController_.release(),c.playRateController_=null);c.playhead_&&(c.playhead_.release(),c.playhead_=null);if(!c.mediaSourceEngine_){p.jumpTo(9);break}return p.yield(c.mediaSourceEngine_.destroy(),10);case 10:c.mediaSourceEngine_=null;case 9:if(c.adManager_)c.adManager_.onAssetUnload();if(!a.mediaElement||!a.mediaElement.src){p.jumpTo(11);break}return p.yield(new Promise(function(q){return(new shaka.util.Timer(q)).tickAfter(.1)}),
|
|
1049
|
+
break}return p.yield(c.streamingEngine_.destroy(),8);case 8:c.streamingEngine_=null;case 7:c.playRateController_&&(c.playRateController_.release(),c.playRateController_=null);c.playhead_&&(c.playhead_.release(),c.playhead_=null);if(!c.mediaSourceEngine_){p.jumpTo(9);break}return p.yield(c.mediaSourceEngine_.destroy(),10);case 10:c.mediaSourceEngine_=null;case 9:if(c.adManager_&&!b.keepAdManager)c.adManager_.onAssetUnload();if(!a.mediaElement||!a.mediaElement.src){p.jumpTo(11);break}return p.yield(new Promise(function(q){return(new shaka.util.Timer(q)).tickAfter(.1)}),
|
|
1030
1050
|
12);case 12:for(a.mediaElement.removeAttribute("src"),a.mediaElement.load();a.mediaElement.lastChild;)a.mediaElement.removeChild(a.mediaElement.firstChild);case 11:if(!c.drmEngine_){p.jumpTo(13);break}return p.yield(c.drmEngine_.destroy(),14);case 14:c.drmEngine_=null;case 13:c.assetUri_=null;c.bufferObserver_=null;if(c.manifest_){e=$jscomp.makeIterator(c.manifest_.variants);for(f=e.next();!f.done;f=e.next())for(g=f.value,h=$jscomp.makeIterator([g.audio,g.video]),k=h.next();!k.done;k=h.next())(l=
|
|
1031
1051
|
k.value)&&l.segmentIndex&&l.segmentIndex.release();m=$jscomp.makeIterator(c.manifest_.textStreams);for(k=m.next();!k.done;k=m.next())n=k.value,n.segmentIndex&&n.segmentIndex.release()}c.manifest_=null;c.stats_=new shaka.util.Stats;c.lastTextFactory_=null;c.updateBufferState_();p.jumpToEnd()}})};
|
|
1032
1052
|
shaka.Player.prototype.onInitializeMediaSourceEngine_=function(a,b){var c=this,d,e,f,g,h;return $jscomp.asyncExecutePromiseGeneratorProgram(function(k){if(1==k.nextAddress)return goog.asserts.assert(shaka.util.Platform.supportsMediaSource(),"We should not be initializing media source on a platform that does not support media source."),goog.asserts.assert(a.mediaElement,"We should have a media element when initializing media source."),goog.asserts.assert(a.mediaElement==b.mediaElement,"|has| and |wants| should have the same media element when initializing media source."),
|
|
1033
|
-
goog.asserts.assert(null==c.mediaSourceEngine_,"We should not have a media source engine yet."),d=c.config_.textDisplayFactory,e=d(),c.lastTextFactory_=d,f=c.createMediaSourceEngine(a.mediaElement,e,function(l,m,n){c.processTimedMetadataMediaSrc_(l,m,n)},c.
|
|
1053
|
+
goog.asserts.assert(null==c.mediaSourceEngine_,"We should not have a media source engine yet."),d=c.config_.textDisplayFactory,e=d(),c.lastTextFactory_=d,f=c.createMediaSourceEngine(a.mediaElement,e,function(l,m,n){c.processTimedMetadataMediaSrc_(l,m,n)},c.lcevcDec_),f.configure(c.config_.mediaSource),g=c.config_.manifest,h=g.segmentRelativeVttTiming,f.setSegmentRelativeVttTiming(h),k.yield(f.open(),2);c.mediaSourceEngine_=f;k.jumpToEnd()})};
|
|
1034
1054
|
shaka.Player.prototype.onInitializeParser_=function(a,b){var c=this,d,e,f,g;return $jscomp.asyncExecutePromiseGeneratorProgram(function(h){if(1==h.nextAddress)return goog.asserts.assert(a.mediaElement,"We should have a media element when initializing the parser."),goog.asserts.assert(a.mediaElement==b.mediaElement,"|has| and |wants| should have the same media element when initializing the parser."),goog.asserts.assert(c.networkingEngine_,"Need networking engine when initializing the parser."),goog.asserts.assert(c.config_,
|
|
1035
1055
|
"Need player config when initializing the parser."),a.mimeType=b.mimeType,a.uri=b.uri,goog.asserts.assert(a.uri,"We should have an asset uri when initializing the parsing."),d=a.uri,e=c.networkingEngine_,c.assetUri_=d,f=c,h.yield(shaka.media.ManifestParser.getFactory(d,e,c.config_.manifest.retryParameters,a.mimeType),2);f.parserFactory_=h.yieldResult;goog.asserts.assert(c.parserFactory_,"Must have manifest parser");c.parser_=c.parserFactory_();g=shaka.util.ObjectUtils.cloneObject(c.config_.manifest);
|
|
1036
1056
|
b.mediaElement&&"AUDIO"===b.mediaElement.nodeName&&(g.disableVideo=!0);c.parser_.configure(g);h.jumpToEnd()})};
|
|
@@ -1038,24 +1058,24 @@ shaka.Player.prototype.onParseManifest_=function(a,b){var c=this;goog.asserts.as
|
|
|
1038
1058
|
goog.asserts.assert(this.cmcdManager_,"Need CMCD manager to populate manifest request data.");goog.asserts.assert(this.config_,"Need player config to parse manifest.");goog.asserts.assert(this.parser_,"|this.parser_| should have been set in an earlier step.");var d=a.uri;a=this.networkingEngine_;this.regionTimeline_=new shaka.media.RegionTimeline(function(){return c.seekRange()});this.regionTimeline_.addEventListener("regionadd",function(g){g=g.region;c.onRegionEvent_(shaka.util.FakeEvent.EventName.TimelineRegionAdded,
|
|
1039
1059
|
g);if(c.adManager_)c.adManager_.onDashTimedMetadata(g)});this.qualityObserver_=null;this.config_.streaming.observeQualityChanges&&(this.qualityObserver_=new shaka.media.QualityObserver(function(){return c.getBufferedInfo()}),this.qualityObserver_.addEventListener("qualitychange",function(g){c.onMediaQualityChange_(g.quality,g.position)}));var e={networkingEngine:a,filter:function(g){return c.filterManifest_(g)},makeTextStreamsForClosedCaptions:function(g){return c.makeTextStreamsForClosedCaptions_(g)},
|
|
1040
1060
|
onTimelineRegionAdded:function(g){return c.regionTimeline_.addRegion(g)},onEvent:function(g){return c.dispatchEvent(g)},onError:function(g){return c.onError_(g)},isLowLatencyMode:function(){return c.isLowLatencyMode_()},isAutoLowLatencyMode:function(){return c.isAutoLowLatencyMode_()},enableLowLatencyMode:function(){c.configure("streaming.lowLatencyMode",!0)},updateDuration:function(){c.streamingEngine_&&c.streamingEngine_.updateDuration()},newDrmInfo:function(g){var h=c.drmEngine_?c.drmEngine_.getDrmInfo():
|
|
1041
|
-
null;h&&c.drmEngine_.getMediaKeys()&&c.processDrmInfos_(h.keySystem,g)}},f=Date.now()/1E3;return new shaka.util.AbortableOperation(function(){var g,h,k,l;return $jscomp.asyncExecutePromiseGeneratorProgram(function(m){if(1==
|
|
1042
|
-
shaka.util.Error.Code.NO_VARIANTS);shaka.Player.filterForAVVariants_(c.manifest_);k=Date.now()/1E3;l=k-f;c.stats_.setManifestTime(l);m.jumpToEnd()})}(),function(){shaka.log.info("Aborting parser step...");return c.parser_.stop()})};
|
|
1061
|
+
null;h&&c.drmEngine_.getMediaKeys()&&c.processDrmInfos_(h.keySystem,g)},onManifestUpdated:function(){var g=shaka.util.FakeEvent.EventName.ManifestUpdated,h=(new Map).set("isLive",c.isLive());c.dispatchEvent(c.makeEvent_(g,h));if(c.adManager_)c.adManager_.onManifestUpdated(c.isLive())},getBandwidthEstimate:function(){return c.abrManager_.getBandwidthEstimate()}},f=Date.now()/1E3;return new shaka.util.AbortableOperation(function(){var g,h,k,l;return $jscomp.asyncExecutePromiseGeneratorProgram(function(m){if(1==
|
|
1062
|
+
m.nextAddress)return g=c,m.yield(c.parser_.start(d,e),2);g.manifest_=m.yieldResult;h=c.makeEvent_(shaka.util.FakeEvent.EventName.ManifestParsed);c.dispatchEvent(h);if(0==c.manifest_.variants.length)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.NO_VARIANTS);shaka.Player.filterForAVVariants_(c.manifest_);k=Date.now()/1E3;l=k-f;c.stats_.setManifestTime(l);m.jumpToEnd()})}(),function(){shaka.log.info("Aborting parser step...");return c.parser_.stop()})};
|
|
1043
1063
|
shaka.Player.prototype.onInitializeDrm_=function(a,b){var c=this,d,e;return $jscomp.asyncExecutePromiseGeneratorProgram(function(f){return 1==f.nextAddress?(goog.asserts.assert(a.mimeType==b.mimeType,"The load graph should have ensured the mime types matched."),goog.asserts.assert(a.uri==b.uri,"The load graph should have ensured the uris matched"),goog.asserts.assert(c.networkingEngine_,"|onInitializeDrm_| should never be called after |destroy|"),goog.asserts.assert(c.config_,"|onInitializeDrm_| should never be called after |destroy|"),
|
|
1044
1064
|
goog.asserts.assert(c.manifest_,"|this.manifest_| should have been set in an earlier step."),goog.asserts.assert(a.mediaElement,"We should have a media element when initializing the DRM Engine."),d=Date.now()/1E3,e=!0,c.drmEngine_=c.createDrmEngine({netEngine:c.networkingEngine_,onError:function(g){c.onError_(g)},onKeyStatus:function(g){c.onKeyStatus_(g)},onExpirationUpdated:function(g,h){c.onExpirationUpdated_(g,h)},onEvent:function(g){c.dispatchEvent(g);g.type==shaka.util.FakeEvent.EventName.DrmSessionUpdate&&
|
|
1045
|
-
e&&(e=!1,g=Date.now()/1E3-d,c.stats_.setDrmTime(g),c.
|
|
1046
|
-
shaka.Player.prototype.onLoad_=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,t,
|
|
1047
|
-
"|wants| should tell us when the load was originally requested");a.startTime=b.startTime;null!=c.updatedStartTime_&&(a.startTime=c.updatedStartTime_,c.updatedStartTime_=null);d=a.mediaElement;e=a.uri;c.assetUri_=e;c.playRateController_=new shaka.media.PlayRateController({getRate:function(){return d.playbackRate},getDefaultRate:function(){return d.defaultPlaybackRate},setRate:function(
|
|
1065
|
+
e&&(e=!1,g=Date.now()/1E3-d,c.stats_.setDrmTime(g),c.lcevcDec_&&c.lcevcDec_.hideCanvas())}}),c.drmEngine_.configure(c.config_.drm),f.yield(c.drmEngine_.initForPlayback(c.manifest_.variants,c.manifest_.offlineSessionIds),2)):3!=f.nextAddress?f.yield(c.drmEngine_.attach(a.mediaElement),3):f.yield(c.filterManifest_(c.manifest_),0)})};
|
|
1066
|
+
shaka.Player.prototype.onLoad_=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,t,v,u,w,x,y,z,A;return $jscomp.asyncExecutePromiseGeneratorProgram(function(C){switch(C.nextAddress){case 1:goog.asserts.assert(a.mimeType==b.mimeType,"|has| and |wants| should have the same mime type when loading.");goog.asserts.assert(a.uri==b.uri,"|has| and |wants| should have the same uri when loading.");goog.asserts.assert(a.mediaElement,"We should have a media element when loading.");goog.asserts.assert(!isNaN(b.startTimeOfLoad),
|
|
1067
|
+
"|wants| should tell us when the load was originally requested");a.startTime=b.startTime;null!=c.updatedStartTime_&&(a.startTime=c.updatedStartTime_,c.updatedStartTime_=null);d=a.mediaElement;e=a.uri;c.assetUri_=e;c.playRateController_=new shaka.media.PlayRateController({getRate:function(){return d.playbackRate},getDefaultRate:function(){return d.defaultPlaybackRate},setRate:function(D){d.playbackRate=D},movePlayhead:function(D){d.currentTime+=D}});f=function(){return c.updateStateHistory_()};g=function(){return c.onRateChange_()};
|
|
1048
1068
|
c.loadEventManager_.listen(d,"playing",f);c.loadEventManager_.listen(d,"pause",f);c.loadEventManager_.listen(d,"ended",f);c.loadEventManager_.listen(d,"ratechange",g);c.setupLcevc_(c.config_);h=c.config_.abrFactory;c.abrManager_&&c.abrManagerFactory_==h||(c.abrManagerFactory_=h,c.abrManager_=h(),"function"!=typeof c.abrManager_.setMediaElement&&(shaka.Deprecate.deprecateFeature(5,"AbrManager","Please use an AbrManager with setMediaElement function."),c.abrManager_.setMediaElement=function(){}),c.abrManager_.configure(c.config_.abr));
|
|
1049
|
-
c.currentAdaptationSetCriteria_=new shaka.media.PreferenceBasedCriteria(c.config_.preferredAudioLanguage,c.config_.preferredVariantRole,c.config_.preferredAudioChannelCount,c.config_.preferredVideoHdrLevel,c.config_.preferredAudioLabel);c.currentTextLanguage_=c.config_.preferredTextLanguage;c.currentTextRole_=c.config_.preferredTextRole;c.currentTextForced_=c.config_.preferForcedSubs;shaka.Player.applyPlayRange_(c.manifest_.presentationTimeline,c.config_.playRangeStart,
|
|
1050
|
-
D,
|
|
1051
|
-
|
|
1052
|
-
break}return
|
|
1053
|
-
break}
|
|
1054
|
-
c.
|
|
1055
|
-
1E3-b.startTimeOfLoad;c.stats_.setLoadLatency(
|
|
1069
|
+
c.currentAdaptationSetCriteria_=new shaka.media.PreferenceBasedCriteria(c.config_.preferredAudioLanguage,c.config_.preferredVariantRole,c.config_.preferredAudioChannelCount,c.config_.preferredVideoHdrLevel,c.config_.preferredAudioLabel,c.config_.mediaSource.codecSwitchingStrategy);c.currentTextLanguage_=c.config_.preferredTextLanguage;c.currentTextRole_=c.config_.preferredTextRole;c.currentTextForced_=c.config_.preferForcedSubs;shaka.Player.applyPlayRange_(c.manifest_.presentationTimeline,c.config_.playRangeStart,
|
|
1070
|
+
c.config_.playRangeEnd);c.abrManager_.init(function(D,G,B){return c.switch_(D,G,B)});c.abrManager_.setMediaElement(d);shaka.util.StreamUtils.chooseCodecsAndFilterManifest(c.manifest_,c.config_.preferredVideoCodecs,c.config_.preferredAudioCodecs,c.config_.preferredAudioChannelCount,c.config_.preferredDecodingAttributes);c.streamingEngine_=c.createStreamingEngine();c.streamingEngine_.configure(c.config_.streaming);c.loadMode_=shaka.Player.LoadMode.MEDIA_SOURCE;d.textTracks&&c.loadEventManager_.listen(d.textTracks,
|
|
1071
|
+
"addtrack",function(D){if(D.track)switch(D=D.track,goog.asserts.assert(D instanceof TextTrack,"Wrong track type!"),D.kind){case "chapters":c.activateChaptersTrack_(D)}});c.dispatchEvent(c.makeEvent_(shaka.util.FakeEvent.EventName.Streaming));k=null;l=c.streamingEngine_.getCurrentVariant();l||(k=c.chooseVariant_(),goog.asserts.assert(k,"Must choose an initial variant!"));m=[];n=l||k;p=$jscomp.makeIterator([n.video,n.audio]);for(q=p.next();!q.done;q=p.next())(r=q.value)&&!r.segmentIndex&&m.push(r.createSegmentIndex());
|
|
1072
|
+
if(!(0<m.length)){C.jumpTo(2);break}return C.yield(Promise.all(m),2);case 2:shaka.Player.applyPlayRange_(c.manifest_.presentationTimeline,c.config_.playRangeStart,c.config_.playRangeEnd);c.playhead_=c.createPlayhead(a.startTime);c.playheadObservers_=c.createPlayheadObserversForMSE_(a.startTimeOfLoad);t=Math.max(c.manifest_.minBufferTime,c.config_.streaming.rebufferingGoal);c.startBufferManagement_(t);if(l){C.jumpTo(4);break}goog.asserts.assert(k,"Must have choosen an initial variant!");c.switchVariant_(k,
|
|
1073
|
+
!0,!1,0);if(!c.config_.streaming.startAtSegmentBoundary){C.jumpTo(4);break}v=c.playhead_.getTime();return C.yield(c.adjustStartTime_(k,v),6);case 6:u=C.yieldResult,c.playhead_.setStartTime(u);case 4:return c.playhead_.ready(),w=c.getTextTracks().find(function(D){return D.active}),w||((x=c.chooseTextStream_())&&c.addTextStreamToSwitchHistory_(x,!0),k&&c.setInitialTextState_(k,x),x&&c.shouldStreamText_()&&c.streamingEngine_.switchTextStream(x)),C.yield(c.streamingEngine_.start(),7);case 7:c.config_.abr.enabled&&
|
|
1074
|
+
(c.abrManager_.enable(),c.onAbrStatusChanged_());c.onTracksChanged_();c.updateAbrManagerVariants_();y=c.manifest_.variants.some(function(D){return D.primary});c.config_.preferredAudioLanguage||y||shaka.log.warning("No preferred audio language set. We have chosen an arbitrary language initially");(z=c.isLive())&&(c.config_.streaming.liveSync||c.manifest_.serviceDescription)&&(A=function(){return c.onTimeUpdate_()},c.loadEventManager_.listen(d,"timeupdate",A));if(c.adManager_)c.adManager_.onManifestUpdated(z);
|
|
1075
|
+
c.fullyLoaded_=!0;c.loadEventManager_.listenOnce(d,"loadedmetadata",function(){var D=Date.now()/1E3-b.startTimeOfLoad;c.stats_.setLoadLatency(D)});C.jumpToEnd()}})};
|
|
1056
1076
|
shaka.Player.prototype.onInitializeSrcEqualsDrm_=function(a,b){var c=this,d,e,f,g,h,k,l;return $jscomp.asyncExecutePromiseGeneratorProgram(function(m){return 1==m.nextAddress?(d=shaka.util.ManifestParserUtils.ContentType,goog.asserts.assert(c.networkingEngine_,"|onInitializeSrcEqualsDrm_| should never be called after |destroy|"),goog.asserts.assert(c.config_,"|onInitializeSrcEqualsDrm_| should never be called after |destroy|"),e=Date.now()/1E3,f=!0,c.drmEngine_=c.createDrmEngine({netEngine:c.networkingEngine_,
|
|
1057
1077
|
onError:function(n){c.onError_(n)},onKeyStatus:function(n){c.onKeyStatus_(n)},onExpirationUpdated:function(n,p){c.onExpirationUpdated_(n,p)},onEvent:function(n){c.dispatchEvent(n);n.type==shaka.util.FakeEvent.EventName.DrmSessionUpdate&&f&&(f=!1,n=Date.now()/1E3-e,c.stats_.setDrmTime(n))}}),c.drmEngine_.configure(c.config_.drm),g=b.uri||"",h=shaka.media.ManifestParser.getExtension(g),k=shaka.Player.SRC_EQUAL_EXTENSIONS_TO_MIME_TYPES_[h],"application/x-mpegurl"==k&&shaka.util.Platform.isApple()&&(k=
|
|
1058
|
-
"application/vnd.apple.mpegurl"),k||(k="video/mp4"),l={id:0,language:"und",disabledUntilTime:0,primary:!1,audio:null,video:{id:0,originalId:null,createSegmentIndex:function(){return Promise.resolve()},segmentIndex:null,mimeType:b.mimeType?shaka.util.MimeUtils.getBasicType(b.mimeType):k,codecs:b.mimeType?shaka.util.MimeUtils.getCodecs(b.mimeType):"",encrypted:!0,drmInfos:[],keyIds:new Set,language:"und",originalLanguage:null,label:null,type:d.VIDEO,primary:!1,trickModeVideo:null,emsgSchemeIdUris:null,
|
|
1078
|
+
"application/vnd.apple.mpegurl"),k||(k="video/mp4"),l={id:0,language:"und",disabledUntilTime:0,primary:!1,audio:null,video:{id:0,originalId:null,groupId:null,createSegmentIndex:function(){return Promise.resolve()},segmentIndex:null,mimeType:b.mimeType?shaka.util.MimeUtils.getBasicType(b.mimeType):k,codecs:b.mimeType?shaka.util.MimeUtils.getCodecs(b.mimeType):"",encrypted:!0,drmInfos:[],keyIds:new Set,language:"und",originalLanguage:null,label:null,type:d.VIDEO,primary:!1,trickModeVideo:null,emsgSchemeIdUris:null,
|
|
1059
1079
|
roles:[],forced:!1,channelsCount:null,audioSamplingRate:null,spatialAudio:!1,closedCaptions:null,accessibilityPurpose:null,external:!1},bandwidth:100,allowedByApplication:!0,allowedByKeySystem:!0,decodingInfos:[]},c.drmEngine_.setSrcEquals(!0),m.yield(c.drmEngine_.initForPlayback([l],[]),2)):m.yield(c.drmEngine_.attach(a.mediaElement),0)})};
|
|
1060
1080
|
shaka.Player.prototype.onSrcEquals_=function(a,b){var c=this;goog.asserts.assert(a.mediaElement,"We should have a media element when loading.");goog.asserts.assert(b.uri,"|has| should have a valid uri when loading.");goog.asserts.assert(!isNaN(b.startTimeOfLoad),"|wants| should tell us when the load was originally requested");goog.asserts.assert(this.video_==a.mediaElement,"The video element should match our media element");a.uri=b.uri;a.startTime=b.startTime;this.assetUri_=a.uri;var d=a.mediaElement;
|
|
1061
1081
|
this.playhead_=new shaka.media.SrcEqualsPlayhead(d);var e=!1;this.cleanupOnUnload_.push(function(){e=!0});null!=a.startTime&&this.playhead_.setStartTime(a.startTime);this.playRateController_=new shaka.media.PlayRateController({getRate:function(){return d.playbackRate},getDefaultRate:function(){return d.defaultPlaybackRate},setRate:function(h){d.playbackRate=h},movePlayhead:function(h){d.currentTime+=h}});this.startBufferManagement_(this.config_.streaming.rebufferingGoal);var f=function(){return c.updateStateHistory_()};
|
|
@@ -1064,8 +1084,9 @@ this.loadEventManager_.listen(d,"playing",f);this.loadEventManager_.listen(d,"pa
|
|
|
1064
1084
|
"removetrack",function(){return c.onTracksChanged_()}),this.loadEventManager_.listen(d.textTracks,"change",function(){return c.onTracksChanged_()}));f=shaka.media.ManifestParser.getExtension(a.uri);d.src=this.cmcdManager_.appendSrcData(a.uri,shaka.Player.SRC_EQUAL_EXTENSIONS_TO_MIME_TYPES_[f]);(shaka.util.Platform.isTizen()||shaka.util.Platform.isWebOS())&&d.load();this.loadMode_=shaka.Player.LoadMode.SRC_EQUALS;this.dispatchEvent(this.makeEvent_(shaka.util.FakeEvent.EventName.Streaming));var g=new shaka.util.PublicPromise;
|
|
1065
1085
|
shaka.util.MediaReadyState.waitForReadyState(d,HTMLMediaElement.HAVE_METADATA,this.loadEventManager_,function(){c.playhead_.ready();g.resolve()});shaka.util.MediaReadyState.waitForReadyState(d,HTMLMediaElement.HAVE_CURRENT_DATA,this.loadEventManager_,function(){var h;return $jscomp.asyncExecutePromiseGeneratorProgram(function(k){if(1==k.nextAddress)return c.setupPreferredAudioOnSrc_(),h=c.getFilteredTextTracks_(),h.find(function(l){return"disabled"!=l.mode})?(0<h.length&&(c.isTextVisible_=!0),k.jumpTo(2)):
|
|
1066
1086
|
k.yield(new Promise(function(l){c.loadEventManager_.listenOnce(d.textTracks,"change",l);(new shaka.util.Timer(l)).tickAfter(1)}),2);if(e)return k.return();c.setupPreferredTextOnSrc_();k.jumpToEnd()})});d.error?g.reject(this.videoErrorToShakaError_()):"none"==d.preload&&(shaka.log.alwaysWarn('With <video preload="none">, the browser will not load anything until play() is called. We are unable to measure load latency in a meaningful way, and we cannot provide track info yet. Please do not use preload="none" with Shaka Player.'),
|
|
1067
|
-
g.resolve());this.loadEventManager_.listenOnce(d,"error",function(){g.reject(c.videoErrorToShakaError_())});return(new shaka.util.AbortableOperation(g,function(){var h=new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.PLAYER,shaka.util.Error.Code.OPERATION_ABORTED);g.reject(h);return Promise.resolve()})).chain(function(){c.isLive()&&c.config_.streaming.liveSync&&c.loadEventManager_.listen(d,"timeupdate",function(){return c.onTimeUpdate_()});c.
|
|
1068
|
-
|
|
1087
|
+
g.resolve());this.loadEventManager_.listenOnce(d,"error",function(){g.reject(c.videoErrorToShakaError_())});return(new shaka.util.AbortableOperation(g,function(){var h=new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.PLAYER,shaka.util.Error.Code.OPERATION_ABORTED);g.reject(h);return Promise.resolve()})).chain(function(){c.isLive()&&c.config_.streaming.liveSync&&c.loadEventManager_.listen(d,"timeupdate",function(){return c.onTimeUpdate_()});if(c.adManager_){var h=c.isLive();
|
|
1088
|
+
c.adManager_.onManifestUpdated(h);if(h){var k=c.seekRange().end;c.loadEventManager_.listen(d,"progress",function(){var l=c.seekRange().end;k!=l&&(c.adManager_.onManifestUpdated(c.isLive()),k=l)})}}c.fullyLoaded_=!0})};shaka.Player.prototype.setupPreferredAudioOnSrc_=function(){var a=this.config_.preferredAudioLanguage;""!=a&&this.selectAudioLanguage(a,this.config_.preferredVariantRole)};
|
|
1089
|
+
shaka.Player.prototype.setupPreferredTextOnSrc_=function(){var a=this.config_.preferredTextLanguage;""!=a&&this.selectTextLanguage(a,this.config_.preferredTextRole,this.config_.preferForcedSubs)};
|
|
1069
1090
|
shaka.Player.prototype.processTimedMetadataSrcEqls_=function(a){var b=this;if("metadata"==a.kind){a.mode="hidden";this.loadEventManager_.listen(a,"cuechange",function(){if(a.activeCues)for(var d=$jscomp.makeIterator(a.activeCues),e=d.next();!e.done;e=d.next())if(e=e.value,b.dispatchMetadataEvent_(e.startTime,e.endTime,e.type,e.value),b.adManager_)b.adManager_.onCueMetadataChange(e.value)});var c=(new shaka.util.Timer(function(){var d=b.getMetadataTracks_();d=$jscomp.makeIterator(d);for(var e=d.next();!e.done;e=
|
|
1070
1091
|
d.next())e.value.mode="hidden"})).tickNow().tickAfter(.5);this.cleanupOnUnload_.push(function(){c.stop()})}};shaka.Player.prototype.processTimedMetadataMediaSrc_=function(a,b,c){a=$jscomp.makeIterator(a);for(var d=a.next();!d.done;d=a.next())if(d=d.value,d.data&&d.cueTime&&d.frames){var e=d.cueTime+b,f=c;f&&e>f&&(f=e);for(var g=$jscomp.makeIterator(d.frames),h=g.next();!h.done;h=g.next())this.dispatchMetadataEvent_(e,f,"org.id3",h.value);if(this.adManager_)this.adManager_.onHlsTimedMetadata(d,e)}};
|
|
1071
1092
|
shaka.Player.prototype.dispatchMetadataEvent_=function(a,b,c,d){goog.asserts.assert(!b||a<=b,"Metadata start time should be less or equal to the end time!");var e=shaka.util.FakeEvent.EventName.Metadata;a=(new Map).set("startTime",a).set("endTime",b).set("metadataType",c).set("payload",d);this.dispatchEvent(this.makeEvent_(e,a))};
|
|
@@ -1105,20 +1126,20 @@ shaka.Player.prototype.getVariantTracks=function(){if(this.manifest_){for(var a=
|
|
|
1105
1126
|
return b}return this.video_&&this.video_.audioTracks?Array.from(this.video_.audioTracks).map(function(g){return shaka.util.StreamUtils.html5AudioTrackToTrack(g)}):[]};
|
|
1106
1127
|
shaka.Player.prototype.getTextTracks=function(){if(this.manifest_){for(var a=this.streamingEngine_?this.streamingEngine_.getCurrentTextStream():null,b=[],c=$jscomp.makeIterator(this.manifest_.textStreams),d=c.next();!d.done;d=c.next()){d=d.value;var e=shaka.util.StreamUtils.textStreamToTrack(d);e.active=d==a;b.push(e)}return b}if(this.video_&&this.video_.src&&this.video_.textTracks){a=this.getFilteredTextTracks_();var f=shaka.util.StreamUtils;return a.map(function(g){return f.html5TextTrackToTrack(g)})}return[]};
|
|
1107
1128
|
shaka.Player.prototype.getImageTracks=function(){if(this.manifest_){var a=shaka.util.StreamUtils;return this.manifest_.imageStreams.map(function(b){return a.imageStreamToTrack(b)})}return[]};
|
|
1108
|
-
shaka.Player.prototype.getThumbnails=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,t,
|
|
1109
|
-
if(!h)return shaka.log.warning("Tiles layout does not contain a valid format (columns x rows)"),
|
|
1110
|
-
positionY:x,startTime:u,duration:
|
|
1129
|
+
shaka.Player.prototype.getThumbnails=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,t,v,u,w,x,y,z,A;return $jscomp.asyncExecutePromiseGeneratorProgram(function(C){if(1==C.nextAddress)return c.manifest_?(d=c.manifest_.imageStreams.find(function(D){return D.id==a}))?d.segmentIndex?C.jumpTo(3):C.yield(d.createSegmentIndex(),3):C.return(null):C.jumpTo(2);if(2!=C.nextAddress){e=d.segmentIndex.find(b);if(null==e)return C.return(null);f=d.segmentIndex.get(e);g=f.getTilesLayout()||d.tilesLayout;h=/(\d+)x(\d+)/.exec(g);
|
|
1130
|
+
if(!h)return shaka.log.warning("Tiles layout does not contain a valid format (columns x rows)"),C.return(null);k=d.width||0;l=d.height||0;m=parseInt(h[1],10);n=parseInt(h[2],10);p=k/m;q=l/n;r=m*n;t=f.trueEndTime-f.startTime;v=f.getTileDuration()||t/r;u=f.startTime;x=w=0;1<r&&(y=Math.floor((b-f.startTime)/v),u=f.startTime+y*v,w=y%m*p,x=Math.floor(y/m)*q);z=!1;if(A=f.getThumbnailSprite())z=!0,q=A.height,w=A.positionX,x=A.positionY,p=A.width;return C.return({imageHeight:l,imageWidth:k,height:q,positionX:w,
|
|
1131
|
+
positionY:x,startTime:u,duration:v,uris:f.getUris(),width:p,sprite:z})}return C.return(null)})};
|
|
1111
1132
|
shaka.Player.prototype.selectTextTrack=function(a){if(this.manifest_&&this.streamingEngine_){var b=this.manifest_.textStreams.find(function(d){return d.id==a.id});b?b==this.streamingEngine_.getCurrentTextStream()?shaka.log.debug("Text track already selected."):(this.addTextStreamToSwitchHistory_(b,!1),this.streamingEngine_.switchTextStream(b),this.onTextChanged_(),this.currentTextLanguage_=b.language):shaka.log.error("No stream with id",a.id)}else if(this.video_&&this.video_.src&&this.video_.textTracks){b=
|
|
1112
1133
|
this.getFilteredTextTracks_();b=$jscomp.makeIterator(b);for(var c=b.next();!c.done;c=b.next())c=c.value,shaka.util.StreamUtils.html5TrackId(c)==a.id?c.mode=this.isTextVisible_?"showing":"hidden":c.mode="disabled";this.onTextChanged_()}};
|
|
1113
1134
|
shaka.Player.prototype.selectVariantTrack=function(a,b,c){b=void 0===b?!1:b;c=void 0===c?0:c;if(this.manifest_&&this.streamingEngine_){this.config_.abr.enabled&&shaka.log.alwaysWarn("Changing tracks while abr manager is enabled will likely result in the selected track being overriden. Consider disabling abr before calling selectVariantTrack().");var d=this.manifest_.variants.find(function(e){return e.id==a.id});d?shaka.util.StreamUtils.isPlayable(d)?(this.switchVariant_(d,!1,b,c),this.currentAdaptationSetCriteria_=
|
|
1114
1135
|
new shaka.media.ExampleBasedCriteria(d),this.updateAbrManagerVariants_()):shaka.log.error("Unable to switch to restricted track",a.id):shaka.log.error("No variant with id",a.id)}else if(this.video_&&this.video_.audioTracks)for(b=Array.from(this.video_.audioTracks),b=$jscomp.makeIterator(b),c=b.next();!c.done;c=b.next())if(c=c.value,shaka.util.StreamUtils.html5TrackId(c)==a.id){this.switchHtml5Track_(c);break}};shaka.Player.prototype.getAudioLanguagesAndRoles=function(){return shaka.Player.getLanguageAndRolesFrom_(this.getVariantTracks())};
|
|
1115
1136
|
shaka.Player.prototype.getTextLanguagesAndRoles=function(){return shaka.Player.getLanguageAndRolesFrom_(this.getTextTracks())};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()))};
|
|
1116
|
-
shaka.Player.prototype.selectAudioLanguage=function(a,b,c,d){c=void 0===c?0:c;d=void 0===d?0:d;if(this.manifest_&&this.playhead_){this.currentAdaptationSetCriteria_=new shaka.media.PreferenceBasedCriteria(a,b||"",c,"","");a=function(g,h){return g.video||h.video?g.video&&h.video?Math.abs((g.video.height||0)-(h.video.height||0))+Math.abs((g.video.width||0)-(h.video.width||0)):Infinity:0};b=this.streamingEngine_.getCurrentVariant();var e=this.currentAdaptationSetCriteria_.create(this.manifest_.variants);
|
|
1137
|
+
shaka.Player.prototype.selectAudioLanguage=function(a,b,c,d){c=void 0===c?0:c;d=void 0===d?0:d;if(this.manifest_&&this.playhead_){this.currentAdaptationSetCriteria_=new shaka.media.PreferenceBasedCriteria(a,b||"",c,"","",this.config_.mediaSource.codecSwitchingStrategy);a=function(g,h){return g.video||h.video?g.video&&h.video?Math.abs((g.video.height||0)-(h.video.height||0))+Math.abs((g.video.width||0)-(h.video.width||0)):Infinity:0};b=this.streamingEngine_.getCurrentVariant();var e=this.currentAdaptationSetCriteria_.create(this.manifest_.variants);
|
|
1117
1138
|
c=null;e=$jscomp.makeIterator(e.values());for(var f=e.next();!f.done;f=e.next())if(f=f.value,!c||a(c,b)>a(f,b))c=f;c?(a=shaka.util.StreamUtils.variantToTrack(c),this.selectVariantTrack(a,!0,d)):this.chooseVariantAndSwitch_()}else this.video_&&this.video_.audioTracks&&(d=shaka.util.StreamUtils.filterStreamsByLanguageAndRole(this.getVariantTracks(),a,b||"",!1)[0])&&this.selectVariantTrack(d)};
|
|
1118
1139
|
shaka.Player.prototype.selectTextLanguage=function(a,b,c){c=void 0===c?!1:c;if(this.manifest_&&this.playhead_){if(this.currentTextLanguage_=a,this.currentTextRole_=b||"",this.currentTextForced_=c,a=this.chooseTextStream_())a==this.streamingEngine_.getCurrentTextStream()?shaka.log.debug("Text track already selected."):(this.addTextStreamToSwitchHistory_(a,!1),this.shouldStreamText_()&&(this.streamingEngine_.switchTextStream(a),this.onTextChanged_()))}else(a=shaka.util.StreamUtils.filterStreamsByLanguageAndRole(this.getTextTracks(),
|
|
1119
1140
|
a,b||"",c)[0])&&this.selectTextTrack(a)};
|
|
1120
|
-
shaka.Player.prototype.selectVariantsByLabel=function(a,b,c){b=void 0===b?!0:b;c=void 0===c?0:c;if(this.manifest_&&this.playhead_){for(var d=null,e=$jscomp.makeIterator(this.manifest_.variants),f=e.next();!f.done;f=e.next())if(f=f.value,f.audio.label==a){d=f;break}null==d?shaka.log.warning("No variants were found with label: "+a+". Ignoring the request to switch."):(this.currentAdaptationSetCriteria_=new shaka.media.PreferenceBasedCriteria(d.language,"",0,"",a
|
|
1121
|
-
this.video_.audioTracks){c=Array.from(this.video_.audioTracks);b=null;c=$jscomp.makeIterator(c);for(d=c.next();!d.done;d=c.next())d=d.value,d.label==a&&(b=d);b&&this.switchHtml5Track_(b)}};
|
|
1141
|
+
shaka.Player.prototype.selectVariantsByLabel=function(a,b,c){b=void 0===b?!0:b;c=void 0===c?0:c;if(this.manifest_&&this.playhead_){for(var d=null,e=$jscomp.makeIterator(this.manifest_.variants),f=e.next();!f.done;f=e.next())if(f=f.value,f.audio.label==a){d=f;break}null==d?shaka.log.warning("No variants were found with label: "+a+". Ignoring the request to switch."):(this.currentAdaptationSetCriteria_=new shaka.media.PreferenceBasedCriteria(d.language,"",0,"",a,this.config_.mediaSource.codecSwitchingStrategy),
|
|
1142
|
+
this.chooseVariantAndSwitch_(b,c))}else if(this.video_&&this.video_.audioTracks){c=Array.from(this.video_.audioTracks);b=null;c=$jscomp.makeIterator(c);for(d=c.next();!d.done;d=c.next())d=d.value,d.label==a&&(b=d);b&&this.switchHtml5Track_(b)}};
|
|
1122
1143
|
shaka.Player.prototype.isTextTrackVisible=function(){var a=this.isTextVisible_;if(this.mediaSourceEngine_){var b=this.mediaSourceEngine_.getTextDisplayer().isTextVisible();goog.asserts.assert(b==a,"text visibility has fallen out of sync");return b}return this.video_&&this.video_.src&&this.video_.textTracks?this.getFilteredTextTracks_().some(function(c){return"showing"==c.mode}):a};
|
|
1123
1144
|
shaka.Player.prototype.getChaptersTracks=function(){if(this.video_&&this.video_.src&&this.video_.textTracks){var a=this.getChaptersTracks_(),b=shaka.util.StreamUtils;return a.map(function(c){return b.html5TextTrackToTrack(c)})}return[]};
|
|
1124
1145
|
shaka.Player.prototype.getChapters=function(a){var b=shaka.util.LanguageUtils,c=b.normalize(a),d=this.getChaptersTracks_().filter(function(k){return b.normalize(k.language)==c});if(!d||!d.length)return[];a=[];var e=new Set;d=$jscomp.makeIterator(d);for(var f=d.next();!f.done;f=d.next())if((f=f.value)&&f.cues){f=$jscomp.makeIterator(f.cues);for(var g=f.next();!g.done;g=f.next()){var h=g.value;(g=h.id)&&""!=g||(g=h.startTime+"-"+h.endTime+"-"+h.text);h={id:g,title:h.text,startTime:h.startTime,endTime:h.endTime};
|
|
@@ -1134,20 +1155,20 @@ shaka.Player.prototype.getStats=function(){if(this.loadMode_!=shaka.Player.LoadM
|
|
|
1134
1155
|
a.getVideoPlaybackQuality&&(b=a.getVideoPlaybackQuality(),this.stats_.setDroppedFrames(Number(b.droppedVideoFrames),Number(b.totalVideoFrames)),this.stats_.setCorruptedFrames(Number(b.corruptedVideoFrames)));b=this.drmEngine_?this.drmEngine_.getLicenseTime():NaN;this.stats_.setLicenseTime(b);if(this.loadMode_==shaka.Player.LoadMode.MEDIA_SOURCE){if(b=this.streamingEngine_.getCurrentVariant()){var c=(this.playRateController_?this.playRateController_.getRealRate():1)*b.bandwidth;this.stats_.setCurrentStreamBandwidth(c)}b&&
|
|
1135
1156
|
b.video&&this.stats_.setResolution(b.video.width||NaN,b.video.height||NaN);this.isLive()&&(b=this.getPresentationStartTimeAsDate().valueOf()+1E3*this.seekRange().end,b=(Date.now()-b)/1E3,this.stats_.setLiveLatency(b));this.manifest_&&this.manifest_.presentationTimeline&&(b=this.manifest_.presentationTimeline.getMaxSegmentDuration(),this.stats_.setMaxSegmentDuration(b));b=this.abrManager_.getBandwidthEstimate();this.stats_.setBandwidthEstimate(b)}this.loadMode_==shaka.Player.LoadMode.SRC_EQUALS&&this.stats_.setResolution(a.videoWidth||
|
|
1136
1157
|
NaN,a.videoHeight||NaN);return this.stats_.getBlob()};
|
|
1137
|
-
shaka.Player.prototype.addTextTrackAsync=function(a,b,c,d,e,f,g){g=void 0===g?!1:g;var h=this,k,l,m,n,p,q,r,t,
|
|
1138
|
-
if(d){x.jumpTo(2);break}return x.yield(h.getTextMimetype_(a),3);case 3:d=x.yieldResult;case 2:k=[];
|
|
1139
|
-
|
|
1140
|
-
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
shaka.Player.prototype.addThumbnailsTrack=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,t,
|
|
1158
|
+
shaka.Player.prototype.addTextTrackAsync=function(a,b,c,d,e,f,g){g=void 0===g?!1:g;var h=this,k,l,m,n,p,q,r,t,v,u,w;return $jscomp.asyncExecutePromiseGeneratorProgram(function(x){switch(x.nextAddress){case 1:if(h.loadMode_!=shaka.Player.LoadMode.MEDIA_SOURCE&&h.loadMode_!=shaka.Player.LoadMode.SRC_EQUALS)throw shaka.log.error("Must call load() and wait for it to resolve before adding text tracks."),new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.PLAYER,shaka.util.Error.Code.CONTENT_NOT_LOADED);
|
|
1159
|
+
if(d){x.jumpTo(2);break}return x.yield(h.getTextMimetype_(a),3);case 3:d=x.yieldResult;case 2:k=[];h.adManager_&&(k=h.adManager_.getCuePoints());if(h.loadMode_!=shaka.Player.LoadMode.SRC_EQUALS){x.jumpTo(4);break}g&&(c="forced");return x.yield(h.addSrcTrackElement_(a,b,c,d,f||"",k),5);case 5:l=h.getTextTracks();if(m=l.find(function(y){return y.language==b&&y.label==(f||"")&&y.kind==c}))return h.onTracksChanged_(),x.return(m);shaka.log.error("Cannot add this text when loaded with src=");throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,
|
|
1160
|
+
shaka.util.Error.Category.TEXT,shaka.util.Error.Code.CANNOT_ADD_EXTERNAL_TEXT_TO_SRC_EQUALS);case 4:n=shaka.util.ManifestParserUtils.ContentType;p=h.manifest_.presentationTimeline.getDuration();if(Infinity==p)throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.CANNOT_ADD_EXTERNAL_TEXT_TO_LIVE_STREAM);if(!k.length){x.jumpTo(6);break}goog.asserts.assert(h.networkingEngine_,"Need networking engine.");return x.yield(h.getTextData_(a,
|
|
1161
|
+
h.networkingEngine_,h.config_.streaming.retryParameters),7);case 7:q=x.yieldResult,r=h.convertToWebVTT_(q,d,k),t=new Blob([r],{type:"text/vtt"}),a=shaka.media.MediaSourceEngine.createObjectURL(t),d="text/vtt";case 6:v={id:h.nextExternalStreamId_++,originalId:null,groupId:null,createSegmentIndex:function(){return Promise.resolve()},segmentIndex:shaka.media.SegmentIndex.forSingleSegment(0,p,[a]),mimeType:d||"",codecs:e||"",kind:c,encrypted:!1,drmInfos:[],keyIds:new Set,language:b,originalLanguage:b,
|
|
1162
|
+
label:f||null,type:n.TEXT,primary:!1,trickModeVideo:null,emsgSchemeIdUris:null,roles:[],forced:!!g,channelsCount:null,audioSamplingRate:null,spatialAudio:!1,closedCaptions:null,accessibilityPurpose:null,external:!0};u=shaka.util.MimeUtils.getFullType(v.mimeType,v.codecs);w=shaka.text.TextEngine.isTypeSupported(u);if(!w)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.TEXT,shaka.util.Error.Code.MISSING_TEXT_PLUGIN,d);h.manifest_.textStreams.push(v);h.onTracksChanged_();
|
|
1163
|
+
return x.return(shaka.util.StreamUtils.textStreamToTrack(v))}})};
|
|
1164
|
+
shaka.Player.prototype.addThumbnailsTrack=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,t,v,u,w;return $jscomp.asyncExecutePromiseGeneratorProgram(function(x){switch(x.nextAddress){case 1:if(c.loadMode_!=shaka.Player.LoadMode.MEDIA_SOURCE&&c.loadMode_!=shaka.Player.LoadMode.SRC_EQUALS)throw shaka.log.error("Must call load() and wait for it to resolve before adding image tracks."),new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.PLAYER,shaka.util.Error.Code.CONTENT_NOT_LOADED);
|
|
1144
1165
|
if(c.loadMode_==shaka.Player.LoadMode.SRC_EQUALS)throw shaka.log.error("Cannot add this thumbnail track when loaded with src="),new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.TEXT,shaka.util.Error.Code.CANNOT_ADD_EXTERNAL_THUMBNAILS_TO_SRC_EQUALS);if(b){x.jumpTo(2);break}return x.yield(c.getTextMimetype_(a),3);case 3:b=x.yieldResult;case 2:if("text/vtt"!=b)throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.TEXT,shaka.util.Error.Code.UNSUPPORTED_EXTERNAL_THUMBNAILS_URI,
|
|
1145
1166
|
a);d=shaka.util.ManifestParserUtils.ContentType;e=c.manifest_.presentationTimeline.getDuration();if(Infinity==e)throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.CANNOT_ADD_EXTERNAL_THUMBNAILS_TO_LIVE_STREAM);goog.asserts.assert(c.networkingEngine_,"Need networking engine.");return x.yield(c.getTextData_(a,c.networkingEngine_,c.config_.streaming.retryParameters),4);case 4:f=x.yieldResult;g=shaka.text.TextEngine.findParser(b);
|
|
1146
|
-
if(!g)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.TEXT,shaka.util.Error.Code.MISSING_TEXT_PLUGIN,b);h=g();k={periodStart:0,segmentStart:0,segmentEnd:e,vttOffset:0};l=shaka.util.BufferUtils.toUint8(f);m=h.parseMedia(l,k);n=[];p={};q=$jscomp.makeIterator(m);for(r=q.next();!r.done;p={$jscomp$loop$prop$imageUri$
|
|
1147
|
-
|
|
1148
|
-
segmentIndex:new shaka.media.SegmentIndex(n),mimeType:b||"",codecs:"",kind:"",encrypted:!1,drmInfos:[],keyIds:new Set,language:"und",originalLanguage:null,label:null,type:d.IMAGE,primary:!1,trickModeVideo:null,emsgSchemeIdUris:null,roles:[],forced:!1,channelsCount:null,audioSamplingRate:null,spatialAudio:!1,closedCaptions:null,tilesLayout:"1x1",accessibilityPurpose:null,external:!0};c.manifest_.imageStreams.push(
|
|
1167
|
+
if(!g)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.TEXT,shaka.util.Error.Code.MISSING_TEXT_PLUGIN,b);h=g();k={periodStart:0,segmentStart:0,segmentEnd:e,vttOffset:0};l=shaka.util.BufferUtils.toUint8(f);m=h.parseMedia(l,k);n=[];p={};q=$jscomp.makeIterator(m);for(r=q.next();!r.done;p={$jscomp$loop$prop$imageUri$769:p.$jscomp$loop$prop$imageUri$769},r=q.next())t=r.value,p.$jscomp$loop$prop$imageUri$769=shaka.util.ManifestParserUtils.resolveUris([a],[t.payload])[0],
|
|
1168
|
+
v=new shaka.media.SegmentReference(t.startTime,t.endTime,function(y){return function(){return[y.$jscomp$loop$prop$imageUri$769]}}(p),0,null,null,0,0,Infinity),p.$jscomp$loop$prop$imageUri$769.includes("#xywh")&&(u=p.$jscomp$loop$prop$imageUri$769.split("#xywh=")[1].split(","),4===u.length&&v.setThumbnailSprite({height:parseInt(u[3],10),positionX:parseInt(u[0],10),positionY:parseInt(u[1],10),width:parseInt(u[2],10)})),n.push(v);w={id:c.nextExternalStreamId_++,originalId:null,groupId:null,createSegmentIndex:function(){return Promise.resolve()},
|
|
1169
|
+
segmentIndex:new shaka.media.SegmentIndex(n),mimeType:b||"",codecs:"",kind:"",encrypted:!1,drmInfos:[],keyIds:new Set,language:"und",originalLanguage:null,label:null,type:d.IMAGE,primary:!1,trickModeVideo:null,emsgSchemeIdUris:null,roles:[],forced:!1,channelsCount:null,audioSamplingRate:null,spatialAudio:!1,closedCaptions:null,tilesLayout:"1x1",accessibilityPurpose:null,external:!0};c.manifest_.imageStreams.push(w);c.onTracksChanged_();return x.return(shaka.util.StreamUtils.imageStreamToTrack(w))}})};
|
|
1149
1170
|
shaka.Player.prototype.addChaptersTrack=function(a,b,c){var d=this,e,f,g,h;return $jscomp.asyncExecutePromiseGeneratorProgram(function(k){switch(k.nextAddress){case 1:if(d.loadMode_!=shaka.Player.LoadMode.MEDIA_SOURCE&&d.loadMode_!=shaka.Player.LoadMode.SRC_EQUALS)throw shaka.log.error("Must call load() and wait for it to resolve before adding chapters tracks."),new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.PLAYER,shaka.util.Error.Code.CONTENT_NOT_LOADED);if(c){k.jumpTo(2);
|
|
1150
|
-
break}return k.yield(d.getTextMimetype_(a),3);case 3:c=k.yieldResult;case 2:e=[]
|
|
1171
|
+
break}return k.yield(d.getTextMimetype_(a),3);case 3:c=k.yieldResult;case 2:return e=[],d.adManager_&&(e=d.adManager_.getCuePoints()),k.yield(d.addSrcTrackElement_(a,b,"chapters",c,"",e),4);case 4:f=k.yieldResult;g=d.getChaptersTracks();h=g.find(function(l){return l.language==b});if(!h){k.jumpTo(5);break}return k.yield(new Promise(function(l,m){d.loadEventManager_.listenOnce(f,"load",l);d.loadEventManager_.listenOnce(f,"error",function(n){m(new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,
|
|
1151
1172
|
shaka.util.Error.Category.TEXT,shaka.util.Error.Code.CHAPTERS_TRACK_FAILED))})}),6);case 6:return k.return(h);case 5:throw shaka.log.error("Cannot add this text when loaded with src="),new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.TEXT,shaka.util.Error.Code.CANNOT_ADD_EXTERNAL_TEXT_TO_SRC_EQUALS);}})};
|
|
1152
1173
|
shaka.Player.prototype.getTextMimetype_=function(a){var b=this,c,d;return $jscomp.asyncExecutePromiseGeneratorProgram(function(e){switch(e.nextAddress){case 1:c=shaka.media.ManifestParser.getExtension(a);if(d=shaka.Player.TEXT_EXTENSIONS_TO_MIME_TYPES_[c])return e.return(d);e.setCatchFinallyBlocks(2);goog.asserts.assert(b.networkingEngine_,"Need networking engine.");return e.yield(shaka.media.ManifestParser.getMimeType(a,b.networkingEngine_,b.config_.streaming.retryParameters),4);case 4:d=e.yieldResult;
|
|
1153
1174
|
e.leaveTryBlock(3);break;case 2:e.enterCatchBlock();case 3:if(d)return e.return(d);shaka.log.error("The mimeType has not been provided and it could not be deduced from its extension.");throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.TEXT,shaka.util.Error.Code.TEXT_COULD_NOT_GUESS_MIME_TYPE,c);}})};
|
|
@@ -1161,17 +1182,16 @@ shaka.Player.prototype.addVariantToSwitchHistory_=function(a,b){this.stats_.getS
|
|
|
1161
1182
|
shaka.Player.prototype.defaultConfig_=function(){var a=this,b=shaka.util.PlayerConfiguration.createDefault();b.streaming.failureCallback=function(c){a.defaultStreamingFailureCallback_(c)};b.textDisplayFactory=function(){return a.videoContainer_?new shaka.text.UITextDisplayer(a.video_,a.videoContainer_):new shaka.text.SimpleTextDisplayer(a.video_)};return b};shaka.Player.prototype.setVideoContainer=function(a){this.videoContainer_=a};
|
|
1162
1183
|
shaka.Player.prototype.defaultStreamingFailureCallback_=function(a){if(this.isLive()){var b=null;a.code==shaka.util.Error.Code.BAD_HTTP_STATUS||a.code==shaka.util.Error.Code.HTTP_ERROR?b=1:a.code==shaka.util.Error.Code.TIMEOUT&&(b=.1);null!=b&&(a.severity=shaka.util.Error.Severity.RECOVERABLE,shaka.log.warning("Live streaming error. Retrying automatically..."),this.retryStreaming(b))}};
|
|
1163
1184
|
shaka.Player.prototype.makeTextStreamsForClosedCaptions_=function(a){for(var b=shaka.util.ManifestParserUtils.ContentType,c=shaka.util.ManifestParserUtils.TextStreamKind,d=shaka.util.MimeUtils.CEA608_CLOSED_CAPTION_MIMETYPE,e=shaka.util.MimeUtils.CEA708_CLOSED_CAPTION_MIMETYPE,f=new Set,g=$jscomp.makeIterator(a.textStreams),h=g.next();!h.done;h=g.next())h=h.value,h.mimeType!=d&&h.mimeType!=e||f.add(h.originalId);g=$jscomp.makeIterator(a.variants);for(h=g.next();!h.done;h=g.next())if((h=h.value.video)&&
|
|
1164
|
-
h.closedCaptions)for(var k=$jscomp.makeIterator(h.closedCaptions.keys()),l=k.next();!l.done;l=k.next())if(l=l.value,!f.has(l)){var m=l.startsWith("CC")?d:e,n=new shaka.media.MetaSegmentIndex,p=h.closedCaptions.get(l);m={id:this.nextExternalStreamId_++,originalId:l,createSegmentIndex:function(){return Promise.resolve()},segmentIndex:n,mimeType:m,codecs:"",kind:c.CLOSED_CAPTION,encrypted:!1,drmInfos:[],keyIds:new Set,language:p,originalLanguage:p,label:null,type:b.TEXT,primary:!1,trickModeVideo:null,
|
|
1185
|
+
h.closedCaptions)for(var k=$jscomp.makeIterator(h.closedCaptions.keys()),l=k.next();!l.done;l=k.next())if(l=l.value,!f.has(l)){var m=l.startsWith("CC")?d:e,n=new shaka.media.MetaSegmentIndex,p=h.closedCaptions.get(l);m={id:this.nextExternalStreamId_++,originalId:l,groupId:null,createSegmentIndex:function(){return Promise.resolve()},segmentIndex:n,mimeType:m,codecs:"",kind:c.CLOSED_CAPTION,encrypted:!1,drmInfos:[],keyIds:new Set,language:p,originalLanguage:p,label:null,type:b.TEXT,primary:!1,trickModeVideo:null,
|
|
1165
1186
|
emsgSchemeIdUris:null,roles:h.roles,forced:!1,channelsCount:null,audioSamplingRate:null,spatialAudio:!1,closedCaptions:null,accessibilityPurpose:null,external:!1};a.textStreams.push(m);f.add(l)}};shaka.Player.prototype.filterManifest_=function(a){var b=this;return $jscomp.asyncExecutePromiseGeneratorProgram(function(c){if(1==c.nextAddress)return c.yield(b.filterManifestWithStreamUtils_(a),2);b.filterManifestWithRestrictions_(a);c.jumpToEnd()})};
|
|
1166
|
-
shaka.Player.prototype.filterManifestWithStreamUtils_=function(a){var b=this,c;return $jscomp.asyncExecutePromiseGeneratorProgram(function(d){if(1==d.nextAddress)return goog.asserts.assert(a,"Manifest should exist!"),goog.asserts.assert(b.video_,"Must not be destroyed"),c=b.streamingEngine_?b.streamingEngine_.getCurrentVariant():null,d.yield(shaka.util.StreamUtils.filterManifest(b.drmEngine_,c,a),2);b.checkPlayableVariants_(a);d.jumpToEnd()})};
|
|
1187
|
+
shaka.Player.prototype.filterManifestWithStreamUtils_=function(a){var b=this,c;return $jscomp.asyncExecutePromiseGeneratorProgram(function(d){if(1==d.nextAddress)return goog.asserts.assert(a,"Manifest should exist!"),goog.asserts.assert(b.video_,"Must not be destroyed"),c=b.streamingEngine_?b.streamingEngine_.getCurrentVariant():null,d.yield(shaka.util.StreamUtils.filterManifest(b.drmEngine_,c,a,b.config_.mediaSource.codecSwitchingStrategy),2);b.checkPlayableVariants_(a);d.jumpToEnd()})};
|
|
1167
1188
|
shaka.Player.prototype.filterManifestWithRestrictions_=function(a){if(this.loadMode_!=shaka.Player.LoadMode.DESTROYED){if(shaka.util.StreamUtils.applyRestrictions(a.variants,this.config_.restrictions,this.maxHwRes_)&&this.streamingEngine_)this.onTracksChanged_();var b=this.drmEngine_?this.drmEngine_.getDrmInfo():null;if(b&&this.drmEngine_.getMediaKeys())for(var c=$jscomp.makeIterator(a.variants),d=c.next();!d.done;d=c.next())d=d.value,this.processDrmInfos_(b.keySystem,d.video),this.processDrmInfos_(b.keySystem,
|
|
1168
1189
|
d.audio);this.checkRestrictedVariants_(a)}};shaka.Player.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)}}};
|
|
1169
|
-
shaka.Player.prototype.filterManifestByCurrentVariant_=function(){goog.asserts.assert(this.manifest_,"Manifest should be valid");goog.asserts.assert(this.streamingEngine_,"StreamingEngine should be valid");var a=this.streamingEngine_?this.streamingEngine_.getCurrentVariant():null;shaka.util.StreamUtils.filterManifestByCurrentVariant(a,this.manifest_);this.checkPlayableVariants_(this.manifest_)};
|
|
1170
1190
|
shaka.Player.prototype.adjustStartTime_=function(a,b){var c,d,e,f,g;return $jscomp.asyncExecutePromiseGeneratorProgram(function(h){if(1==h.nextAddress)return c=a.audio,d=a.video,e=function(k,l){var m,n,p;return $jscomp.asyncExecutePromiseGeneratorProgram(function(q){if(1==q.nextAddress)return k?q.yield(k.createSegmentIndex(),2):q.return(null);n=(m=k.segmentIndex.getIteratorForTime(l))?m.next().value:null;if(!n)return q.return(null);p=n.startTime;goog.asserts.assert(p<=l,"Segment should start before target time!");
|
|
1171
1191
|
return q.return(p)})},h.yield(e(c,b),2);if(3!=h.nextAddress)return f=h.yieldResult,h.yield(e(d,b),3);g=h.yieldResult;return null!=g&&null!=f?h.return(Math.max(g,f)):null!=g?h.return(g):null!=f?h.return(f):h.return(b)})};
|
|
1172
1192
|
shaka.Player.prototype.updateBufferState_=function(){var a=this.isBuffering();shaka.log.v2("Player changing buffering state to",a);this.stats_&&this.bufferObserver_&&this.playhead_&&(this.playRateController_.setBuffering(a),this.cmcdManager_&&this.cmcdManager_.setBuffering(a),this.updateStateHistory_());var b=shaka.util.FakeEvent.EventName.Buffering;a=(new Map).set("buffering",a);this.dispatchEvent(this.makeEvent_(b,a))};
|
|
1173
1193
|
shaka.Player.prototype.onRateChange_=function(){var a=this.video_.playbackRate;0!=a&&(this.playRateController_&&this.playRateController_.set(a),a=this.makeEvent_(shaka.util.FakeEvent.EventName.RateChange),this.dispatchEvent(a))};
|
|
1174
|
-
shaka.Player.prototype.updateStateHistory_=function(){if(this.stats_&&this.bufferObserver_){var a=shaka.media.BufferingObserver.State,b=this.stats_.getStateHistory();this.bufferObserver_.getState()==a.STARVING?
|
|
1194
|
+
shaka.Player.prototype.updateStateHistory_=function(){if(this.stats_&&this.bufferObserver_){var a=shaka.media.BufferingObserver.State,b=this.stats_.getStateHistory(),c="playing";this.bufferObserver_.getState()==a.STARVING?c="buffering":this.video_.paused?c="paused":this.video_.ended&&(c="ended");b.update(c)&&(a=shaka.util.FakeEvent.EventName.StateChanged,c=(new Map).set("newstate",c),this.dispatchEvent(this.makeEvent_(a,c)))}};
|
|
1175
1195
|
shaka.Player.prototype.onTimeUpdate_=function(){if(this.isLive()){var a=this.seekRange();if(Number.isFinite(a.end)&&!(this.video_.currentTime<a.start)){if(this.config_.streaming.liveSync){var b=this.config_.streaming.liveSyncMaxLatency;var c=this.config_.streaming.liveSyncPlaybackRate}else this.manifest_&&this.manifest_.serviceDescription&&(b=this.manifest_.serviceDescription.maxLatency||this.config_.streaming.liveSyncMaxLatency,c=this.manifest_.serviceDescription.maxPlaybackRate||this.config_.streaming.liveSyncPlaybackRate);
|
|
1176
1196
|
var d=this.video_.playbackRate,e=a.end-this.video_.currentTime,f=0;if(this.loadMode_==shaka.Player.LoadMode.SRC_EQUALS){var g=this.video_.buffered;0<g.length&&(f=g.end(g.length-1),f=Math.max(c,f-a.end))}b&&c&&e-f>b?d!=c&&(shaka.log.debug("Latency ("+e+"s) is greater than liveSyncMaxLatency ("+b+"s). Updating playbackRate to "+c),this.trickPlay(c)):1!==d&&0!==d&&this.cancelTrickPlay()}}};
|
|
1177
1197
|
shaka.Player.prototype.onSeek_=function(){this.playheadObservers_&&this.playheadObservers_.notifyOfSeek();this.streamingEngine_&&this.streamingEngine_.seeked();this.bufferObserver_&&this.pollBufferState_()};
|
|
@@ -1186,8 +1206,8 @@ shaka.Player.prototype.setInitialTextState_=function(a,b){b?(a.audio&&this.shoul
|
|
|
1186
1206
|
shaka.Player.prototype.shouldInitiallyShowText_=function(a,b){var c=shaka.config.AutoShowText;if(this.config_.autoShowText==c.NEVER)return!1;if(this.config_.autoShowText==c.ALWAYS)return!0;var d=shaka.util.LanguageUtils,e=d.normalize(this.config_.preferredTextLanguage);b=d.normalize(b.language);if(this.config_.autoShowText==c.IF_PREFERRED_TEXT_LANGUAGE)return d.areLanguageCompatible(b,e);if(this.config_.autoShowText==c.IF_SUBTITLES_MAY_BE_NEEDED)return a=d.normalize(a.language),d.areLanguageCompatible(b,
|
|
1187
1207
|
e)&&!d.areLanguageCompatible(a,b);shaka.log.alwaysWarn("Invalid autoShowText setting!");return!1};shaka.Player.prototype.onManifestUpdate_=function(){this.parser_&&this.parser_.update&&this.parser_.update()};shaka.Player.prototype.onSegmentAppended_=function(a,b,c){this.playhead_&&this.playhead_.notifyOfBufferingChange();this.pollBufferState_();a=(new Map).set("start",a).set("end",b).set("contentType",c);this.dispatchEvent(this.makeEvent_(shaka.util.FakeEvent.EventName.SegmentAppended,a))};
|
|
1188
1208
|
shaka.Player.prototype.switch_=function(a,b,c){b=void 0===b?!1:b;c=void 0===c?0:c;shaka.log.debug("switch_");goog.asserts.assert(this.config_.abr.enabled,"AbrManager should not call switch while disabled!");goog.asserts.assert(this.manifest_,"We need a manifest to switch variants.");this.streamingEngine_&&a!=this.streamingEngine_.getCurrentVariant()&&this.switchVariant_(a,!0,b,c)};
|
|
1189
|
-
shaka.Player.prototype.onAdaptation_=function(a,b){a=(new Map).set("oldTrack",a).set("newTrack",b);this.
|
|
1190
|
-
shaka.Player.prototype.onVariantChanged_=function(a,b){a=(new Map).set("oldTrack",a).set("newTrack",b);this.
|
|
1209
|
+
shaka.Player.prototype.onAdaptation_=function(a,b){a=(new Map).set("oldTrack",a).set("newTrack",b);this.lcevcDec_&&this.lcevcDec_.updateVariant(b,this.getManifestType());b=this.makeEvent_(shaka.util.FakeEvent.EventName.Adaptation,a);this.delayDispatchEvent_(b)};shaka.Player.prototype.onTracksChanged_=function(){var a=this.makeEvent_(shaka.util.FakeEvent.EventName.TracksChanged);this.delayDispatchEvent_(a)};
|
|
1210
|
+
shaka.Player.prototype.onVariantChanged_=function(a,b){a=(new Map).set("oldTrack",a).set("newTrack",b);this.lcevcDec_&&this.lcevcDec_.updateVariant(b,this.getManifestType());b=this.makeEvent_(shaka.util.FakeEvent.EventName.VariantChanged,a);this.delayDispatchEvent_(b)};shaka.Player.prototype.onTextChanged_=function(){var a=this.makeEvent_(shaka.util.FakeEvent.EventName.TextChanged);this.delayDispatchEvent_(a)};
|
|
1191
1211
|
shaka.Player.prototype.onTextTrackVisibility_=function(){var a=this.makeEvent_(shaka.util.FakeEvent.EventName.TextTrackVisibility);this.delayDispatchEvent_(a)};shaka.Player.prototype.onAbrStatusChanged_=function(){this.config_.abr.enabled||this.restoreDisabledVariants_();var a=(new Map).set("newStatus",this.config_.abr.enabled);this.delayDispatchEvent_(this.makeEvent_(shaka.util.FakeEvent.EventName.AbrStatusChanged,a))};
|
|
1192
1212
|
shaka.Player.prototype.restoreDisabledVariants_=function(a){a=void 0===a?!0:a;if(this.loadMode_==shaka.Player.LoadMode.MEDIA_SOURCE){goog.asserts.assert(this.manifest_,"Should have manifest!");shaka.log.v2("Restoring all disabled streams...");this.checkVariantsTimer_.stop();for(var b=$jscomp.makeIterator(this.manifest_.variants),c=b.next();!c.done;c=b.next())c.value.disabledUntilTime=0;a&&this.updateAbrManagerVariants_()}};
|
|
1193
1213
|
shaka.Player.prototype.disableStream=function(a,b){if(!this.config_.abr.enabled||this.loadMode_===shaka.Player.LoadMode.DESTROYED||!navigator.onLine)return!1;if(this.manifest_.variants.some(function(g){return(g=g[a.type])&&g.id!==a.id?shaka.util.StreamUtils.isAudio(a)?a.language===g.language:!0:!1})){for(var c=!1,d=$jscomp.makeIterator(this.manifest_.variants),e=d.next();!e.done;e=d.next()){e=e.value;var f=e[a.type];f&&f.id===a.id&&(e.disabledUntilTime=Date.now()/1E3+b,c=!0,shaka.log.v2("Disabled stream "+
|
|
@@ -1197,9 +1217,9 @@ shaka.Player.prototype.onRegionEvent_=function(a,b){b={schemeIdUri:b.schemeIdUri
|
|
|
1197
1217
|
shaka.Player.prototype.onMediaQualityChange_=function(a,b){a={bandwidth:a.bandwidth,audioSamplingRate:a.audioSamplingRate,codecs:a.codecs,contentType:a.contentType,frameRate:a.frameRate,height:a.height,mimeType:a.mimeType,channelsCount:a.channelsCount,pixelAspectRatio:a.pixelAspectRatio,width:a.width};b=(new Map).set("mediaQuality",a).set("position",b);this.dispatchEvent(this.makeEvent_(shaka.util.FakeEvent.EventName.MediaQualityChanged,b))};
|
|
1198
1218
|
shaka.Player.prototype.videoErrorToShakaError_=function(){goog.asserts.assert(this.video_.error,"Video error expected, but missing!");if(!this.video_.error)return null;var a=this.video_.error.code;if(1==a)return null;var b=this.video_.error.msExtendedCode;b&&(0>b&&(b+=Math.pow(2,32)),b=b.toString(16));return new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MEDIA,shaka.util.Error.Code.VIDEO_ERROR,a,b,this.video_.error.message)};
|
|
1199
1219
|
shaka.Player.prototype.onVideoError_=function(a){if(a=this.videoErrorToShakaError_())this.onError_(a)};
|
|
1200
|
-
shaka.Player.prototype.onKeyStatus_=function(a){if(this.streamingEngine_){var b=Object.keys(a);0==
|
|
1201
|
-
shaka.Player.restrictedStatuses_
|
|
1202
|
-
f.allowedByKeySystem&&(
|
|
1220
|
+
shaka.Player.prototype.onKeyStatus_=function(a){if(this.streamingEngine_){var b=this.makeEvent_(shaka.util.FakeEvent.EventName.KeyStatusChanged);this.dispatchEvent(b);var c=Object.keys(a);0==c.length&&shaka.log.warning("Got a key status event without any key statuses, so we don't know the real key statuses. If we don't have all the keys, you'll need to set restrictions so we don't select those tracks.");var d=1==c.length&&"00"==c[0];d&&shaka.log.warning("Got a synthetic key status event, so we don't know the real key statuses. If we don't have all the keys, you'll need to set restrictions so we don't select those tracks.");
|
|
1221
|
+
var e=shaka.Player.restrictedStatuses_;b=!1;if(c.length){c=$jscomp.makeIterator(this.manifest_.variants);for(var f=c.next();!f.done;f=c.next()){f=f.value;var g=shaka.util.StreamUtils.getVariantStreams(f);g=$jscomp.makeIterator(g);for(var h=g.next();!h.done;h=g.next()){var k=h.value;h=f.allowedByKeySystem;if(k.keyIds.size){f.allowedByKeySystem=!0;k=$jscomp.makeIterator(k.keyIds);for(var l=k.next();!l.done;l=k.next())l=l.value,l=a[d?"00":l],f.allowedByKeySystem=f.allowedByKeySystem&&!!l&&!e.includes(l)}h!=
|
|
1222
|
+
f.allowedByKeySystem&&(b=!0)}}}if(!b||this.updateAbrManagerVariants_())if((a=this.streamingEngine_.getCurrentVariant())&&!a.allowedByKeySystem&&(shaka.log.debug("Choosing new streams after key status changed"),this.chooseVariantAndSwitch_()),b)this.onTracksChanged_()}};shaka.Player.prototype.onExpirationUpdated_=function(a,b){if(this.parser_&&this.parser_.onExpirationUpdated)this.parser_.onExpirationUpdated(a,b);a=this.makeEvent_(shaka.util.FakeEvent.EventName.ExpirationUpdated);this.dispatchEvent(a)};
|
|
1203
1223
|
shaka.Player.prototype.shouldStreamText_=function(){return this.config_.streaming.alwaysStreamText||this.isTextTrackVisible()};shaka.Player.applyPlayRange_=function(a,b,c){0<b&&(a.isLive()?shaka.log.warning("|playRangeStart| has been configured for live content. Ignoring the setting."):a.setUserSeekStart(b));b=a.getDuration();c<b&&(a.isLive()?shaka.log.warning("|playRangeEnd| has been configured for live content. Ignoring the setting."):a.setDuration(c))};
|
|
1204
1224
|
shaka.Player.prototype.checkRestrictedVariants_=function(a){var b=shaka.Player.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);for(var n=
|
|
1205
1225
|
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);};
|
|
@@ -1213,7 +1233,7 @@ shaka.Player.prototype.createAbortLoadError_=function(){return new shaka.util.Er
|
|
|
1213
1233
|
shaka.Player.prototype.getNextStep_=function(a,b,c,d){var e=null;a==this.detachNode_&&(e=c==this.detachNode_?this.detachNode_:this.attachNode_);a==this.attachNode_&&(e=this.getNextAfterAttach_(c,b,d));a==this.mediaSourceNode_&&(e=this.getNextAfterMediaSource_(c,b,d));a==this.parserNode_&&(e=this.getNextMatchingAllDependencies_(this.loadNode_,this.manifestNode_,this.unloadNode_,c,b,d));a==this.manifestNode_&&(e=this.getNextMatchingAllDependencies_(this.loadNode_,this.drmNode_,this.unloadNode_,c,b,
|
|
1214
1234
|
d));a==this.drmNode_&&(e=this.getNextMatchingAllDependencies_(this.loadNode_,this.loadNode_,this.unloadNode_,c,b,d));a==this.srcEqualsDrmNode_&&(e=c==this.srcEqualsNode_&&b.mediaElement==d.mediaElement?this.srcEqualsNode_:this.unloadNode_);if(a==this.loadNode_||a==this.srcEqualsNode_)e=this.unloadNode_;a==this.unloadNode_&&(e=this.getNextAfterUnload_(c,b,d));goog.asserts.assert(e,"Missing next step!");return e};
|
|
1215
1235
|
shaka.Player.prototype.getNextAfterAttach_=function(a,b,c){return a==this.detachNode_||b.mediaElement!=c.mediaElement?this.detachNode_:a==this.attachNode_?this.attachNode_:a==this.mediaSourceNode_||a==this.loadNode_?this.mediaSourceNode_:a==this.srcEqualsNode_?this.srcEqualsDrmNode_:null};shaka.Player.prototype.getNextAfterMediaSource_=function(a,b,c){return a==this.loadNode_&&b.mediaElement==c.mediaElement?this.parserNode_:this.unloadNode_};
|
|
1216
|
-
shaka.Player.prototype.getNextAfterUnload_=function(a,b,c){return c.mediaElement&&b.mediaElement==c.mediaElement?this.attachNode_:this.detachNode_};shaka.Player.prototype.getNextMatchingAllDependencies_=function(a,b,c,d,e,f){return d==a&&e.mediaElement==f.mediaElement&&e.uri==f.uri&&e.mimeType==f.mimeType?b:c};shaka.Player.createEmptyPayload_=function(){return{mediaElement:null,mimeType:null,startTime:null,startTimeOfLoad:NaN,uri:null}};
|
|
1236
|
+
shaka.Player.prototype.getNextAfterUnload_=function(a,b,c){return c.mediaElement&&b.mediaElement==c.mediaElement?this.attachNode_:this.detachNode_};shaka.Player.prototype.getNextMatchingAllDependencies_=function(a,b,c,d,e,f){return d==a&&e.mediaElement==f.mediaElement&&e.uri==f.uri&&e.mimeType==f.mimeType?b:c};shaka.Player.createEmptyPayload_=function(){return{mediaElement:null,mimeType:null,startTime:null,startTimeOfLoad:NaN,uri:null,keepAdManager:!0}};
|
|
1217
1237
|
shaka.Player.prototype.wrapWalkerListenersWithPromise_=function(a){var b=this;return new Promise(function(c,d){a.onCancel=function(){return d(b.createAbortLoadError_())};a.onEnd=function(){return c()};a.onError=function(e){return d(e)};a.onSkip=function(){return d(b.createAbortLoadError_())}})};goog.exportSymbol("shaka.Player",shaka.Player);goog.exportProperty(shaka.Player.prototype,"setVideoContainer",shaka.Player.prototype.setVideoContainer);
|
|
1218
1238
|
goog.exportProperty(shaka.Player.prototype,"getManifestParserFactory",shaka.Player.prototype.getManifestParserFactory);goog.exportProperty(shaka.Player.prototype,"getManifest",shaka.Player.prototype.getManifest);goog.exportProperty(shaka.Player.prototype,"retryStreaming",shaka.Player.prototype.retryStreaming);goog.exportProperty(shaka.Player.prototype,"setMaxHardwareResolution",shaka.Player.prototype.setMaxHardwareResolution);goog.exportProperty(shaka.Player.prototype,"addChaptersTrack",shaka.Player.prototype.addChaptersTrack);
|
|
1219
1239
|
goog.exportProperty(shaka.Player.prototype,"addThumbnailsTrack",shaka.Player.prototype.addThumbnailsTrack);goog.exportProperty(shaka.Player.prototype,"addTextTrackAsync",shaka.Player.prototype.addTextTrackAsync);goog.exportProperty(shaka.Player.prototype,"getStats",shaka.Player.prototype.getStats);goog.exportProperty(shaka.Player.prototype,"getBufferedInfo",shaka.Player.prototype.getBufferedInfo);goog.exportProperty(shaka.Player.prototype,"getPresentationStartTimeAsDate",shaka.Player.prototype.getPresentationStartTimeAsDate);
|
|
@@ -1227,7 +1247,7 @@ goog.exportProperty(shaka.Player.prototype,"isAudioOnly",shaka.Player.prototype.
|
|
|
1227
1247
|
goog.exportProperty(shaka.Player.prototype,"getNetworkingEngine",shaka.Player.prototype.getNetworkingEngine);goog.exportProperty(shaka.Player.prototype,"getMediaElement",shaka.Player.prototype.getMediaElement);goog.exportProperty(shaka.Player.prototype,"getManifestType",shaka.Player.prototype.getManifestType);goog.exportProperty(shaka.Player.prototype,"getLoadMode",shaka.Player.prototype.getLoadMode);goog.exportProperty(shaka.Player.prototype,"resetConfiguration",shaka.Player.prototype.resetConfiguration);
|
|
1228
1248
|
goog.exportProperty(shaka.Player.prototype,"getBufferFullness",shaka.Player.prototype.getBufferFullness);goog.exportProperty(shaka.Player.prototype,"getConfiguration",shaka.Player.prototype.getConfiguration);goog.exportProperty(shaka.Player.prototype,"configure",shaka.Player.prototype.configure);goog.exportProperty(shaka.Player.prototype,"load",shaka.Player.prototype.load);goog.exportProperty(shaka.Player.prototype,"updateStartTime",shaka.Player.prototype.updateStartTime);
|
|
1229
1249
|
goog.exportProperty(shaka.Player.prototype,"unload",shaka.Player.prototype.unload);goog.exportProperty(shaka.Player.prototype,"detach",shaka.Player.prototype.detach);goog.exportProperty(shaka.Player.prototype,"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);
|
|
1230
|
-
goog.exportProperty(shaka.Player,"setAdManagerFactory",shaka.Player.setAdManagerFactory);goog.exportProperty(shaka.Player,"registerSupportPlugin",shaka.Player.registerSupportPlugin);goog.exportProperty(shaka.Player.prototype,"destroy",shaka.Player.prototype.destroy);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.
|
|
1250
|
+
goog.exportProperty(shaka.Player,"setAdManagerFactory",shaka.Player.setAdManagerFactory);goog.exportProperty(shaka.Player,"registerSupportPlugin",shaka.Player.registerSupportPlugin);goog.exportProperty(shaka.Player.prototype,"destroy",shaka.Player.prototype.destroy);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.5.0-debug";
|
|
1231
1251
|
goog.exportProperty(shaka.Player,"version",shaka.Player.version);shaka.Deprecate.init(shaka.Player.version);shaka.Player.restrictedStatuses_=["output-restricted","internal-error"];shaka.Player.supportPlugins_={};shaka.Player.adManagerFactory_=null;
|
|
1232
1252
|
shaka.Player.SRC_EQUAL_EXTENSIONS_TO_MIME_TYPES_={mp4:"video/mp4",m4v:"video/mp4",m4a:"audio/mp4",webm:"video/webm",weba:"audio/webm",mkv:"video/webm",ts:"video/mp2t",ogv:"video/ogg",ogg:"audio/ogg",mpg:"video/mpeg",mpeg:"video/mpeg",m3u8:"application/x-mpegurl",mpd:"application/dash+xml",mp3:"audio/mpeg",aac:"audio/aac",flac:"audio/flac",wav:"audio/wav"};
|
|
1233
1253
|
shaka.Player.TEXT_EXTENSIONS_TO_MIME_TYPES_={sbv:"text/x-subviewer",srt:"text/srt",vtt:"text/vtt",webvtt:"text/vtt",ttml:"application/ttml+xml",lrc:"application/x-subtitle-lrc",ssa:"text/x-ssa",ass:"text/x-ssa"};shaka.Player.TextTrackLabel="Shaka Player TextTrack";shaka.ads={};shaka.ads.AdsStats=function(){this.loadTimes_=[];this.skipped_=this.playedCompletely_=this.started_=0};shaka.ads.AdsStats.prototype.addLoadTime=function(a){this.loadTimes_.push(a)};shaka.ads.AdsStats.prototype.incrementStarted=function(){this.started_++};shaka.ads.AdsStats.prototype.incrementPlayedCompletely=function(){this.playedCompletely_++};shaka.ads.AdsStats.prototype.incrementSkipped=function(){this.skipped_++};
|
|
@@ -1267,7 +1287,53 @@ this.eventManager_.listen(this.imaAdsManager_,google.ima.AdEvent.Type.IMPRESSION
|
|
|
1267
1287
|
shaka.ads.AdManager.AD_LOADED)});this.eventManager_.listen(this.imaAdsManager_,google.ima.AdEvent.Type.ALL_ADS_COMPLETED,function(c){b(c,shaka.ads.AdManager.ALL_ADS_COMPLETED)});this.eventManager_.listen(this.imaAdsManager_,google.ima.AdEvent.Type.LINEAR_CHANGED,function(c){b(c,shaka.ads.AdManager.AD_LINEAR_CHANGED)});this.eventManager_.listen(this.imaAdsManager_,google.ima.AdEvent.Type.AD_METADATA,function(c){b(c,shaka.ads.AdManager.AD_METADATA)});this.eventManager_.listen(this.imaAdsManager_,google.ima.AdEvent.Type.LOG,
|
|
1268
1288
|
function(c){b(c,shaka.ads.AdManager.AD_RECOVERABLE_ERROR)});this.eventManager_.listen(this.imaAdsManager_,google.ima.AdEvent.Type.AD_BREAK_READY,function(c){b(c,shaka.ads.AdManager.AD_BREAK_READY)});this.eventManager_.listen(this.imaAdsManager_,google.ima.AdEvent.Type.INTERACTION,function(c){b(c,shaka.ads.AdManager.AD_INTERACTION)})};
|
|
1269
1289
|
shaka.ads.ClientSideAdManager.prototype.onAdStart_=function(a){goog.asserts.assert(this.imaAdsManager_,"Should have an ads manager at this point!");var b=a.getAd();b?(this.ad_=new shaka.ads.ClientSideAd(b,this.imaAdsManager_,this.video_),a=(new Map).set("ad",this.ad_).set("sdkAdObject",b).set("originalEvent",a),this.onEvent_(new shaka.util.FakeEvent(shaka.ads.AdManager.AD_STARTED,a)),this.ad_.isLinear()&&(this.adContainer_.setAttribute("ad-active","true"),this.video_.pause(),this.ad_.setVolume(this.video_.volume),
|
|
1270
|
-
this.video_.muted&&this.ad_.setMuted(!0))):shaka.log.alwaysWarn("The IMA SDK fired a "+a.type+" event with no associated ad. Unable to play ad!")};shaka.ads.ClientSideAdManager.prototype.onAdComplete_=function(a){this.onEvent_(new shaka.util.FakeEvent(shaka.ads.AdManager.AD_STOPPED,(new Map).set("originalEvent",a)));this.ad_&&this.ad_.isLinear()&&(this.adContainer_.removeAttribute("ad-active"),this.video_.ended||this.video_.play())};shaka.ads.
|
|
1290
|
+
this.video_.muted&&this.ad_.setMuted(!0))):shaka.log.alwaysWarn("The IMA SDK fired a "+a.type+" event with no associated ad. Unable to play ad!")};shaka.ads.ClientSideAdManager.prototype.onAdComplete_=function(a){this.onEvent_(new shaka.util.FakeEvent(shaka.ads.AdManager.AD_STOPPED,(new Map).set("originalEvent",a)));this.ad_&&this.ad_.isLinear()&&(this.adContainer_.removeAttribute("ad-active"),this.video_.ended||this.video_.play())};shaka.ads.MediaTailorAd=function(a,b,c,d,e){this.ad_=a;this.video_=e;this.adPosition_=b;this.totalAds_=c;this.isLinear_=d};shaka.ads.MediaTailorAd.prototype.getDuration=function(){return this.ad_.durationInSeconds};shaka.ads.MediaTailorAd.prototype.getMinSuggestedDuration=function(){return this.getDuration()};shaka.ads.MediaTailorAd.prototype.getRemainingTime=function(){return this.ad_.startTimeInSeconds+this.ad_.durationInSeconds-this.video_.currentTime};
|
|
1291
|
+
shaka.ads.MediaTailorAd.prototype.isPaused=function(){return this.video_.paused};shaka.ads.MediaTailorAd.prototype.isSkippable=function(){return this.ad_.skipOffset?!0:!1};shaka.ads.MediaTailorAd.prototype.getTimeUntilSkippable=function(){if(!this.ad_.skipOffset)return this.getRemainingTime();var a=this.getRemainingTime()-this.ad_.skipOffset;return Math.max(a,0)};shaka.ads.MediaTailorAd.prototype.canSkipNow=function(){return 0==this.getTimeUntilSkippable()};
|
|
1292
|
+
shaka.ads.MediaTailorAd.prototype.skip=function(){this.video_.currentTime+=this.getRemainingTime()};shaka.ads.MediaTailorAd.prototype.pause=function(){return this.video_.pause()};shaka.ads.MediaTailorAd.prototype.play=function(){return this.video_.play()};shaka.ads.MediaTailorAd.prototype.getVolume=function(){return this.video_.volume};shaka.ads.MediaTailorAd.prototype.setVolume=function(a){this.video_.volume=a};shaka.ads.MediaTailorAd.prototype.isMuted=function(){return this.video_.muted};
|
|
1293
|
+
shaka.ads.MediaTailorAd.prototype.isLinear=function(){return this.isLinear_};shaka.ads.MediaTailorAd.prototype.resize=function(a,b){};shaka.ads.MediaTailorAd.prototype.setMuted=function(a){this.video_.muted=a};shaka.ads.MediaTailorAd.prototype.getSequenceLength=function(){return this.totalAds_?this.totalAds_:1};shaka.ads.MediaTailorAd.prototype.getPositionInSequence=function(){return this.adPosition_?this.adPosition_:1};shaka.ads.MediaTailorAd.prototype.getTitle=function(){return this.ad_.adTitle};
|
|
1294
|
+
shaka.ads.MediaTailorAd.prototype.getDescription=function(){return""};shaka.ads.MediaTailorAd.prototype.getVastMediaBitrate=function(){return 0};shaka.ads.MediaTailorAd.prototype.getVastMediaHeight=function(){return 0};shaka.ads.MediaTailorAd.prototype.getVastMediaWidth=function(){return 0};shaka.ads.MediaTailorAd.prototype.getAdId=function(){return this.ad_.adId};shaka.ads.MediaTailorAd.prototype.getCreativeAdId=function(){return this.ad_.creativeId};
|
|
1295
|
+
shaka.ads.MediaTailorAd.prototype.getAdvertiserName=function(){return""};shaka.ads.MediaTailorAd.prototype.getMediaUrl=function(){return null};shaka.ads.MediaTailorAd.prototype.getTimeOffset=function(){return 0};shaka.ads.MediaTailorAd.prototype.getPodIndex=function(){return 0};shaka.ads.MediaTailorAd.prototype.release=function(){this.totalAds_=this.adPosition_=this.video_=this.ad_=null};goog.exportSymbol("shaka.ads.MediaTailorAd",shaka.ads.MediaTailorAd);
|
|
1296
|
+
goog.exportProperty(shaka.ads.MediaTailorAd.prototype,"release",shaka.ads.MediaTailorAd.prototype.release);goog.exportProperty(shaka.ads.MediaTailorAd.prototype,"getPodIndex",shaka.ads.MediaTailorAd.prototype.getPodIndex);goog.exportProperty(shaka.ads.MediaTailorAd.prototype,"getTimeOffset",shaka.ads.MediaTailorAd.prototype.getTimeOffset);goog.exportProperty(shaka.ads.MediaTailorAd.prototype,"getMediaUrl",shaka.ads.MediaTailorAd.prototype.getMediaUrl);
|
|
1297
|
+
goog.exportProperty(shaka.ads.MediaTailorAd.prototype,"getAdvertiserName",shaka.ads.MediaTailorAd.prototype.getAdvertiserName);goog.exportProperty(shaka.ads.MediaTailorAd.prototype,"getCreativeAdId",shaka.ads.MediaTailorAd.prototype.getCreativeAdId);goog.exportProperty(shaka.ads.MediaTailorAd.prototype,"getAdId",shaka.ads.MediaTailorAd.prototype.getAdId);goog.exportProperty(shaka.ads.MediaTailorAd.prototype,"getVastMediaWidth",shaka.ads.MediaTailorAd.prototype.getVastMediaWidth);
|
|
1298
|
+
goog.exportProperty(shaka.ads.MediaTailorAd.prototype,"getVastMediaHeight",shaka.ads.MediaTailorAd.prototype.getVastMediaHeight);goog.exportProperty(shaka.ads.MediaTailorAd.prototype,"getVastMediaBitrate",shaka.ads.MediaTailorAd.prototype.getVastMediaBitrate);goog.exportProperty(shaka.ads.MediaTailorAd.prototype,"getDescription",shaka.ads.MediaTailorAd.prototype.getDescription);goog.exportProperty(shaka.ads.MediaTailorAd.prototype,"getTitle",shaka.ads.MediaTailorAd.prototype.getTitle);
|
|
1299
|
+
goog.exportProperty(shaka.ads.MediaTailorAd.prototype,"getPositionInSequence",shaka.ads.MediaTailorAd.prototype.getPositionInSequence);goog.exportProperty(shaka.ads.MediaTailorAd.prototype,"getSequenceLength",shaka.ads.MediaTailorAd.prototype.getSequenceLength);goog.exportProperty(shaka.ads.MediaTailorAd.prototype,"setMuted",shaka.ads.MediaTailorAd.prototype.setMuted);goog.exportProperty(shaka.ads.MediaTailorAd.prototype,"resize",shaka.ads.MediaTailorAd.prototype.resize);
|
|
1300
|
+
goog.exportProperty(shaka.ads.MediaTailorAd.prototype,"isLinear",shaka.ads.MediaTailorAd.prototype.isLinear);goog.exportProperty(shaka.ads.MediaTailorAd.prototype,"isMuted",shaka.ads.MediaTailorAd.prototype.isMuted);goog.exportProperty(shaka.ads.MediaTailorAd.prototype,"setVolume",shaka.ads.MediaTailorAd.prototype.setVolume);goog.exportProperty(shaka.ads.MediaTailorAd.prototype,"getVolume",shaka.ads.MediaTailorAd.prototype.getVolume);goog.exportProperty(shaka.ads.MediaTailorAd.prototype,"play",shaka.ads.MediaTailorAd.prototype.play);
|
|
1301
|
+
goog.exportProperty(shaka.ads.MediaTailorAd.prototype,"pause",shaka.ads.MediaTailorAd.prototype.pause);goog.exportProperty(shaka.ads.MediaTailorAd.prototype,"skip",shaka.ads.MediaTailorAd.prototype.skip);goog.exportProperty(shaka.ads.MediaTailorAd.prototype,"canSkipNow",shaka.ads.MediaTailorAd.prototype.canSkipNow);goog.exportProperty(shaka.ads.MediaTailorAd.prototype,"getTimeUntilSkippable",shaka.ads.MediaTailorAd.prototype.getTimeUntilSkippable);
|
|
1302
|
+
goog.exportProperty(shaka.ads.MediaTailorAd.prototype,"isSkippable",shaka.ads.MediaTailorAd.prototype.isSkippable);goog.exportProperty(shaka.ads.MediaTailorAd.prototype,"isPaused",shaka.ads.MediaTailorAd.prototype.isPaused);goog.exportProperty(shaka.ads.MediaTailorAd.prototype,"getRemainingTime",shaka.ads.MediaTailorAd.prototype.getRemainingTime);goog.exportProperty(shaka.ads.MediaTailorAd.prototype,"getMinSuggestedDuration",shaka.ads.MediaTailorAd.prototype.getMinSuggestedDuration);
|
|
1303
|
+
goog.exportProperty(shaka.ads.MediaTailorAd.prototype,"getDuration",shaka.ads.MediaTailorAd.prototype.getDuration);shaka.ads.MediaTailorAdManager=function(a,b,c,d){this.adContainer_=a;this.networkingEngine_=b;this.video_=c;this.streamPromise_=null;this.streamRequestStartTime_=NaN;this.onEvent_=d;this.isLive_=!1;this.snapForwardTime_=null;this.adBreaks_=[];this.playedAds_=[];this.mediaTailorAdBreak_=this.mediaTailorAd_=this.ad_=null;this.staticResources_=new Map;this.adListeners_=[];this.eventsSent=[];this.trackingUrl_="";this.firstTrackingRequest_=!0;this.backupUrl_="";this.currentCuePoints_=[];this.eventManager_=
|
|
1304
|
+
new shaka.util.EventManager};shaka.ads.MediaTailorAdManager.prototype.streamRequest=function(a,b,c){if(this.streamPromise_)return Promise.reject(new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.ADS,shaka.util.Error.Code.CURRENT_DAI_REQUEST_NOT_FINISHED));this.streamPromise_=new shaka.util.PublicPromise;this.requestSessionInfo_(a,b);this.backupUrl_=c||"";this.streamRequestStartTime_=Date.now()/1E3;return this.streamPromise_};
|
|
1305
|
+
shaka.ads.MediaTailorAdManager.prototype.stop=function(){for(var a=$jscomp.makeIterator(this.adListeners_),b=a.next();!b.done;b=a.next())b=b.value,this.eventManager_.unlisten(b.target,b.type,b.listener);this.onEnded_();this.adListeners_=[];this.eventsSent=[];this.trackingUrl_="";this.firstTrackingRequest_=!0;this.backupUrl_="";this.snapForwardTime_=null;this.adBreaks_=[];this.playedAds_=[];this.staticResources_.clear()};
|
|
1306
|
+
shaka.ads.MediaTailorAdManager.prototype.release=function(){this.stop();this.eventManager_&&this.eventManager_.release()};shaka.ads.MediaTailorAdManager.prototype.onManifestUpdated=function(a){this.isLive_=a;""!=this.trackingUrl_&&(this.requestTrackingInfo_(this.trackingUrl_,this.firstTrackingRequest_),this.firstTrackingRequest_=!1)};
|
|
1307
|
+
shaka.ads.MediaTailorAdManager.prototype.getCuePoints=function(){for(var a=[],b=$jscomp.makeIterator(this.adBreaks_),c=b.next();!c.done;c=b.next()){c=$jscomp.makeIterator(c.value.ads);for(var d=c.next();!d.done;d=c.next())d=d.value,a.push({start:d.startTimeInSeconds,end:d.startTimeInSeconds+d.durationInSeconds})}return a};
|
|
1308
|
+
shaka.ads.MediaTailorAdManager.prototype.requestSessionInfo_=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r;return $jscomp.asyncExecutePromiseGeneratorProgram(function(t){if(1==t.nextAddress)return d=shaka.net.NetworkingEngine.RequestType.ADS,e=shaka.net.NetworkingEngine.makeRequest([a],shaka.net.NetworkingEngine.defaultRetryParameters()),e.method="POST",b&&(f=JSON.stringify(b),e.body=shaka.util.StringUtils.toUTF8(f)),g=c.networkingEngine_.request(d,e),t.setCatchFinallyBlocks(2),t.yield(g.promise,
|
|
1309
|
+
4);if(2!=t.nextAddress){h=t.yieldResult;k=shaka.util.StringUtils.fromUTF8(h.data);l=JSON.parse(k);if(l.manifestUrl&&l.trackingUrl)m=new goog.Uri(a),n=new goog.Uri(l.trackingUrl),c.trackingUrl_=m.resolve(n).toString(),p=Date.now()/1E3,q=p-c.streamRequestStartTime_,c.onEvent_(new shaka.util.FakeEvent(shaka.ads.AdManager.ADS_LOADED,(new Map).set("loadTime",q))),r=new goog.Uri(l.manifestUrl),c.streamPromise_.resolve(m.resolve(r).toString()),c.streamPromise_=null;else throw Error("Insufficient data from MediaTailor.");
|
|
1310
|
+
return t.leaveTryBlock(0)}t.enterCatchBlock();if(!c.backupUrl_.length)return c.streamPromise_.reject("MediaTailor request returned an error and there was no backup asset uri provided."),c.streamPromise_=null,t.return();shaka.log.warning("MediaTailor request returned an error. Falling back to the backup asset uri.");c.streamPromise_.resolve(c.backupUrl_);c.streamPromise_=null;t.jumpToEnd()})};
|
|
1311
|
+
shaka.ads.MediaTailorAdManager.prototype.requestTrackingInfo_=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,t,v,u,w;return $jscomp.asyncExecutePromiseGeneratorProgram(function(x){if(1==x.nextAddress)return d=shaka.net.NetworkingEngine.RequestType.ADS,e=shaka.net.NetworkingEngine.makeRequest([a],shaka.net.NetworkingEngine.defaultRetryParameters()),f=c.networkingEngine_.request(d,e),x.setCatchFinallyBlocks(2),x.yield(f.promise,4);if(2!=x.nextAddress){g=x.yieldResult;h=[];k=shaka.util.StringUtils.fromUTF8(g.data);
|
|
1312
|
+
l=JSON.parse(k);if(0<l.avails.length){if(JSON.stringify(c.adBreaks_)!=JSON.stringify(l.avails)){c.adBreaks_=l.avails;m=$jscomp.makeIterator(c.adBreaks_);for(n=m.next();!n.done;n=m.next())for(p=n.value,q=$jscomp.makeIterator(p.nonLinearAdsList),r=q.next();!r.done;r=q.next())for(t=r.value,v=$jscomp.makeIterator(t.nonLinearAdList),u=v.next();!u.done;u=v.next())w=u.value,c.requestStaticResource_(w);h=c.getCuePoints();c.onEvent_(new shaka.util.FakeEvent(shaka.ads.AdManager.CUEPOINTS_CHANGED,(new Map).set("cuepoints",
|
|
1313
|
+
h)))}}else{if(c.adBreaks_.length)c.onEvent_(new shaka.util.FakeEvent(shaka.ads.AdManager.CUEPOINTS_CHANGED,(new Map).set("cuepoints",h)));c.onEnded_();c.adBreaks_=[]}b&&(c.isLive_||0<h.length)&&c.setupAdBreakListeners_();return x.leaveTryBlock(0)}x.enterCatchBlock();x.jumpToEnd()})};
|
|
1314
|
+
shaka.ads.MediaTailorAdManager.prototype.requestStaticResource_=function(a){var b=this,c,d,e,f,g,h,k,l,m;return $jscomp.asyncExecutePromiseGeneratorProgram(function(n){if(1==n.nextAddress){if(!a.staticResource)return n.return();c=b.getCacheKeyForNonLinear_(a);if(d=b.staticResources_.get(c))return n.return();e=shaka.net.NetworkingEngine.RequestType.ADS;f=shaka.net.NetworkingEngine.makeRequest([a.staticResource],shaka.net.NetworkingEngine.defaultRetryParameters());g=b.networkingEngine_.request(e,f);
|
|
1315
|
+
n.setCatchFinallyBlocks(2);b.staticResources_.set(c,[]);return n.yield(g.promise,4)}if(2!=n.nextAddress)return h=n.yieldResult,k=shaka.util.StringUtils.fromUTF8(h.data),l=JSON.parse(k),m=l.apps,b.staticResources_.set(c,m),n.leaveTryBlock(0);n.enterCatchBlock();b.staticResources_.delete(c);n.jumpToEnd()})};shaka.ads.MediaTailorAdManager.prototype.getCacheKeyForNonLinear_=function(a){return[a.adId,a.adParameters,a.adSystem,a.adTitle,a.creativeAdId,a.creativeId,a.creativeSequence,a.height,a.width,a.staticResource].join("")};
|
|
1316
|
+
shaka.ads.MediaTailorAdManager.prototype.setupAdBreakListeners_=function(){var a=this;this.onTimeupdate_();this.isLive_||(this.checkForSnapback_(),this.eventManager_.listen(this.video_,"seeked",function(){a.checkForSnapback_()}),this.eventManager_.listen(this.video_,"ended",function(){a.onEnded_()}));this.eventManager_.listen(this.video_,"timeupdate",function(){a.onTimeupdate_()})};
|
|
1317
|
+
shaka.ads.MediaTailorAdManager.prototype.checkForSnapback_=function(){var a=this.video_.currentTime;if(0!=a&&null==this.snapForwardTime_){for(var b,c,d=$jscomp.makeIterator(this.adBreaks_),e=d.next();!e.done;e=d.next()){e=e.value;for(var f=$jscomp.makeIterator(e.ads),g=f.next();!g.done;g=f.next())if(g=g.value,!c)g.startTimeInSeconds<a&&(c=g,b=e);else if(g.startTimeInSeconds<a&&g.startTimeInSeconds>c.startTimeInSeconds+c.durationInSeconds){c=g;b=e;break}}b&&c&&!this.playedAds_.includes(c.adId)&&(shaka.log.info("Seeking back to the start of the ad break at "+
|
|
1318
|
+
b.startTimeInSeconds+" and will return to "+a),this.snapForwardTime_=a,this.video_.currentTime=b.startTimeInSeconds)}};shaka.ads.MediaTailorAdManager.prototype.onAdBreakEnded_=function(){var a=this.video_.currentTime;this.snapForwardTime_&&this.snapForwardTime_>a&&(this.video_.currentTime=this.snapForwardTime_);this.snapForwardTime_=null};
|
|
1319
|
+
shaka.ads.MediaTailorAdManager.prototype.onTimeupdate_=function(){if(this.video_.duration&&(this.ad_||this.adBreaks_.length)){var a=this.video_.currentTime,b=!1;if(this.ad_){b=!0;goog.asserts.assert(this.mediaTailorAd_,"Ad should be defined");this.sendInProgressEvents_(a,this.mediaTailorAd_);var c=this.ad_.getRemainingTime(),d=this.ad_.getDuration();if(0<d&&(0>=c||c>d))this.onEnded_()}if(!this.ad_||!this.ad_.isLinear())if(this.checkLinearAds_(a),this.ad_||this.checkNonLinearAds_(a),b&&!this.ad_)this.onAdBreakEnded_()}};
|
|
1320
|
+
shaka.ads.MediaTailorAdManager.prototype.sendInProgressEvents_=function(a,b){var c=shaka.ads.MediaTailorAdManager,d=b.startTimeInSeconds+.5*b.durationInSeconds,e=b.startTimeInSeconds+.75*b.durationInSeconds;a>=b.startTimeInSeconds+.25*b.durationInSeconds&&!this.eventsSent.includes(c.FIRSTQUARTILE_)?(this.eventsSent.push(c.FIRSTQUARTILE_),this.sendTrackingEvent_(c.FIRSTQUARTILE_)):a>=d&&!this.eventsSent.includes(c.MIDPOINT_)?(this.eventsSent.push(c.MIDPOINT_),this.sendTrackingEvent_(c.MIDPOINT_)):
|
|
1321
|
+
a>=e&&!this.eventsSent.includes(c.THIRDQUARTILE_)&&(this.eventsSent.push(c.THIRDQUARTILE_),this.sendTrackingEvent_(c.THIRDQUARTILE_))};
|
|
1322
|
+
shaka.ads.MediaTailorAdManager.prototype.checkLinearAds_=function(a){for(var b=shaka.ads.MediaTailorAdManager,c=$jscomp.makeIterator(this.adBreaks_),d=c.next();!d.done;d=c.next()){d=d.value;if(this.ad_&&this.ad_.isLinear())break;for(var e=0;e<d.ads.length;e++){var f=d.ads[e],g=f.startTimeInSeconds+f.durationInSeconds;if(f.startTimeInSeconds<=a&&g>a){if(this.playedAds_.includes(f.adId)){if(this.video_.ended)continue;this.video_.currentTime=g;return}this.onEnded_();this.mediaTailorAdBreak_=d;this.ad_=
|
|
1323
|
+
new shaka.ads.MediaTailorAd(f,e+1,d.ads.length,!0,this.video_);this.mediaTailorAd_=f;0===e&&this.sendTrackingEvent_(b.BREAKSTART_);this.setupCurrentAdListeners_();break}}}};
|
|
1324
|
+
shaka.ads.MediaTailorAdManager.prototype.checkNonLinearAds_=function(a){for(var b=shaka.ads.MediaTailorAdManager,c=$jscomp.makeIterator(this.adBreaks_),d=c.next();!d.done;d=c.next()){d=d.value;if(this.ad_)break;for(var e=0;e<d.nonLinearAdsList.length;e++){var f=d.nonLinearAdsList[e];if(f.nonLinearAdList.length){var g=d.startTimeInSeconds,h=this.getCacheKeyForNonLinear_(f.nonLinearAdList[0]);h=this.staticResources_.get(h);if(g<=a&&h&&h.length){this.onEnded_();this.displayNonLinearAd_(h);this.mediaTailorAdBreak_=
|
|
1325
|
+
d;this.ad_=new shaka.ads.MediaTailorAd(f,e+1,d.ads.length,!1,this.video_);this.mediaTailorAd_=f;0===e&&this.sendTrackingEvent_(b.BREAKSTART_);this.setupCurrentAdListeners_();break}}}}};
|
|
1326
|
+
shaka.ads.MediaTailorAdManager.prototype.displayNonLinearAd_=function(a){a=$jscomp.makeIterator(a);for(var b=a.next();!b.done;b=a.next())if(b=b.value,b.data.source.length){var c=document.createElement("img");c.setAttribute("src",b.data.source[0].url);c.style.top=(b.placeholder.top||0)+"%";c.style.height=100-(b.placeholder.top||0)+"%";c.style.left=(b.placeholder.left||0)+"%";c.style.maxWidth=100-(b.placeholder.left||0)+"%";c.style.objectFit="contain";c.style.position="absolute";this.adContainer_.appendChild(c)}};
|
|
1327
|
+
shaka.ads.MediaTailorAdManager.prototype.onEnded_=function(){if(this.ad_){for(;this.adContainer_.lastChild;)this.adContainer_.removeChild(this.adContainer_.firstChild);this.isLive_||this.playedAds_.push(this.mediaTailorAd_.adId);this.removeCurrentAdListeners_();var a=this.ad_.getPositionInSequence(),b=this.ad_.getSequenceLength();a===b&&this.sendTrackingEvent_(shaka.ads.MediaTailorAdManager.BREAKEND_);this.mediaTailorAdBreak_=this.mediaTailorAd_=this.ad_=null}};
|
|
1328
|
+
shaka.ads.MediaTailorAdManager.prototype.setupCurrentAdListeners_=function(){var a=this,b=shaka.ads.MediaTailorAdManager;this.sendTrackingEvent_(b.IMPRESSION_);this.sendTrackingEvent_(b.START_);this.adListeners_.push({target:this.video_,type:"volumechange",listener:function(){a.video_.muted&&a.sendTrackingEvent_(b.MUTE_)}});this.adListeners_.push({target:this.video_,type:"volumechange",listener:function(){a.video_.muted||a.sendTrackingEvent_(b.UNMUTE_)}});this.adListeners_.push({target:this.video_,
|
|
1329
|
+
type:"play",listener:function(){a.sendTrackingEvent_(b.RESUME_)}});this.adListeners_.push({target:this.video_,type:"pause",listener:function(){a.sendTrackingEvent_(b.PAUSE_)}});for(var c=$jscomp.makeIterator(this.adListeners_),d=c.next();!d.done;d=c.next())d=d.value,this.eventManager_.listen(d.target,d.type,d.listener)};
|
|
1330
|
+
shaka.ads.MediaTailorAdManager.prototype.removeCurrentAdListeners_=function(){this.sendTrackingEvent_(shaka.ads.MediaTailorAdManager.COMPLETE_);for(var a=$jscomp.makeIterator(this.adListeners_),b=a.next();!b.done;b=a.next())b=b.value,this.eventManager_.unlisten(b.target,b.type,b.listener);this.adListeners_=[];this.eventsSent=[]};
|
|
1331
|
+
shaka.ads.MediaTailorAdManager.prototype.sendTrackingEvent_=function(a){var b=this.mediaTailorAd_.trackingEvents.find(function(e){return e.eventType==a});b||(b=this.mediaTailorAdBreak_.adBreakTrackingEvents.find(function(e){return e.eventType==a}));if(b){var c=shaka.net.NetworkingEngine.RequestType.ADS;b=$jscomp.makeIterator(b.beaconUrls);for(var d=b.next();!d.done;d=b.next())(d=d.value)&&""!=d&&(d=shaka.net.NetworkingEngine.makeRequest([d],shaka.net.NetworkingEngine.defaultRetryParameters()),d.method=
|
|
1332
|
+
"POST",this.networkingEngine_.request(c,d))}switch(a){case shaka.ads.MediaTailorAdManager.IMPRESSION_:this.onEvent_(new shaka.util.FakeEvent(shaka.ads.AdManager.AD_IMPRESSION));break;case shaka.ads.MediaTailorAdManager.START_:this.onEvent_(new shaka.util.FakeEvent(shaka.ads.AdManager.AD_STARTED,(new Map).set("ad",this.ad_)));break;case shaka.ads.MediaTailorAdManager.MUTE_:this.onEvent_(new shaka.util.FakeEvent(shaka.ads.AdManager.AD_MUTED));break;case shaka.ads.MediaTailorAdManager.UNMUTE_:this.onEvent_(new shaka.util.FakeEvent(shaka.ads.AdManager.AD_VOLUME_CHANGED));
|
|
1333
|
+
break;case shaka.ads.MediaTailorAdManager.RESUME_:this.onEvent_(new shaka.util.FakeEvent(shaka.ads.AdManager.AD_RESUMED));break;case shaka.ads.MediaTailorAdManager.PAUSE_:this.onEvent_(new shaka.util.FakeEvent(shaka.ads.AdManager.AD_PAUSED));break;case shaka.ads.MediaTailorAdManager.FIRSTQUARTILE_:this.onEvent_(new shaka.util.FakeEvent(shaka.ads.AdManager.AD_FIRST_QUARTILE));break;case shaka.ads.MediaTailorAdManager.MIDPOINT_:this.onEvent_(new shaka.util.FakeEvent(shaka.ads.AdManager.AD_MIDPOINT));
|
|
1334
|
+
break;case shaka.ads.MediaTailorAdManager.THIRDQUARTILE_:this.onEvent_(new shaka.util.FakeEvent(shaka.ads.AdManager.AD_THIRD_QUARTILE));break;case shaka.ads.MediaTailorAdManager.COMPLETE_:this.onEvent_(new shaka.util.FakeEvent(shaka.ads.AdManager.AD_COMPLETE));this.onEvent_(new shaka.util.FakeEvent(shaka.ads.AdManager.AD_STOPPED));break;case shaka.ads.MediaTailorAdManager.BREAKSTART_:this.adContainer_.setAttribute("ad-active","true");break;case shaka.ads.MediaTailorAdManager.BREAKEND_:this.adContainer_.removeAttribute("ad-active")}};
|
|
1335
|
+
shaka.ads.MediaTailorAdManager.IMPRESSION_="impression";shaka.ads.MediaTailorAdManager.START_="start";shaka.ads.MediaTailorAdManager.MUTE_="mute";shaka.ads.MediaTailorAdManager.UNMUTE_="unmute";shaka.ads.MediaTailorAdManager.RESUME_="resume";shaka.ads.MediaTailorAdManager.PAUSE_="pause";shaka.ads.MediaTailorAdManager.FIRSTQUARTILE_="firstQuartile";shaka.ads.MediaTailorAdManager.MIDPOINT_="midpoint";shaka.ads.MediaTailorAdManager.THIRDQUARTILE_="thirdQuartile";
|
|
1336
|
+
shaka.ads.MediaTailorAdManager.COMPLETE_="complete";shaka.ads.MediaTailorAdManager.BREAKSTART_="breakStart";shaka.ads.MediaTailorAdManager.BREAKEND_="breakEnd";shaka.ads.ServerSideAd=function(a,b){this.ad_=a;this.adProgressData_=null;this.video_=b};shaka.ads.ServerSideAd.prototype.setProgressData=function(a){this.adProgressData_=a};shaka.ads.ServerSideAd.prototype.getDuration=function(){return this.adProgressData_?this.adProgressData_.duration:-1};shaka.ads.ServerSideAd.prototype.getMinSuggestedDuration=function(){return this.getDuration()};
|
|
1271
1337
|
shaka.ads.ServerSideAd.prototype.getRemainingTime=function(){return this.adProgressData_?this.adProgressData_.duration-this.adProgressData_.currentTime:-1};shaka.ads.ServerSideAd.prototype.isPaused=function(){return this.video_.paused};shaka.ads.ServerSideAd.prototype.isSkippable=function(){return this.ad_.isSkippable()};shaka.ads.ServerSideAd.prototype.getTimeUntilSkippable=function(){var a=this.ad_.getSkipTimeOffset();a=this.getRemainingTime()-a;return Math.max(a,0)};
|
|
1272
1338
|
shaka.ads.ServerSideAd.prototype.canSkipNow=function(){return 0==this.getTimeUntilSkippable()};shaka.ads.ServerSideAd.prototype.skip=function(){this.video_.currentTime+=this.getRemainingTime()};shaka.ads.ServerSideAd.prototype.pause=function(){return this.video_.pause()};shaka.ads.ServerSideAd.prototype.play=function(){return this.video_.play()};shaka.ads.ServerSideAd.prototype.getVolume=function(){return this.video_.volume};
|
|
1273
1339
|
shaka.ads.ServerSideAd.prototype.setVolume=function(a){this.video_.volume=a};shaka.ads.ServerSideAd.prototype.isMuted=function(){return this.video_.muted};shaka.ads.ServerSideAd.prototype.isLinear=function(){return!0};shaka.ads.ServerSideAd.prototype.resize=function(a,b){};shaka.ads.ServerSideAd.prototype.setMuted=function(a){this.video_.muted=a};shaka.ads.ServerSideAd.prototype.getSequenceLength=function(){var a=this.ad_.getAdPodInfo();return null==a?1:a.getTotalAds()};
|
|
@@ -1294,20 +1360,24 @@ shaka.ads.ServerSideAdManager.prototype.onAdStart_=function(a){goog.asserts.asse
|
|
|
1294
1360
|
shaka.ads.ServerSideAdManager.prototype.onAdBreakEnded_=function(){this.adContainer_.removeAttribute("ad-active");var a=this.video_.currentTime;this.snapForwardTime_&&this.snapForwardTime_>a&&(this.video_.currentTime=this.snapForwardTime_,this.snapForwardTime_=null)};
|
|
1295
1361
|
shaka.ads.ServerSideAdManager.prototype.onLoaded_=function(a){var b=this,c=Date.now()/1E3-this.streamRequestStartTime_;this.onEvent_(new shaka.util.FakeEvent(shaka.ads.AdManager.ADS_LOADED,(new Map).set("loadTime",c)));a=a.getStreamData().url;this.streamPromise_.resolve(a);this.streamPromise_=null;this.isLiveContent_||this.eventManager_.listen(this.video_,"seeked",function(){b.checkForSnapback_()})};
|
|
1296
1362
|
shaka.ads.ServerSideAdManager.prototype.onError_=function(){this.backupUrl_.length?(shaka.log.warning("IMA stream request returned an error. Falling back to the backup asset uri."),this.streamPromise_.resolve(this.backupUrl_)):this.streamPromise_.reject("IMA Stream request returned an error and there was no backup asset uri provided.");this.streamPromise_=null};shaka.ads.ServerSideAdManager.prototype.onAdProgress_=function(a){this.adProgressData_=a.getStreamData().adProgressData;this.ad_&&this.ad_.setProgressData(this.adProgressData_)};
|
|
1297
|
-
shaka.ads.ServerSideAdManager.prototype.onCuePointsChanged_=function(a){var b=a.getStreamData();a=[];b=$jscomp.makeIterator(b.cuepoints);for(var c=b.next();!c.done;c=b.next())c=c.value,a.push({start:c.start,end:c.end});this.currentCuePoints_=a;this.onEvent_(new shaka.util.FakeEvent(shaka.ads.AdManager.CUEPOINTS_CHANGED,(new Map).set("cuepoints",a)))};shaka.ads.AdManager=function(){shaka.util.FakeEventTarget.call(this);this.ssAdManager_=this.csAdManager_=null;this.stats_=new shaka.ads.AdsStats;this.locale_=navigator.language;this.config_=null};$jscomp.inherits(shaka.ads.AdManager,shaka.util.FakeEventTarget);shaka.ads.AdManager.prototype.setLocale=function(a){this.locale_=a};shaka.ads.AdManager.prototype.configure=function(a){this.config_=a;this.csAdManager_&&this.csAdManager_.configure(this.config_);this.ssAdManager_&&this.ssAdManager_.configure(this.config_)};
|
|
1298
|
-
shaka.ads.AdManager.prototype.initClientSide=function(a,b,c){var d=this;if(!window.google||!google.ima||!google.ima.AdsLoader)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.ADS,shaka.util.Error.Code.CS_IMA_SDK_MISSING);this.csAdManager_&&this.csAdManager_.release();this.csAdManager_=new shaka.ads.ClientSideAdManager(a,b,this.locale_,c,function(e){
|
|
1299
|
-
|
|
1300
|
-
shaka.ads.AdManager.prototype.onAssetUnload=function(){this.csAdManager_&&this.csAdManager_.stop();this.ssAdManager_&&this.ssAdManager_.stop();this.dispatchEvent(new shaka.util.FakeEvent(shaka.ads.AdManager.AD_STOPPED));this.stats_=new shaka.ads.AdsStats};
|
|
1301
|
-
shaka.ads.AdManager.prototype.
|
|
1302
|
-
shaka.ads.AdManager.prototype.
|
|
1303
|
-
|
|
1363
|
+
shaka.ads.ServerSideAdManager.prototype.onCuePointsChanged_=function(a){var b=a.getStreamData();a=[];b=$jscomp.makeIterator(b.cuepoints);for(var c=b.next();!c.done;c=b.next())c=c.value,a.push({start:c.start,end:c.end});this.currentCuePoints_=a;this.onEvent_(new shaka.util.FakeEvent(shaka.ads.AdManager.CUEPOINTS_CHANGED,(new Map).set("cuepoints",a)))};shaka.ads.AdManager=function(){shaka.util.FakeEventTarget.call(this);this.ssAdManager_=this.mtAdManager_=this.csAdManager_=null;this.stats_=new shaka.ads.AdsStats;this.locale_=navigator.language;this.config_=null};$jscomp.inherits(shaka.ads.AdManager,shaka.util.FakeEventTarget);shaka.ads.AdManager.prototype.setLocale=function(a){this.locale_=a};shaka.ads.AdManager.prototype.configure=function(a){this.config_=a;this.csAdManager_&&this.csAdManager_.configure(this.config_);this.ssAdManager_&&this.ssAdManager_.configure(this.config_)};
|
|
1364
|
+
shaka.ads.AdManager.prototype.initClientSide=function(a,b,c){var d=this;if(!window.google||!google.ima||!google.ima.AdsLoader)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.ADS,shaka.util.Error.Code.CS_IMA_SDK_MISSING);this.csAdManager_&&this.csAdManager_.release();this.csAdManager_=new shaka.ads.ClientSideAdManager(a,b,this.locale_,c,function(e){return d.processAndDispatchEvent_(e)});goog.asserts.assert(this.config_,"Config must not be null!");this.csAdManager_.configure(this.config_)};
|
|
1365
|
+
shaka.ads.AdManager.prototype.release=function(){this.csAdManager_&&(this.csAdManager_.release(),this.csAdManager_=null);this.mtAdManager_&&(this.mtAdManager_.release(),this.mtAdManager_=null);this.ssAdManager_&&(this.ssAdManager_.release(),this.ssAdManager_=null);shaka.util.FakeEventTarget.prototype.release.call(this)};
|
|
1366
|
+
shaka.ads.AdManager.prototype.onAssetUnload=function(){this.csAdManager_&&this.csAdManager_.stop();this.mtAdManager_&&this.mtAdManager_.stop();this.ssAdManager_&&this.ssAdManager_.stop();this.dispatchEvent(new shaka.util.FakeEvent(shaka.ads.AdManager.AD_STOPPED));this.stats_=new shaka.ads.AdsStats};
|
|
1367
|
+
shaka.ads.AdManager.prototype.requestClientSideAds=function(a){if(!this.csAdManager_)throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.ADS,shaka.util.Error.Code.CS_AD_MANAGER_NOT_INITIALIZED);this.csAdManager_.requestAds(a)};
|
|
1368
|
+
shaka.ads.AdManager.prototype.updateClientSideAdsRenderingSettings=function(a){if(!this.csAdManager_)throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.ADS,shaka.util.Error.Code.CS_AD_MANAGER_NOT_INITIALIZED);this.csAdManager_.updateAdsRenderingSettings(a)};shaka.ads.AdManager.prototype.initMediaTailor=function(a,b,c){var d=this;this.mtAdManager_&&this.mtAdManager_.release();this.mtAdManager_=new shaka.ads.MediaTailorAdManager(a,b,c,function(e){return d.processAndDispatchEvent_(e)})};
|
|
1369
|
+
shaka.ads.AdManager.prototype.requestMediaTailorStream=function(a,b,c){c=void 0===c?"":c;if(!this.mtAdManager_)throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.ADS,shaka.util.Error.Code.MT_AD_MANAGER_NOT_INITIALIZED);return this.mtAdManager_.streamRequest(a,b,c)};
|
|
1370
|
+
shaka.ads.AdManager.prototype.initServerSide=function(a,b){var c=this;if(!window.google||!google.ima||!google.ima.dai)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.ADS,shaka.util.Error.Code.SS_IMA_SDK_MISSING);this.ssAdManager_&&this.ssAdManager_.release();this.ssAdManager_=new shaka.ads.ServerSideAdManager(a,b,this.locale_,function(d){return c.processAndDispatchEvent_(d)});goog.asserts.assert(this.config_,"Config must not be null!");this.ssAdManager_.configure(this.config_)};
|
|
1304
1371
|
shaka.ads.AdManager.prototype.requestServerSideStream=function(a,b){b=void 0===b?"":b;if(!this.ssAdManager_)throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.ADS,shaka.util.Error.Code.SS_AD_MANAGER_NOT_INITIALIZED);a.adTagParameters||(a.adTagParameters={});var c=a.adTagParameters;(c.mpt||c.mpv)&&shaka.log.alwaysWarn('You have attempted to set "mpt" and/or "mpv" parameters of the ad tag. Please note that those parameters are used for Shaka adoption tracking and will be overriden.');
|
|
1305
1372
|
a.adTagParameters.mpt="shaka-player";a.adTagParameters.mpv=shaka.Player.version;return this.ssAdManager_.streamRequest(a,b)};
|
|
1306
1373
|
shaka.ads.AdManager.prototype.replaceServerSideAdTagParameters=function(a){if(!this.ssAdManager_)throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.ADS,shaka.util.Error.Code.SS_AD_MANAGER_NOT_INITIALIZED);(a.mpt||a.mpv)&&shaka.log.alwaysWarn('You have attempted to set "mpt" and/or "mpv" parameters of the ad tag. Please note that those parameters are used for Shaka adoption tracking and will be overriden.');a.mpt="Shaka Player";a.mpv=shaka.Player.version;this.ssAdManager_.replaceAdTagParameters(a)};
|
|
1307
|
-
shaka.ads.AdManager.prototype.getServerSideCuePoints=function(){
|
|
1308
|
-
shaka.ads.AdManager.prototype.onDashTimedMetadata=function(a){if(this.ssAdManager_&&"urn:google:dai:2018"==a.schemeIdUri){var b=a.schemeIdUri,c=a.eventElement?a.eventElement.getAttribute("messageData"):null;this.ssAdManager_.onTimedMetadata(b,c,a.startTime)}};
|
|
1309
|
-
|
|
1310
|
-
|
|
1374
|
+
shaka.ads.AdManager.prototype.getServerSideCuePoints=function(){shaka.Deprecate.deprecateFeature(5,"AdManager","Please use getCuePoints function.");return this.getCuePoints()};shaka.ads.AdManager.prototype.getCuePoints=function(){var a=[];this.ssAdManager_&&(a=a.concat(this.ssAdManager_.getCuePoints()));this.mtAdManager_&&(a=a.concat(this.mtAdManager_.getCuePoints()));return a};shaka.ads.AdManager.prototype.getStats=function(){return this.stats_.getBlob()};
|
|
1375
|
+
shaka.ads.AdManager.prototype.onManifestUpdated=function(a){if(this.mtAdManager_)this.mtAdManager_.onManifestUpdated(a)};shaka.ads.AdManager.prototype.onDashTimedMetadata=function(a){if(this.ssAdManager_&&"urn:google:dai:2018"==a.schemeIdUri){var b=a.schemeIdUri,c=a.eventElement?a.eventElement.getAttribute("messageData"):null;this.ssAdManager_.onTimedMetadata(b,c,a.startTime)}};
|
|
1376
|
+
shaka.ads.AdManager.prototype.onHlsTimedMetadata=function(a,b){if(this.ssAdManager_)this.ssAdManager_.onTimedMetadata("ID3",a.data,b)};shaka.ads.AdManager.prototype.onCueMetadataChange=function(a){if(this.ssAdManager_)this.ssAdManager_.onCueMetadataChange(a)};
|
|
1377
|
+
shaka.ads.AdManager.prototype.processAndDispatchEvent_=function(a){if(a&&a.type)switch(a.type){case shaka.ads.AdManager.ADS_LOADED:this.stats_.addLoadTime(a.loadTime);break;case shaka.ads.AdManager.AD_STARTED:this.stats_.incrementStarted();break;case shaka.ads.AdManager.AD_COMPLETE:this.stats_.incrementPlayedCompletely();break;case shaka.ads.AdManager.AD_SKIPPED:this.stats_.incrementSkipped()}this.dispatchEvent(a)};goog.exportSymbol("shaka.ads.AdManager",shaka.ads.AdManager);
|
|
1378
|
+
goog.exportProperty(shaka.ads.AdManager.prototype,"onCueMetadataChange",shaka.ads.AdManager.prototype.onCueMetadataChange);goog.exportProperty(shaka.ads.AdManager.prototype,"onHlsTimedMetadata",shaka.ads.AdManager.prototype.onHlsTimedMetadata);goog.exportProperty(shaka.ads.AdManager.prototype,"onDashTimedMetadata",shaka.ads.AdManager.prototype.onDashTimedMetadata);goog.exportProperty(shaka.ads.AdManager.prototype,"onManifestUpdated",shaka.ads.AdManager.prototype.onManifestUpdated);
|
|
1379
|
+
goog.exportProperty(shaka.ads.AdManager.prototype,"getStats",shaka.ads.AdManager.prototype.getStats);goog.exportProperty(shaka.ads.AdManager.prototype,"getCuePoints",shaka.ads.AdManager.prototype.getCuePoints);goog.exportProperty(shaka.ads.AdManager.prototype,"getServerSideCuePoints",shaka.ads.AdManager.prototype.getServerSideCuePoints);goog.exportProperty(shaka.ads.AdManager.prototype,"replaceServerSideAdTagParameters",shaka.ads.AdManager.prototype.replaceServerSideAdTagParameters);
|
|
1380
|
+
goog.exportProperty(shaka.ads.AdManager.prototype,"requestServerSideStream",shaka.ads.AdManager.prototype.requestServerSideStream);goog.exportProperty(shaka.ads.AdManager.prototype,"initServerSide",shaka.ads.AdManager.prototype.initServerSide);goog.exportProperty(shaka.ads.AdManager.prototype,"requestMediaTailorStream",shaka.ads.AdManager.prototype.requestMediaTailorStream);goog.exportProperty(shaka.ads.AdManager.prototype,"initMediaTailor",shaka.ads.AdManager.prototype.initMediaTailor);
|
|
1311
1381
|
goog.exportProperty(shaka.ads.AdManager.prototype,"updateClientSideAdsRenderingSettings",shaka.ads.AdManager.prototype.updateClientSideAdsRenderingSettings);goog.exportProperty(shaka.ads.AdManager.prototype,"requestClientSideAds",shaka.ads.AdManager.prototype.requestClientSideAds);goog.exportProperty(shaka.ads.AdManager.prototype,"onAssetUnload",shaka.ads.AdManager.prototype.onAssetUnload);goog.exportProperty(shaka.ads.AdManager.prototype,"release",shaka.ads.AdManager.prototype.release);
|
|
1312
1382
|
goog.exportProperty(shaka.ads.AdManager.prototype,"initClientSide",shaka.ads.AdManager.prototype.initClientSide);goog.exportProperty(shaka.ads.AdManager.prototype,"configure",shaka.ads.AdManager.prototype.configure);goog.exportProperty(shaka.ads.AdManager.prototype,"setLocale",shaka.ads.AdManager.prototype.setLocale);shaka.ads.AdManager.ADS_LOADED="ads-loaded";goog.exportProperty(shaka.ads.AdManager,"ADS_LOADED",shaka.ads.AdManager.ADS_LOADED);shaka.ads.AdManager.AD_STARTED="ad-started";
|
|
1313
1383
|
goog.exportProperty(shaka.ads.AdManager,"AD_STARTED",shaka.ads.AdManager.AD_STARTED);shaka.ads.AdManager.AD_FIRST_QUARTILE="ad-first-quartile";goog.exportProperty(shaka.ads.AdManager,"AD_FIRST_QUARTILE",shaka.ads.AdManager.AD_FIRST_QUARTILE);shaka.ads.AdManager.AD_MIDPOINT="ad-midpoint";goog.exportProperty(shaka.ads.AdManager,"AD_MIDPOINT",shaka.ads.AdManager.AD_MIDPOINT);shaka.ads.AdManager.AD_THIRD_QUARTILE="ad-third-quartile";goog.exportProperty(shaka.ads.AdManager,"AD_THIRD_QUARTILE",shaka.ads.AdManager.AD_THIRD_QUARTILE);
|
|
@@ -1361,7 +1431,7 @@ shaka.cast.CastProxy.prototype.cast=function(){var a=this,b;return $jscomp.async
|
|
|
1361
1431
|
shaka.cast.CastProxy.prototype.changeReceiverId=function(a,b){b=void 0===b?!1:b;var c=this;return $jscomp.asyncExecutePromiseGeneratorProgram(function(d){if(1==d.nextAddress){if(a==c.receiverAppId_&&b==c.androidReceiverCompatible_)return d.return();c.receiverAppId_=a;c.androidReceiverCompatible_=b;c.sender_.forceDisconnect();return d.yield(c.sender_.destroy(),2)}c.sender_=null;c.sender_=new shaka.cast.CastSender(a,function(){return c.onCastStatusChanged_()},function(){return c.onFirstCastStateUpdate_()},
|
|
1362
1432
|
function(e,f){return c.onRemoteEvent_(e,f)},function(){return c.onResumeLocal_()},function(){return c.getInitState_()},b);c.sender_.init();d.jumpToEnd()})};
|
|
1363
1433
|
shaka.cast.CastProxy.prototype.init_=function(){var a=this;this.sender_.init();this.eventManager_=new shaka.util.EventManager;for(var b=$jscomp.makeIterator(shaka.cast.CastUtils.VideoEvents),c=b.next();!c.done;c=b.next())this.eventManager_.listen(this.localVideo_,c.value,function(f){return a.videoProxyLocalEvent_(f)});for(var d in shaka.util.FakeEvent.EventName)this.eventManager_.listen(this.localPlayer_,shaka.util.FakeEvent.EventName[d],function(f){return a.playerProxyLocalEvent_(f)});this.videoProxy_=
|
|
1364
|
-
{};b={};for(var e in this.localVideo_)b.$jscomp$loop$prop$k$
|
|
1434
|
+
{};b={};for(var e in this.localVideo_)b.$jscomp$loop$prop$k$772=e,Object.defineProperty(this.videoProxy_,b.$jscomp$loop$prop$k$772,{configurable:!1,enumerable:!0,get:function(f){return function(){return a.videoProxyGet_(f.$jscomp$loop$prop$k$772)}}(b),set:function(f){return function(g){a.videoProxySet_(f.$jscomp$loop$prop$k$772,g)}}(b)}),b={$jscomp$loop$prop$k$772:b.$jscomp$loop$prop$k$772};this.playerProxy_={};this.iterateOverPlayerMethods_(function(f,g){goog.asserts.assert(a.playerProxy_,"Must have player proxy!");
|
|
1365
1435
|
Object.defineProperty(a.playerProxy_,f,{configurable:!1,enumerable:!0,get:function(){return a.playerProxyGet_(f)}})});COMPILED&&this.mapCompiledToUncompiledPlayerMethodNames_();this.videoEventTarget_=new shaka.util.FakeEventTarget;this.videoEventTarget_.dispatchTarget=this.videoProxy_;this.playerEventTarget_=new shaka.util.FakeEventTarget;this.playerEventTarget_.dispatchTarget=this.playerProxy_};
|
|
1366
1436
|
shaka.cast.CastProxy.prototype.mapCompiledToUncompiledPlayerMethodNames_=function(){var a=this,b=new Map;this.iterateOverPlayerMethods_(function(c,d){b.has(d)?(d=b.get(d),c.length<d.length?a.compiledToExternNames_.set(c,d):a.compiledToExternNames_.set(d,c)):b.set(d,c)})};
|
|
1367
1437
|
shaka.cast.CastProxy.prototype.iterateOverPlayerMethods_=function(a){function b(k){return"constructor"==k||"function"!=typeof c[k]?!1:!d.has(k)}goog.asserts.assert(this.localPlayer_,"Must have player!");var c=this.localPlayer_,d=new Set;for(e in c)b(e)&&(d.add(e),a(e,c[e]));var e=Object.getPrototypeOf(c);for(var f=Object.getPrototypeOf({});e&&e!=f;){for(var g=$jscomp.makeIterator(Object.getOwnPropertyNames(e)),h=g.next();!h.done;h=g.next())h=h.value,b(h)&&(d.add(h),a(h,c[h]));e=Object.getPrototypeOf(e)}};
|
|
@@ -1412,8 +1482,8 @@ shaka.cast.CastReceiver.prototype.sendMediaStatus_=function(a,b){a=void 0===a?0:
|
|
|
1412
1482
|
goog.exportProperty(shaka.cast.CastReceiver.prototype,"destroy",shaka.cast.CastReceiver.prototype.destroy);goog.exportProperty(shaka.cast.CastReceiver.prototype,"setContentArtist",shaka.cast.CastReceiver.prototype.setContentArtist);goog.exportProperty(shaka.cast.CastReceiver.prototype,"setContentImage",shaka.cast.CastReceiver.prototype.setContentImage);goog.exportProperty(shaka.cast.CastReceiver.prototype,"setContentTitle",shaka.cast.CastReceiver.prototype.setContentTitle);
|
|
1413
1483
|
goog.exportProperty(shaka.cast.CastReceiver.prototype,"clearContentMetadata",shaka.cast.CastReceiver.prototype.clearContentMetadata);goog.exportProperty(shaka.cast.CastReceiver.prototype,"setContentMetadata",shaka.cast.CastReceiver.prototype.setContentMetadata);goog.exportProperty(shaka.cast.CastReceiver.prototype,"isIdle",shaka.cast.CastReceiver.prototype.isIdle);goog.exportProperty(shaka.cast.CastReceiver.prototype,"isConnected",shaka.cast.CastReceiver.prototype.isConnected);
|
|
1414
1484
|
shaka.cast.CastReceiver.POLL_INTERVAL=.5;shaka.cast.CastReceiver.IDLE_INTERVAL=5;shaka.cast.CastReceiver.PLAY_STATE={IDLE:"IDLE",PLAYING:"PLAYING",BUFFERING:"BUFFERING",PAUSED:"PAUSED"};shaka.cea.CeaUtils=function(){};
|
|
1415
|
-
shaka.cea.CeaUtils.getParsedCaption=function(a,b,c,d,e){if(d>=e)return null;for(var f=-1,g=-1,h=0;h<c.length;h++)if(c[h].some(function(
|
|
1416
|
-
0;t<p.length;t++)if(null!=p[t]&&""!==p[t].getChar().trim()){q=t;break}for(t=p.length-1;0<=t;t--)if(null!=p[t]&&""!==p[t].getChar().trim()){r=t;break}if(-1===q||-1===r)p=shaka.cea.CeaUtils.createLineBreakCue(d,e),a.nestedCues.push(p);else{for(;q<=r;q++)if(t=p[q]){var
|
|
1485
|
+
shaka.cea.CeaUtils.getParsedCaption=function(a,b,c,d,e){if(d>=e)return null;for(var f=-1,g=-1,h=0;h<c.length;h++)if(c[h].some(function(y){return null!=y&&""!=y.getChar().trim()})){f=h;break}for(h=c.length-1;0<=h;h--)if(c[h].some(function(y){return null!=y&&""!=y.getChar().trim()})){g=h;break}if(-1===f||-1===g)return null;for(var k=h=!1,l=shaka.cea.CeaUtils.DEFAULT_TXT_COLOR,m=shaka.cea.CeaUtils.DEFAULT_BG_COLOR,n=shaka.cea.CeaUtils.createStyledCue(d,e,h,k,l,m);f<=g;f++){for(var p=c[f],q=-1,r=-1,t=
|
|
1486
|
+
0;t<p.length;t++)if(null!=p[t]&&""!==p[t].getChar().trim()){q=t;break}for(t=p.length-1;0<=t;t--)if(null!=p[t]&&""!==p[t].getChar().trim()){r=t;break}if(-1===q||-1===r)p=shaka.cea.CeaUtils.createLineBreakCue(d,e),a.nestedCues.push(p);else{for(;q<=r;q++)if(t=p[q]){var v=t.isUnderlined(),u=t.isItalicized(),w=t.getTextColor(),x=t.getBackgroundColor();if(v!=h||u!=k||w!=l||x!=m)n.payload&&a.nestedCues.push(n),n=shaka.cea.CeaUtils.createStyledCue(d,e,v,u,w,x),h=v,k=u,l=w,m=x;n.payload+=t.getChar()}else n.payload+=
|
|
1417
1487
|
" ";n.payload&&a.nestedCues.push(n);f!==g&&(n=shaka.cea.CeaUtils.createLineBreakCue(d,e),a.nestedCues.push(n));n=shaka.cea.CeaUtils.createStyledCue(d,e,h,k,l,m)}}return a.nestedCues.length?{cue:a,stream:b}:null};shaka.cea.CeaUtils.createStyledCue=function(a,b,c,d,e,f){a=new shaka.text.Cue(a,b,"");c&&a.textDecoration.push(shaka.text.Cue.textDecoration.UNDERLINE);d&&(a.fontStyle=shaka.text.Cue.fontStyle.ITALIC);a.color=e;a.backgroundColor=f;return a};
|
|
1418
1488
|
shaka.cea.CeaUtils.createLineBreakCue=function(a,b){a=new shaka.text.Cue(a,b,"");a.lineBreak=!0;return a};shaka.cea.CeaUtils.StyledChar=function(a,b,c,d,e){this.character_=a;this.underline_=b;this.italics_=c;this.backgroundColor_=d;this.textColor_=e};shaka.cea.CeaUtils.StyledChar.prototype.getChar=function(){return this.character_};shaka.cea.CeaUtils.StyledChar.prototype.isUnderlined=function(){return this.underline_};shaka.cea.CeaUtils.StyledChar.prototype.isItalicized=function(){return this.italics_};
|
|
1419
1489
|
shaka.cea.CeaUtils.StyledChar.prototype.getBackgroundColor=function(){return this.backgroundColor_};shaka.cea.CeaUtils.StyledChar.prototype.getTextColor=function(){return this.textColor_};shaka.cea.CeaUtils.DEFAULT_BG_COLOR="black";shaka.cea.CeaUtils.DEFAULT_TXT_COLOR="white";shaka.cea.CeaUtils.H264_NALU_TYPE_SEI=6;shaka.cea.CeaUtils.H265_PREFIX_NALU_TYPE_SEI=39;shaka.cea.CeaUtils.H265_SUFFIX_NALU_TYPE_SEI=40;shaka.cea.CeaUtils.DEFAULT_TIMESCALE_VALUE=9E4;shaka.cea.Cea608Memory=function(a,b){this.rows_=[];this.row_=1;this.scrollRows_=0;this.fieldNum_=a;this.channelNum_=b;this.italics_=this.underline_=!1;this.textColor_=shaka.cea.CeaUtils.DEFAULT_TXT_COLOR;this.backgroundColor_=shaka.cea.CeaUtils.DEFAULT_BG_COLOR;this.reset()};
|
|
@@ -1493,11 +1563,11 @@ shaka.cea.Mp4CeaParser.prototype.parseMdat_=function(a,b,c,d,e,f,g,h){var k=shak
|
|
|
1493
1563
|
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;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-=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)}};
|
|
1494
1564
|
shaka.cea.Mp4CeaParser.prototype.setBitstreamFormat_=function(a){a in shaka.cea.Mp4CeaParser.CodecBitstreamMap_&&(this.bitstreamFormat_=shaka.cea.Mp4CeaParser.CodecBitstreamMap_[a])};goog.exportSymbol("shaka.cea.Mp4CeaParser",shaka.cea.Mp4CeaParser);shaka.cea.Mp4CeaParser.BitstreamFormat={UNKNOWN:0,H264:1,H265:2};
|
|
1495
1565
|
shaka.cea.Mp4CeaParser.CodecBitstreamMap_={avc1:shaka.cea.Mp4CeaParser.BitstreamFormat.H264,avc3:shaka.cea.Mp4CeaParser.BitstreamFormat.H264,hev1:shaka.cea.Mp4CeaParser.BitstreamFormat.H265,hvc1:shaka.cea.Mp4CeaParser.BitstreamFormat.H265,dvh1:shaka.cea.Mp4CeaParser.BitstreamFormat.H265,dvhe:shaka.cea.Mp4CeaParser.BitstreamFormat.H265};shaka.media.ClosedCaptionParser.registerParser("video/mp4",function(){return new shaka.cea.Mp4CeaParser});shaka.cea.TsCeaParser=function(){this.seiProcessor_=new shaka.cea.SeiProcessor};shaka.cea.TsCeaParser.prototype.init=function(a){};
|
|
1496
|
-
shaka.cea.TsCeaParser.prototype.parse=function(a){var b=shaka.cea.CeaUtils,c=[];a=shaka.util.BufferUtils.toUint8(a);if(!shaka.util.TsParser.probe(a))return c;a=(new shaka.util.TsParser).parse(a).
|
|
1497
|
-
goog.exportSymbol("shaka.cea.TsCeaParser",shaka.cea.TsCeaParser);shaka.media.ClosedCaptionParser.registerParser("video/mp2t",function(){return new shaka.cea.TsCeaParser});shaka.dash={};shaka.dash.ContentProtection=function(){};
|
|
1498
|
-
shaka.dash.ContentProtection.parseFromAdaptationSet=function(a,b,c){var d=shaka.dash.ContentProtection,e=shaka.util.ManifestParserUtils,f=d.parseElements_(a),g=null;a=[];var h=[],k=new Set(f.map(function(
|
|
1499
|
-
"Init data must be null or non-empty."),g=
|
|
1500
|
-
defaultInit:g,drmInfos:a,firstRepresentation:!0}};
|
|
1566
|
+
shaka.cea.TsCeaParser.prototype.parse=function(a){var b=shaka.cea.CeaUtils,c=[];a=shaka.util.BufferUtils.toUint8(a);if(!shaka.util.TsParser.probe(a))return c;a=(new shaka.util.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);for(d=b.next();!d.done;d=b.next())if(d=d.value,a.includes(d.type)&&null!=
|
|
1567
|
+
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.dash={};shaka.dash.ContentProtection=function(){};
|
|
1568
|
+
shaka.dash.ContentProtection.parseFromAdaptationSet=function(a,b,c){var d=shaka.dash.ContentProtection,e=shaka.util.ManifestParserUtils,f=d.parseElements_(a),g=null;a=[];var h=[],k=null,l=new Set(f.map(function(m){return m.keyId}));l.delete(null);if(1<l.size)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.DASH_CONFLICTING_KEY_IDS);if(!b){h=f.filter(function(m){return m.schemeUri==d.Aes128Protection_});if(1<h.length)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
|
|
1569
|
+
shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.DASH_CONFLICTING_AES_128);h.length&&(k=d.parseAes128_(h[0]));h=f.filter(function(m){return m.schemeUri==d.MP4Protection_?(goog.asserts.assert(!m.init||m.init.length,"Init data must be null or non-empty."),g=m.init||g,!1):m.schemeUri!=d.Aes128Protection_});h.length&&(a=d.convertElements_(g,h,c,l),0==a.length&&(a=[e.createDrmInfo("",g)]))}if(f.length&&!k&&(b||!h.length))for(a=[],b=$jscomp.makeIterator(Object.values(c)),c=b.next();!c.done;c=b.next())c=
|
|
1570
|
+
c.value,"org.w3.clearkey"!=c&&(c=e.createDrmInfo(c,g),a.push(c));if(e=Array.from(l)[0]||null)for(l=$jscomp.makeIterator(a),b=l.next();!b.done;b=l.next())for(b=$jscomp.makeIterator(b.value.initData),c=b.next();!c.done;c=b.next())c.value.keyId=e;return{defaultKeyId:e,defaultInit:g,drmInfos:a,aes128Info:k,firstRepresentation:!0}};
|
|
1501
1571
|
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,
|
|
1502
1572
|
shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.DASH_NO_COMMON_KEY_SYSTEM);return e.defaultKeyId||b.defaultKeyId};shaka.dash.ContentProtection.getWidevineLicenseUrl=function(a){var b=shaka.util.XmlUtils.findChildNS(a.node,shaka.dash.ContentProtection.DashIfNamespaceUri_,"Laurl");return b&&b.textContent?b.textContent:(a=shaka.util.XmlUtils.findChildNS(a.node,"urn:microsoft","laurl"))?a.getAttribute("licenseUrl")||"":""};
|
|
1503
1573
|
shaka.dash.ContentProtection.getClearKeyLicenseUrl=function(a){var b=shaka.util.XmlUtils.findChildNS(a.node,shaka.dash.ContentProtection.DashIfNamespaceUri_,"Laurl");return b&&b.textContent?b.textContent:(a=shaka.util.XmlUtils.findChildNS(a.node,shaka.dash.ContentProtection.ClearKeyNamespaceUri_,"Laurl"))&&"EME-1.0"===a.getAttribute("Lic_type")&&a.textContent?a.textContent:""};
|
|
@@ -1512,16 +1582,20 @@ shaka.dash.ContentProtection.convertElements_=function(a,b,c,d){var e=shaka.dash
|
|
|
1512
1582
|
a||m||n);if(l=g.get(l))m.licenseServerUri=l(k);h.push(m)}}return h};shaka.dash.ContentProtection.parseElements_=function(a){var b=[];a=$jscomp.makeIterator(a);for(var c=a.next();!c.done;c=a.next())(c=shaka.dash.ContentProtection.parseElement_(c.value))&&b.push(c);return b};
|
|
1513
1583
|
shaka.dash.ContentProtection.parseElement_=function(a){var b=shaka.dash.ContentProtection.CencNamespaceUri_,c=a.getAttribute("schemeIdUri"),d=shaka.util.XmlUtils.getAttributeNS(a,b,"default_KID");b=shaka.util.XmlUtils.findChildrenNS(a,b,"pssh").map(shaka.util.XmlUtils.getContents);if(!c)return shaka.log.error("Missing required schemeIdUri attribute on","ContentProtection element",a),null;c=c.toLowerCase();if(d&&(d=d.replace(/-/g,"").toLowerCase(),d.includes(" ")))throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
|
|
1514
1584
|
shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.DASH_MULTIPLE_KEY_IDS_NOT_SUPPORTED);var e=[];try{e=b.map(function(f){return{initDataType:"cenc",initData:shaka.util.Uint8ArrayUtils.fromBase64(f),keyId:null}})}catch(f){throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.DASH_PSSH_BAD_ENCODING);}return{node:a,schemeUri:c,keyId:d,init:0<e.length?e:null}};
|
|
1585
|
+
shaka.dash.ContentProtection.parseAes128_=function(a){if(!window.crypto||!window.crypto.subtle)throw shaka.log.alwaysWarn("Web Crypto API is not available to decrypt AES-128. (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 b=shaka.util.XmlUtils.findChildNS(a.node,"urn:mpeg:dash:schema:sea:2012","SegmentEncryption");if(!b)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
|
|
1586
|
+
shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.DASH_UNSUPPORTED_AES_128);if("urn:mpeg:dash:sea:aes128-cbc:2013"!=b.getAttribute("schemeIdUri"))throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.DASH_UNSUPPORTED_AES_128);b=shaka.util.XmlUtils.findChildNS(a.node,"urn:mpeg:dash:schema:sea:2012","CryptoPeriod");if(!b)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.DASH_UNSUPPORTED_AES_128);
|
|
1587
|
+
a=b.getAttribute("IV");b=b.getAttribute("keyUriTemplate");if(!a||!b)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.DASH_UNSUPPORTED_AES_128);a=shaka.util.Uint8ArrayUtils.fromHex(a.substr(2));if(16!=a.byteLength)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.AES_128_INVALID_IV_LENGTH);return{keyUri:b,iv:a}};
|
|
1515
1588
|
shaka.dash.ContentProtection.PLAYREADY_RECORD_TYPES={RIGHTS_MANAGEMENT:1,RESERVED:2,EMBEDDED_LICENSE:3};
|
|
1516
1589
|
shaka.dash.ContentProtection.licenseUrlParsers_=(new Map).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",shaka.dash.ContentProtection.getPlayReadyLicenseUrl).set("org.w3.clearkey",
|
|
1517
|
-
shaka.dash.ContentProtection.getClearKeyLicenseUrl);shaka.dash.ContentProtection.MP4Protection_="urn:mpeg:dash:mp4protection:2011";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";
|
|
1590
|
+
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";
|
|
1591
|
+
shaka.dash.ContentProtection.DashIfNamespaceUri_="https://dashif.org/CPS";shaka.dash.MpdUtils=function(){};
|
|
1518
1592
|
shaka.dash.MpdUtils.fillUriTemplate=function(a,b,c,d,e){var f={RepresentationID:b,Number:c,Bandwidth:d,Time:e};return a.replace(/\$(RepresentationID|Number|Bandwidth|Time)?(?:%0([0-9]+)([diouxX]))?\$/g,function(g,h,k,l){if("$$"==g)return"$";var m=f[h];goog.asserts.assert(void 0!==m,"Unrecognized identifier");if(null==m)return shaka.log.warning("URL template does not have an available substitution for ",'identifier "'+h+'":',a),g;"RepresentationID"==h&&k&&(shaka.log.warning("URL template should not contain a width specifier for identifier",'"RepresentationID":',
|
|
1519
|
-
a),k=void 0);"Time"==h&&(goog.asserts.assert("number"==typeof m,"Time value should be a number!")
|
|
1520
|
-
k-g.length)+1).join("0")+g})};
|
|
1521
|
-
shaka.dash.MpdUtils.createTimeline=function(a,b,c,d){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");var e=shaka.util.XmlUtils;a=e.findChildren(a,"S");for(var f=[],g=-c,h=0;h<a.length;++h){var k=a[h],l=a[h+1],m=e.parseAttr(k,"t",e.parseNonNegativeInt),n=e.parseAttr(k,"d",e.parseNonNegativeInt),p=e.parseAttr(k,"r",e.parseInt);null!=m&&(m-=c);if(!n){shaka.log.warning('"S" element must have a duration:',
|
|
1522
|
-
k);break}m=null!=m?m:g;p=p||0;if(0>p)if(l){l=e.parseAttr(l,"t",e.parseNonNegativeInt);if(null==l){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.',k);break}else if(m>=l){shaka.log.warning('An "S" element cannot have a negative repeatif its start ','time exceeds the next "S" element\'s start time:','ignoring the remaining "S" elements.',k);break}p=
|
|
1523
|
-
d){shaka.log.warning('The last "S" element cannot have a negative repeat',"if the Period has an infinite duration:",'ignoring the last "S" element.',k);break}else if(m/b>=d){shaka.log.warning('The last "S" element cannot have a negative repeat',"if its start time exceeds the Period's duration:",'igoring the last "S" element.',k);break}p=Math.ceil((d*b-m)/n)-1}0<f.length&&m!=g&&(Math.abs((m-g)/b)>=shaka.util.ManifestParserUtils.GAP_OVERLAP_TOLERANCE_SECONDS&&
|
|
1524
|
-
"the content may have errors in it.",k),f[f.length-1].end=m/b);for(k=0;k<=p;++k)g=m+n,f.push({start:m/b,end:g/b,unscaledStart:m}),m=g}return f};
|
|
1593
|
+
a),k=void 0);"Time"==h&&"bigint"!=typeof m&&(goog.asserts.assert("number"==typeof m,"Time value should be a number or bigint!"),.2<=Math.abs(m-Math.round(m))&&shaka.log.alwaysWarn("Calculated $Time$ values must be close to integers"),m=Math.round(m));switch(l){case void 0:case "d":case "i":case "u":g=m.toString();break;case "o":g=m.toString(8);break;case "x":g=m.toString(16);break;case "X":g=m.toString(16).toUpperCase();break;default:goog.asserts.assert(!1,"Unhandled format specifier"),g=m.toString()}k=
|
|
1594
|
+
window.parseInt(k,10)||1;return Array(Math.max(0,k-g.length)+1).join("0")+g})};
|
|
1595
|
+
shaka.dash.MpdUtils.createTimeline=function(a,b,c,d){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");var e=shaka.util.XmlUtils;a=e.findChildren(a,"S");for(var f=[],g=-c,h=0;h<a.length;++h){var k=a[h],l=a[h+1],m=e.parseAttr(k,"t",e.parseNonNegativeInt),n=e.parseAttr(k,"d",e.parseNonNegativeInt),p=e.parseAttr(k,"r",e.parseInt);null!=m&&(m-=c);if(!n){shaka.log.warning('"S" element must have a duration:',
|
|
1596
|
+
'ignoring the remaining "S" elements.',k);break}m=null!=m?m:g;p=p||0;if(0>p)if(l){l=e.parseAttr(l,"t",e.parseNonNegativeInt);if(null==l){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.',k);break}else if(m>=l){shaka.log.warning('An "S" element cannot have a negative repeatif its start ','time exceeds the next "S" element\'s start time:','ignoring the remaining "S" elements.',k);break}p=
|
|
1597
|
+
Math.ceil((l-m)/n)-1}else{if(Infinity==d){shaka.log.warning('The last "S" element cannot have a negative repeat',"if the Period has an infinite duration:",'ignoring the last "S" element.',k);break}else if(m/b>=d){shaka.log.warning('The last "S" element cannot have a negative repeat',"if its start time exceeds the Period's duration:",'igoring the last "S" element.',k);break}p=Math.ceil((d*b-m)/n)-1}0<f.length&&m!=g&&(Math.abs((m-g)/b)>=shaka.util.ManifestParserUtils.GAP_OVERLAP_TOLERANCE_SECONDS&&
|
|
1598
|
+
shaka.log.warning("SegmentTimeline contains a large gap/overlap:","the content may have errors in it.",k),f[f.length-1].end=m/b);for(k=0;k<=p;++k)g=m+n,f.push({start:m/b,end:g/b,unscaledStart:m}),m=g}return f};
|
|
1525
1599
|
shaka.dash.MpdUtils.parseSegmentInfo=function(a,b){goog.asserts.assert(b(a.representation),"There must be at least one element of the given type.");var c=shaka.dash.MpdUtils,d=shaka.util.XmlUtils,e=c.inheritAttribute(a,b,"timescale"),f=1;e&&(f=d.parsePositiveInt(e)||1);var g=c.inheritAttribute(a,b,"duration");e=d.parsePositiveInt(g||"");a.representation.contentType==shaka.util.ManifestParserUtils.ContentType.IMAGE&&(e=d.parseFloat(g||""));e&&(e/=f);var h=c.inheritAttribute(a,b,"startNumber");g=Number(c.inheritAttribute(a,
|
|
1526
1600
|
b,"presentationTimeOffset"))||0;d=d.parseNonNegativeInt(h||"");if(null==h||null==d)d=1;b=c.inheritChild(a,b,"SegmentTimeline");h=null;b&&(h=c.createTimeline(b,f,g,a.periodInfo.duration||Infinity));return{timescale:f,segmentDuration:e,startNumber:d,scaledPresentationTimeOffset:g/f||0,unscaledPresentationTimeOffset:g,timeline:h}};
|
|
1527
1601
|
shaka.dash.MpdUtils.inheritAttribute=function(a,b,c){var d=shaka.util.Functional;goog.asserts.assert(b(a.representation),"There must be at least one element of the given type");return[b(a.representation),b(a.adaptationSet),b(a.period)].filter(d.isNotNull).map(function(e){return e.getAttribute(c)}).reduce(function(e,f){return e||f})};
|
|
@@ -1553,11 +1627,12 @@ shaka.media.WebmSegmentIndexParser.parseCues_=function(a,b,c,d,e,f,g,h,k){var l=
|
|
|
1553
1627
|
shaka.media.WebmSegmentIndexParser.parseCuePoint_=function(a){var b=a.createParser();a=b.parseElement();if(a.id!=shaka.media.WebmSegmentIndexParser.CUE_TIME_ID)throw shaka.log.warning("Not a CueTime element."),new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MEDIA,shaka.util.Error.Code.WEBM_CUE_TIME_ELEMENT_MISSING);a=a.getUint();b=b.parseElement();if(b.id!=shaka.media.WebmSegmentIndexParser.CUE_TRACK_POSITIONS_ID)throw shaka.log.warning("Not a CueTrackPositions element."),
|
|
1554
1628
|
new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MEDIA,shaka.util.Error.Code.WEBM_CUE_TRACK_POSITIONS_ELEMENT_MISSING);b=b.createParser();for(var c=0;b.hasMoreData();){var d=b.parseElement();if(d.id==shaka.media.WebmSegmentIndexParser.CUE_CLUSTER_POSITION){c=d.getUint();break}}return{unscaledTime:a,relativeOffset:c}};shaka.media.WebmSegmentIndexParser.EBML_ID=440786851;shaka.media.WebmSegmentIndexParser.SEGMENT_ID=408125543;
|
|
1555
1629
|
shaka.media.WebmSegmentIndexParser.INFO_ID=357149030;shaka.media.WebmSegmentIndexParser.TIMECODE_SCALE_ID=2807729;shaka.media.WebmSegmentIndexParser.DURATION_ID=17545;shaka.media.WebmSegmentIndexParser.CUES_ID=475249515;shaka.media.WebmSegmentIndexParser.CUE_POINT_ID=187;shaka.media.WebmSegmentIndexParser.CUE_TIME_ID=179;shaka.media.WebmSegmentIndexParser.CUE_TRACK_POSITIONS_ID=183;shaka.media.WebmSegmentIndexParser.CUE_CLUSTER_POSITION=241;shaka.dash.SegmentBase=function(){};
|
|
1556
|
-
shaka.dash.SegmentBase.createInitSegment=function(a,b){var
|
|
1557
|
-
|
|
1558
|
-
|
|
1559
|
-
|
|
1560
|
-
|
|
1630
|
+
shaka.dash.SegmentBase.createInitSegment=function(a,b,c){var d=shaka.util.XmlUtils,e=shaka.util.ManifestParserUtils;b=shaka.dash.MpdUtils.inheritChild(a,b,"Initialization");if(!b)return null;var f=a.representation.baseUris,g=b.getAttribute("sourceURL");g&&(f=e.resolveUris(a.representation.baseUris,[g]));e=0;g=null;if(d=d.parseAttr(b,"range",d.parseRange))e=d.start,g=d.end;a=shaka.dash.SegmentBase.createQualityInfo(a);return new shaka.media.InitSegmentReference(function(){return f},e,g,a,null,null,
|
|
1631
|
+
c)};
|
|
1632
|
+
shaka.dash.SegmentBase.createStreamInfo=function(a,b,c){goog.asserts.assert(a.representation.segmentBase,"Should only be called with SegmentBase");var d=shaka.dash.MpdUtils,e=shaka.dash.SegmentBase,f=shaka.util.XmlUtils,g=Number(d.inheritAttribute(a,e.fromInheritance_,"presentationTimeOffset"))||0;d=d.inheritAttribute(a,e.fromInheritance_,"timescale");var h=1;d&&(h=f.parsePositiveInt(d)||1);var k=g/h||0,l=e.createInitSegment(a,e.fromInheritance_,c);e.checkSegmentIndexRangeSupport_(a,l);var m=shaka.util.ObjectUtils.shallowCloneObject(a);
|
|
1633
|
+
return{generateSegmentIndex:function(){return e.generateSegmentIndex_(m,b,l,k)}}};
|
|
1634
|
+
shaka.dash.SegmentBase.generateSegmentIndexFromUris=function(a,b,c,d,e,f,g){var h,k,l,m,n,p,q,r,t,v,u,w,x,y,z;return $jscomp.asyncExecutePromiseGeneratorProgram(function(A){if(1==A.nextAddress)return h=a.presentationTimeline,k=!a.dynamic||!a.periodInfo.isLastPeriod,l=a.periodInfo.start,m=a.periodInfo.duration,n=a.representation.mimeType.split("/")[1],p=b,q=null,r=[p(d,e,f,!1),"webm"==n?p(c.getUris(),c.startByte,c.endByte,!0):null],p=null,A.yield(Promise.all(r),2);t=A.yieldResult;v=t[0];u=t[1]||null;
|
|
1635
|
+
w=null;x=l-g;y=l;z=m?l+m:Infinity;"mp4"==n?w=shaka.media.Mp4SegmentIndexParser.parse(v,e,d,c,x,y,z):(goog.asserts.assert(u,"WebM requires init data"),w=shaka.media.WebmSegmentIndexParser.parse(v,u,d,c,x,y,z));h.notifySegments(w);goog.asserts.assert(!q,"Should not call generateSegmentIndex twice");q=new shaka.media.SegmentIndex(w);k&&q.fit(y,z,!0);return A.return(q)})};shaka.dash.SegmentBase.fromInheritance_=function(a){return a.segmentBase};
|
|
1561
1636
|
shaka.dash.SegmentBase.computeIndexRange_=function(a){var b=shaka.dash.MpdUtils,c=shaka.dash.SegmentBase,d=shaka.util.XmlUtils,e=b.inheritChild(a,c.fromInheritance_,"RepresentationIndex");a=b.inheritAttribute(a,c.fromInheritance_,"indexRange");a=d.parseRange(a||"");e&&(a=d.parseAttr(e,"range",d.parseRange,a));return a};
|
|
1562
1637
|
shaka.dash.SegmentBase.computeIndexUris_=function(a){var b=shaka.util.ManifestParserUtils,c=shaka.dash.MpdUtils.inheritChild(a,shaka.dash.SegmentBase.fromInheritance_,"RepresentationIndex"),d=a.representation.baseUris;c&&(c=c.getAttribute("sourceURL"))&&(d=b.resolveUris(a.representation.baseUris,[c]));return d};
|
|
1563
1638
|
shaka.dash.SegmentBase.checkSegmentIndexRangeSupport_=function(a,b){var c=shaka.dash.SegmentBase;c.checkSegmentIndexSupport(a,b);if(!c.computeIndexRange_(a))throw shaka.log.error("SegmentBase does not contain sufficient segment information:","the SegmentBase does not contain @indexRange","or a RepresentationIndex element.",a.representation),new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.DASH_NO_SEGMENT_INFO);};
|
|
@@ -1565,54 +1640,51 @@ shaka.dash.SegmentBase.checkSegmentIndexSupport=function(a,b){var c=shaka.util.M
|
|
|
1565
1640
|
"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);};
|
|
1566
1641
|
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)};
|
|
1567
1642
|
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}};shaka.dash.SegmentList=function(){};
|
|
1568
|
-
shaka.dash.SegmentList.createStreamInfo=function(a,b){goog.asserts.assert(a.representation.segmentList,"Should only be called with SegmentList");var
|
|
1569
|
-
e,
|
|
1643
|
+
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[a.period.id+","+a.representation.id])&&(g=h.segmentIndex);var k=d.createSegmentReferences_(a.periodInfo.start,a.periodInfo.duration,f.startNumber,
|
|
1644
|
+
a.representation.baseUris,f,e,c);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)}}};shaka.dash.SegmentList.fromInheritance_=function(a){return a.segmentList};
|
|
1570
1645
|
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,
|
|
1571
1646
|
mediaSegments:d}};
|
|
1572
1647
|
shaka.dash.SegmentList.checkSegmentListInfo_=function(a,b){if(!b.segmentDuration&&!b.timeline&&1<b.mediaSegments.length)throw shaka.log.warning("SegmentList does not contain sufficient segment information:","the SegmentList specifies multiple segments,","but does not specify a segment duration or timeline.",a.representation),new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.DASH_NO_SEGMENT_INFO);if(!b.segmentDuration&&!a.periodInfo.duration&&
|
|
1573
1648
|
!b.timeline&&1==b.mediaSegments.length)throw shaka.log.warning("SegmentList does not contain sufficient segment information:","the SegmentList specifies one segment,","but does not specify a segment duration, period duration,","or timeline.",a.representation),new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.DASH_NO_SEGMENT_INFO);if(b.timeline&&0==b.timeline.length)throw shaka.log.warning("SegmentList does not contain sufficient segment information:",
|
|
1574
1649
|
"the SegmentList has an empty timeline.",a.representation),new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.DASH_NO_SEGMENT_INFO);};
|
|
1575
|
-
shaka.dash.SegmentList.createSegmentReferences_=function(a,b,c,d,e,f){var
|
|
1576
|
-
$jscomp$loop$prop$segment$
|
|
1577
|
-
return
|
|
1650
|
+
shaka.dash.SegmentList.createSegmentReferences_=function(a,b,c,d,e,f,g){var h=shaka.util.ManifestParserUtils;c=e.mediaSegments.length;e.timeline&&e.timeline.length!=e.mediaSegments.length&&(c=Math.min(e.timeline.length,e.mediaSegments.length),shaka.log.warning("The number of items in the segment timeline and the number of ","segment URLs do not match, truncating",e.mediaSegments.length,"to",c));for(var k=a-e.scaledPresentationTimeOffset,l=b?a+b:Infinity,m=[],n=e.startTime,p={},q=0;q<c;p={$jscomp$loop$prop$uris$774:p.$jscomp$loop$prop$uris$774,
|
|
1651
|
+
$jscomp$loop$prop$segment$775:p.$jscomp$loop$prop$segment$775},q++){p.$jscomp$loop$prop$segment$775=e.mediaSegments[q];var r=void 0;null!=e.segmentDuration?r=n+e.segmentDuration:e.timeline?r=e.timeline[q].end:(goog.asserts.assert(1==e.mediaSegments.length&&b,"There should be exactly one segment with a Period duration."),r=n+b);p.$jscomp$loop$prop$uris$774=null;var t=function(v){return function(){null==v.$jscomp$loop$prop$uris$774&&(v.$jscomp$loop$prop$uris$774=h.resolveUris(d,[v.$jscomp$loop$prop$segment$775.mediaUri]));
|
|
1652
|
+
return v.$jscomp$loop$prop$uris$774}}(p);m.push(new shaka.media.SegmentReference(a+n,a+r,t,p.$jscomp$loop$prop$segment$775.start,p.$jscomp$loop$prop$segment$775.end,f,k,a,l,[],"",null,null,shaka.media.SegmentReference.Status.AVAILABLE,g));n=r}return m};
|
|
1578
1653
|
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.XmlUtils;return b.map(function(d){return c.findChildren(d,"SegmentURL")}).reduce(function(d,e){return 0<d.length?d:e}).map(function(d){d.getAttribute("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."));
|
|
1579
1654
|
var e=d.getAttribute("media");d=c.parseAttr(d,"mediaRange",c.parseRange,{start:0,end:null});return{mediaUri:e,start:d.start,end:d.end}})};shaka.dash.SegmentTemplate=function(){};
|
|
1580
|
-
shaka.dash.SegmentTemplate.createStreamInfo=function(a,b,c,d,e,f){goog.asserts.assert(a.representation.segmentTemplate,"Should only be called with SegmentTemplate");var
|
|
1581
|
-
|
|
1582
|
-
shaka.log.debug("New manifest "+
|
|
1583
|
-
shaka.dash.TimelineSegmentIndex&&
|
|
1655
|
+
shaka.dash.SegmentTemplate.createStreamInfo=function(a,b,c,d,e,f,g){goog.asserts.assert(a.representation.segmentTemplate,"Should only be called with SegmentTemplate");var h=shaka.dash.SegmentTemplate,k=shaka.dash.TimelineSegmentIndex,l=h.createInitSegment_(a,g),m=h.parseSegmentTemplateInfo_(a);h.checkSegmentTemplateInfo_(a,m);var n=shaka.util.ObjectUtils.shallowCloneObject(a);if(m.indexTemplate)return shaka.dash.SegmentBase.checkSegmentIndexSupport(a,l),{generateSegmentIndex:function(){return h.generateSegmentIndexFromIndexTemplate_(n,b,
|
|
1656
|
+
l,m)}};if(m.segmentDuration)return d||"image"===a.adaptationSet.contentType||(a.presentationTimeline.notifyMaxSegmentDuration(m.segmentDuration),a.presentationTimeline.notifyMinSegmentStartTime(a.periodInfo.start)),{generateSegmentIndex:function(){return h.generateSegmentIndexFromDuration_(n,m,e,l,f,g)}};var p=null;d=d=null;a.period.id&&a.representation.id&&(d=a.period.id+","+a.representation.id,d=c[d])&&(p=d.segmentIndex);var q=a.periodInfo.start,r=a.periodInfo.duration?q+a.periodInfo.duration:Infinity;
|
|
1657
|
+
shaka.log.debug("New manifest "+q+" - "+r);var t=!(a.dynamic&&a.periodInfo.isLastPeriod);p?(c=p,c.appendTemplateInfo(m,q,r,t),k=a.presentationTimeline.getSegmentAvailabilityStart(),c.evict(k)):(shaka.log.debug("Creating TSI with end "+r),p=new k(m,a.representation.id,a.bandwidth,a.representation.baseUris,q,r,l,t,g));m.timeline&&"image"!==a.adaptationSet.contentType&&a.presentationTimeline.notifyTimeRange(m.timeline,q);d&&a.dynamic&&(d.segmentIndex=p);return{generateSegmentIndex:function(){p instanceof
|
|
1658
|
+
shaka.dash.TimelineSegmentIndex&&p.isEmpty()&&p.appendTemplateInfo(m,q,r,t);return Promise.resolve(p)}}};shaka.dash.SegmentTemplate.fromInheritance_=function(a){return a.segmentTemplate};
|
|
1584
1659
|
shaka.dash.SegmentTemplate.parseSegmentTemplateInfo_=function(a){var b=shaka.dash.SegmentTemplate,c=shaka.dash.MpdUtils,d=c.parseSegmentInfo(a,b.fromInheritance_),e=c.inheritAttribute(a,b.fromInheritance_,"media");a=c.inheritAttribute(a,b.fromInheritance_,"index");return{segmentDuration:d.segmentDuration,timescale:d.timescale,startNumber:d.startNumber,scaledPresentationTimeOffset:d.scaledPresentationTimeOffset,unscaledPresentationTimeOffset:d.unscaledPresentationTimeOffset,timeline:d.timeline,mediaTemplate:e,
|
|
1585
1660
|
indexTemplate:a}};
|
|
1586
1661
|
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 containes multiple segment information sources:",
|
|
1587
1662
|
"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.segmentDuration=null);if(!b.indexTemplate&&!b.mediaTemplate)throw shaka.log.error("SegmentTemplate does not contain sufficient segment information:","the SegmentTemplate's media URL template is missing.",
|
|
1588
1663
|
a.representation),new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.DASH_NO_SEGMENT_INFO);};
|
|
1589
1664
|
shaka.dash.SegmentTemplate.generateSegmentIndexFromIndexTemplate_=function(a,b,c,d){var e=shaka.dash.MpdUtils,f=shaka.util.ManifestParserUtils;goog.asserts.assert(d.indexTemplate,"must be using index template");e=e.fillUriTemplate(d.indexTemplate,a.representation.id,null,a.bandwidth||null,null);f=f.resolveUris(a.representation.baseUris,[e]);return shaka.dash.SegmentBase.generateSegmentIndexFromUris(a,b,c,f,0,null,d.scaledPresentationTimeOffset)};
|
|
1590
|
-
shaka.dash.SegmentTemplate.generateSegmentIndexFromDuration_=function(a,b,c,d,e){goog.asserts.assert(b.mediaTemplate,"There should be a media template with duration");var
|
|
1591
|
-
|
|
1592
|
-
return[Math.ceil(
|
|
1593
|
-
x,
|
|
1594
|
-
|
|
1595
|
-
|
|
1596
|
-
a.
|
|
1597
|
-
|
|
1598
|
-
shaka.dash.SegmentTemplate.createInitSegment_=function(a){var b=shaka.dash.MpdUtils,c=shaka.util.ManifestParserUtils,d=b.inheritAttribute(a,shaka.dash.SegmentTemplate.fromInheritance_,"initialization");if(!d)return null;var e=a.representation.id,f=a.bandwidth||null,g=a.representation.baseUris;a=shaka.dash.SegmentBase.createQualityInfo(a);return new shaka.media.InitSegmentReference(function(){goog.asserts.assert(d,"Should have returned earler");var h=b.fillUriTemplate(d,e,null,f,null);return c.resolveUris(g,
|
|
1599
|
-
[h])},0,null,a)};shaka.dash.TimelineSegmentIndex=function(a,b,c,d,e,f,g,h){shaka.media.SegmentIndex.call(this,[]);this.templateInfo_=a;this.representationId_=b;this.bandwidth_=c;this.baseUris_=d;this.periodStart_=e;this.periodEnd_=f;this.initSegmentReference_=g;h&&this.fitTimeline()};$jscomp.inherits(shaka.dash.TimelineSegmentIndex,shaka.media.SegmentIndex);shaka.dash.TimelineSegmentIndex.prototype.getNumReferences=function(){return this.templateInfo_?this.templateInfo_.timeline.length:0};
|
|
1600
|
-
shaka.dash.TimelineSegmentIndex.prototype.release=function(){shaka.media.SegmentIndex.prototype.release.call(this);this.templateInfo_=null};
|
|
1665
|
+
shaka.dash.SegmentTemplate.generateSegmentIndexFromDuration_=function(a,b,c,d,e,f){goog.asserts.assert(b.mediaTemplate,"There should be a media template with duration");var g=shaka.dash.MpdUtils,h=shaka.util.ManifestParserUtils,k=a.presentationTimeline,l=a.periodInfo.start,m=a.period.id,n=a.periodInfo.duration,p=function(){var F=null!=m&&e[m]||n;return F?l+F:Infinity},q=b.segmentDuration;goog.asserts.assert(null!=q,"Segment duration must not be null!");var r=b.startNumber,t=b.timescale,v=b.mediaTemplate,
|
|
1666
|
+
u=a.bandwidth||null,w=a.representation.id,x=a.representation.baseUris,y=l-b.scaledPresentationTimeOffset,z=function(){var F=[Math.max(k.getSegmentAvailabilityStart(),l),Math.min(k.getSegmentAvailabilityEnd(),p())];goog.asserts.assert(F.every(isFinite),"Available presentation times must be finite!");goog.asserts.assert(F.every(function(H){return 0<=H}),"Available presentation times must be positive!");goog.asserts.assert(null!=q,"Segment duration must not be null!");F=F.map(function(H){return H-l});
|
|
1667
|
+
return[Math.ceil(F[0]/q),Math.ceil(F[1]/q)-1].map(function(H){return H+r})},A=z();a=a.dynamic?Math.max(A[0],A[1]-c+1):A[0];A=A[1];c=[];var C=function(F){goog.asserts.assert(null!=q,"Segment duration must not be null!");var H=(F-r)*q,I=H+b.scaledPresentationTimeOffset,J=H+l;H=J+q;var L=Math.min(H,p());goog.asserts.assert(J<L,"Generated a segment outside of the period!");J=new shaka.media.SegmentReference(J,L,function(){var K=I*t;"BigInt"in window&&K>Number.MAX_SAFE_INTEGER&&(K=BigInt(I)*BigInt(t));
|
|
1668
|
+
K=g.fillUriTemplate(v,w,F,u,K);return h.resolveUris(x,[K])},0,null,d,y,l,p(),[],"",null,null,shaka.media.SegmentReference.Status.AVAILABLE,f);J.trueEndTime=H;return J},D=a;for(;D<=A;++D){var G=C(D);c.push(G)}var B=new shaka.media.SegmentIndex(c);c=k.getSegmentAvailabilityEnd()<p();D=k.isLive();if(c||D){var E=Math.max(a,A+1);B.updateEvery(q,function(){var F=k.getSegmentAvailabilityStart();B.evict(F);var H=$jscomp.makeIterator(z());H.next();H=H.next().value;for(var I=[];E<=H;){var J=C(E);I.push(J);
|
|
1669
|
+
E++}return F>p()&&!I.length?null:I})}return Promise.resolve(B)};
|
|
1670
|
+
shaka.dash.SegmentTemplate.createInitSegment_=function(a,b){var c=shaka.dash.MpdUtils,d=shaka.util.ManifestParserUtils,e=c.inheritAttribute(a,shaka.dash.SegmentTemplate.fromInheritance_,"initialization");if(!e)return null;var f=a.representation.id,g=a.bandwidth||null,h=a.representation.baseUris;a=shaka.dash.SegmentBase.createQualityInfo(a);return new shaka.media.InitSegmentReference(function(){goog.asserts.assert(e,"Should have returned earler");var k=c.fillUriTemplate(e,f,null,g,null);return d.resolveUris(h,
|
|
1671
|
+
[k])},0,null,a,null,null,b)};shaka.dash.TimelineSegmentIndex=function(a,b,c,d,e,f,g,h,k){shaka.media.SegmentIndex.call(this,[]);this.templateInfo_=a;this.representationId_=b;this.bandwidth_=c;this.baseUris_=d;this.periodStart_=e;this.periodEnd_=f;this.initSegmentReference_=g;this.aes128Key_=k;h&&this.fitTimeline()};$jscomp.inherits(shaka.dash.TimelineSegmentIndex,shaka.media.SegmentIndex);
|
|
1672
|
+
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};
|
|
1601
1673
|
shaka.dash.TimelineSegmentIndex.prototype.evict=function(a){if(this.templateInfo_){shaka.log.debug(this.representationId_+" Evicting at "+a);for(var b=0,c=this.templateInfo_.timeline,d=0;d<c.length;d+=1){var e=c[d],f=e.end+this.periodStart_;e=e.start+this.periodStart_;if(f<=a)shaka.log.debug("Evicting "+e+" - "+f),b+=1;else break}0<b&&(this.templateInfo_.timeline=c.slice(b),this.references.length>=b&&(this.references=this.references.slice(b)),this.numEvicted_+=b,0===this.getNumReferences()&&this.release())}};
|
|
1602
1674
|
shaka.dash.TimelineSegmentIndex.prototype.appendTemplateInfo=function(a,b,c,d){if(this.templateInfo_){b=this.templateInfo_.timeline;var e=b[b.length-1];a=a.timeline.filter(function(f){return f.start>=e.end});0<a.length&&(shaka.log.debug("Appending "+a.length+" entries"),this.templateInfo_.timeline.push.apply(this.templateInfo_.timeline,$jscomp.arrayFromIterable(a)));this.periodEnd_!==c&&(this.periodEnd_=c)}else this.templateInfo_=a,this.periodStart_=b,this.periodEnd_=c;d&&this.fitTimeline()};
|
|
1603
1675
|
shaka.dash.TimelineSegmentIndex.prototype.isBeforeFirstEntry=function(a){return this.templateInfo_&&this.templateInfo_.timeline&&this.templateInfo_.timeline.length?a<this.templateInfo_.timeline[0].start+this.periodStart_:!1};
|
|
1604
1676
|
shaka.dash.TimelineSegmentIndex.prototype.fitTimeline=function(){if(!this.getIsImmutable()){for(var a=this.templateInfo_.timeline;a.length;)if(a[a.length-1].start>=this.periodEnd_)a.pop();else break;this.evict(this.periodStart_);0!==a.length&&Infinity!==this.periodEnd_&&(a[a.length-1].end=this.periodEnd_-this.periodStart_)}};
|
|
1605
1677
|
shaka.dash.TimelineSegmentIndex.prototype.find=function(a){shaka.log.debug("Find "+a);if(this.isBeforeFirstEntry(a))return this.numEvicted_;if(!this.templateInfo_)return null;var b=this.templateInfo_.timeline;if(a<this.periodStart_||a>this.periodEnd_)return null;for(var c=b.length-1,d=0;d<b.length;d++){var e=b[d],f=e.start+this.periodStart_;e=e.end+this.periodStart_;d<c&&(e=b[d+1].start+this.periodStart_);if(a>=f&&a<e)return d+this.numEvicted_}return null};
|
|
1606
1678
|
shaka.dash.TimelineSegmentIndex.prototype.get=function(a){var b=this,c=a-this.numEvicted_;if(0>c||c>=this.getNumReferences()||!this.templateInfo_)return null;var d=this.references[c];if(!d){d=this.templateInfo_.timeline[c];var e=a+this.templateInfo_.startNumber,f=this.templateInfo_.unscaledPresentationTimeOffset+d.unscaledStart;d=new shaka.media.SegmentReference(this.periodStart_+d.start,this.periodStart_+d.end,function(){return b.templateInfo_?shaka.dash.TimelineSegmentIndex.createUris_(b.templateInfo_.mediaTemplate,
|
|
1607
|
-
b.representationId_,e,b.bandwidth_,f,b.baseUris_):[]},0,null,this.initSegmentReference_,this.periodStart_-this.templateInfo_.scaledPresentationTimeOffset,this.periodStart_,this.periodEnd_);this.references[c]=d}return d};shaka.dash.TimelineSegmentIndex.createUris_=function(a,b,c,d,e,f){a=shaka.dash.MpdUtils.fillUriTemplate(a,b,c,d||null,e);return shaka.util.ManifestParserUtils.resolveUris(f,[a]).map(function(g){return g.toString()})};shaka.util.PeriodCombiner=function(){this.variants_=[];this.audioStreams_=[];this.videoStreams_=[];this.textStreams_=[];this.imageStreams_=[];this.usedPeriodIds_=new Set};
|
|
1679
|
+
b.representationId_,e,b.bandwidth_,f,b.baseUris_):[]},0,null,this.initSegmentReference_,this.periodStart_-this.templateInfo_.scaledPresentationTimeOffset,this.periodStart_,this.periodEnd_,[],"",null,null,shaka.media.SegmentReference.Status.AVAILABLE,this.aes128Key_);this.references[c]=d}return d};shaka.dash.TimelineSegmentIndex.createUris_=function(a,b,c,d,e,f){a=shaka.dash.MpdUtils.fillUriTemplate(a,b,c,d||null,e);return shaka.util.ManifestParserUtils.resolveUris(f,[a]).map(function(g){return g.toString()})};shaka.util.PeriodCombiner=function(){this.variants_=[];this.audioStreams_=[];this.videoStreams_=[];this.textStreams_=[];this.imageStreams_=[];this.usedPeriodIds_=new Set};
|
|
1608
1680
|
shaka.util.PeriodCombiner.prototype.release=function(){var a=this.audioStreams_.concat(this.videoStreams_,this.textStreams_,this.imageStreams_);a=$jscomp.makeIterator(a);for(var b=a.next();!b.done;b=a.next())b=b.value,b.segmentIndex&&b.segmentIndex.release();this.audioStreams_=[];this.videoStreams_=[];this.textStreams_=[];this.imageStreams_=[];this.variants_=[]};shaka.util.PeriodCombiner.prototype.getVariants=function(){return this.variants_};shaka.util.PeriodCombiner.prototype.getTextStreams=function(){return this.textStreams_.slice()};
|
|
1609
1681
|
shaka.util.PeriodCombiner.prototype.getImageStreams=function(){return this.imageStreams_};
|
|
1610
|
-
shaka.util.PeriodCombiner.prototype.combinePeriods=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,t,
|
|
1611
|
-
if(!b&&1==a.length){e=a[0];c.audioStreams_=e.audioStreams;c.videoStreams_=e.videoStreams;c.textStreams_=e.textStreams;c.imageStreams_=e.imageStreams;K.jumpTo(2);break}f=-1;for(g=0;g<a.length;g++)h=a[g],c.usedPeriodIds_.has(h.id)||(c.usedPeriodIds_.add(h.id),-1==f&&(f=g));if(-1==f)return K.return();k=a.map(function(
|
|
1612
|
-
p.next();!q.done;q=p.next())r=q.value,r.push(shaka.util.PeriodCombiner.dummyStream_(d.TEXT));t=$jscomp.makeIterator(n);for(
|
|
1613
|
-
4);case 4:return K.yield(shaka.util.PeriodCombiner.combine_(c.textStreams_,m,f,shaka.util.PeriodCombiner.cloneStream_,shaka.util.PeriodCombiner.concatenateStreams_),5);case 5:return K.yield(shaka.util.PeriodCombiner.combine_(c.imageStreams_,n,f,shaka.util.PeriodCombiner.cloneStream_,shaka.util.PeriodCombiner.concatenateStreams_),2);case 2:
|
|
1614
|
-
|
|
1615
|
-
|
|
1682
|
+
shaka.util.PeriodCombiner.prototype.combinePeriods=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,t,v,u,w,x,y,z,A,C,D,G,B,E,F,H,I,J,L;return $jscomp.asyncExecutePromiseGeneratorProgram(function(K){switch(K.nextAddress){case 1:d=shaka.util.ManifestParserUtils.ContentType;shaka.util.PeriodCombiner.filterOutAudioStreamDuplicates_(a);shaka.util.PeriodCombiner.filterOutVideoStreamDuplicates_(a);shaka.util.PeriodCombiner.filterOutTextStreamDuplicates_(a);shaka.util.PeriodCombiner.filterOutImageStreamDuplicates_(a);
|
|
1683
|
+
if(!b&&1==a.length){e=a[0];c.audioStreams_=e.audioStreams;c.videoStreams_=e.videoStreams;c.textStreams_=e.textStreams;c.imageStreams_=e.imageStreams;K.jumpTo(2);break}f=-1;for(g=0;g<a.length;g++)h=a[g],c.usedPeriodIds_.has(h.id)||(c.usedPeriodIds_.add(h.id),-1==f&&(f=g));if(-1==f)return K.return();k=a.map(function(M){return M.audioStreams});l=a.map(function(M){return M.videoStreams});m=a.map(function(M){return M.textStreams});n=a.map(function(M){return M.imageStreams});p=$jscomp.makeIterator(m);for(q=
|
|
1684
|
+
p.next();!q.done;q=p.next())r=q.value,r.push(shaka.util.PeriodCombiner.dummyStream_(d.TEXT));t=$jscomp.makeIterator(n);for(v=t.next();!v.done;v=t.next())u=v.value,u.push(shaka.util.PeriodCombiner.dummyStream_(d.IMAGE));return K.yield(shaka.util.PeriodCombiner.combine_(c.audioStreams_,k,f,shaka.util.PeriodCombiner.cloneStream_,shaka.util.PeriodCombiner.concatenateStreams_),3);case 3:return K.yield(shaka.util.PeriodCombiner.combine_(c.videoStreams_,l,f,shaka.util.PeriodCombiner.cloneStream_,shaka.util.PeriodCombiner.concatenateStreams_),
|
|
1685
|
+
4);case 4:return K.yield(shaka.util.PeriodCombiner.combine_(c.textStreams_,m,f,shaka.util.PeriodCombiner.cloneStream_,shaka.util.PeriodCombiner.concatenateStreams_),5);case 5:return K.yield(shaka.util.PeriodCombiner.combine_(c.imageStreams_,n,f,shaka.util.PeriodCombiner.cloneStream_,shaka.util.PeriodCombiner.concatenateStreams_),2);case 2:w=0;x=[];if(c.videoStreams_.length&&c.audioStreams_.length)for(G=$jscomp.makeIterator(c.audioStreams_),B=G.next();!B.done;B=G.next())for(E=B.value,F=$jscomp.makeIterator(c.videoStreams_),
|
|
1686
|
+
H=F.next();!H.done;H=F.next())I=H.value,J=shaka.media.DrmEngine.getCommonDrmInfos(E.drmInfos,I.drmInfos),E.drmInfos.length&&I.drmInfos.length&&!J.length?shaka.log.warning("Incompatible DRM in audio & video, skipping variant creation.",E,I):(L=w++,x.push({id:L,language:E.language,disabledUntilTime:0,primary:E.primary,audio:E,video:I,bandwidth:(E.bandwidth||0)+(I.bandwidth||0),drmInfos:J,allowedByApplication:!0,allowedByKeySystem:!0,decodingInfos:[]}));else for(y=c.videoStreams_.concat(c.audioStreams_),
|
|
1687
|
+
z=$jscomp.makeIterator(y),A=z.next();!A.done;A=z.next())C=A.value,D=w++,x.push({id:D,language:C.language,disabledUntilTime:0,primary:C.primary,audio:C.type==d.AUDIO?C:null,video:C.type==d.VIDEO?C:null,bandwidth:C.bandwidth||0,drmInfos:C.drmInfos,allowedByApplication:!0,allowedByKeySystem:!0,decodingInfos:[]});c.variants_=x;K.jumpToEnd()}})};
|
|
1616
1688
|
shaka.util.PeriodCombiner.filterOutAudioStreamDuplicates_=function(a){var b=shaka.util.ArrayUtils;a=$jscomp.makeIterator(a);for(var c=a.next();!c.done;c=a.next()){c=c.value;for(var d=[],e=$jscomp.makeIterator(c.audioStreams),f=e.next();!f.done;f=e.next()){f=f.value;for(var g=!1,h=$jscomp.makeIterator(d),k=h.next();!k.done;k=h.next())k=k.value,f.id!=k.id&&f.channelsCount==k.channelsCount&&f.language==k.language&&f.bandwidth==k.bandwidth&&f.label==k.label&&f.codecs==k.codecs&&f.mimeType==k.mimeType&&
|
|
1617
1689
|
b.hasSameElements(f.roles,k.roles)&&f.audioSamplingRate==k.audioSamplingRate&&f.primary==k.primary&&(g=!0);g||d.push(f)}c.audioStreams=d}};
|
|
1618
1690
|
shaka.util.PeriodCombiner.filterOutTextStreamDuplicates_=function(a){var b=shaka.util.ArrayUtils;a=$jscomp.makeIterator(a);for(var c=a.next();!c.done;c=a.next()){c=c.value;for(var d=[],e=$jscomp.makeIterator(c.textStreams),f=e.next();!f.done;f=e.next()){f=f.value;for(var g=!1,h=$jscomp.makeIterator(d),k=h.next();!k.done;k=h.next())k=k.value,f.id!=k.id&&f.language==k.language&&f.label==k.label&&f.codecs==k.codecs&&f.mimeType==k.mimeType&&f.bandwidth==k.bandwidth&&b.hasSameElements(f.roles,k.roles)&&
|
|
@@ -1620,14 +1692,14 @@ shaka.util.PeriodCombiner.filterOutTextStreamDuplicates_=function(a){var b=shaka
|
|
|
1620
1692
|
shaka.util.PeriodCombiner.filterOutVideoStreamDuplicates_=function(a){var b=shaka.util.ArrayUtils,c=shaka.util.MapUtils;a=$jscomp.makeIterator(a);for(var d=a.next();!d.done;d=a.next()){d=d.value;for(var e=[],f=$jscomp.makeIterator(d.videoStreams),g=f.next();!g.done;g=f.next()){g=g.value;for(var h=!1,k=$jscomp.makeIterator(e),l=k.next();!l.done;l=k.next())l=l.value,g.id!=l.id&&g.width==l.width&&g.frameRate==l.frameRate&&g.codecs==l.codecs&&g.mimeType==l.mimeType&&g.label==l.label&&b.hasSameElements(g.roles,
|
|
1621
1693
|
l.roles)&&c.hasSameElements(g.closedCaptions,l.closedCaptions)&&g.bandwidth==l.bandwidth&&(h=!0);h||e.push(g)}d.videoStreams=e}};
|
|
1622
1694
|
shaka.util.PeriodCombiner.filterOutImageStreamDuplicates_=function(a){a=$jscomp.makeIterator(a);for(var b=a.next();!b.done;b=a.next()){b=b.value;for(var c=[],d=$jscomp.makeIterator(b.imageStreams),e=d.next();!e.done;e=d.next()){e=e.value;for(var f=!1,g=$jscomp.makeIterator(c),h=g.next();!h.done;h=g.next())h=h.value,e.id!=h.id&&e.width==h.width&&e.codecs==h.codecs&&e.mimeType==h.mimeType&&(f=!0);f||c.push(e)}b.imageStreams=c}};
|
|
1623
|
-
shaka.util.PeriodCombiner.combineDbStreams=function(a){var b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,
|
|
1624
|
-
f=a.map(function(
|
|
1625
|
-
|
|
1626
|
-
|
|
1627
|
-
shaka.util.PeriodCombiner.combine_=function(a,b,c,d,e){var f,g,h,k,l,m,n,p,q,r,t,
|
|
1628
|
-
shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.PERIOD_FLATTENING_FAILED);l=k.next();
|
|
1629
|
-
|
|
1630
|
-
|
|
1695
|
+
shaka.util.PeriodCombiner.combineDbStreams=function(a){var b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,v,u,w,x,y,z,A,C,D,G,B,E;return $jscomp.asyncExecutePromiseGeneratorProgram(function(F){switch(F.nextAddress){case 1:b=shaka.util.ManifestParserUtils.ContentType;if(1==a.length)return F.return(a[0]);c=a.map(function(H){return H.filter(function(I){return I.type==b.AUDIO})});d=a.map(function(H){return H.filter(function(I){return I.type==b.VIDEO})});e=a.map(function(H){return H.filter(function(I){return I.type==b.TEXT})});
|
|
1696
|
+
f=a.map(function(H){return H.filter(function(I){return I.type==b.IMAGE})});g=$jscomp.makeIterator(e);for(h=g.next();!h.done;h=g.next())k=h.value,k.push(shaka.util.PeriodCombiner.dummyStreamDB_(b.TEXT));l=$jscomp.makeIterator(f);for(m=l.next();!m.done;m=l.next())n=m.value,n.push(shaka.util.PeriodCombiner.dummyStreamDB_(b.IMAGE));return F.yield(shaka.util.PeriodCombiner.combine_([],c,0,shaka.util.PeriodCombiner.cloneStreamDB_,shaka.util.PeriodCombiner.concatenateStreamDBs_),2);case 2:return p=F.yieldResult,
|
|
1697
|
+
F.yield(shaka.util.PeriodCombiner.combine_([],d,0,shaka.util.PeriodCombiner.cloneStreamDB_,shaka.util.PeriodCombiner.concatenateStreamDBs_),3);case 3:return q=F.yieldResult,F.yield(shaka.util.PeriodCombiner.combine_([],e,0,shaka.util.PeriodCombiner.cloneStreamDB_,shaka.util.PeriodCombiner.concatenateStreamDBs_),4);case 4:return r=F.yieldResult,F.yield(shaka.util.PeriodCombiner.combine_([],f,0,shaka.util.PeriodCombiner.cloneStreamDB_,shaka.util.PeriodCombiner.concatenateStreamDBs_),5);case 5:t=F.yieldResult;
|
|
1698
|
+
v=0;if(q.length&&p.length)for(z=$jscomp.makeIterator(p),A=z.next();!A.done;A=z.next())for(C=A.value,D=$jscomp.makeIterator(q),G=D.next();!G.done;G=D.next())B=G.value,E=v++,B.variantIds.push(E),C.variantIds.push(E);else for(u=q.concat(p),w=$jscomp.makeIterator(u),x=w.next();!x.done;x=w.next())y=x.value,y.variantIds=[v++];return F.return(q.concat(p).concat(r).concat(t))}})};
|
|
1699
|
+
shaka.util.PeriodCombiner.combine_=function(a,b,c,d,e){var f,g,h,k,l,m,n,p,q,r,t,v,u,w,x,y,z,A,C,D,G;return $jscomp.asyncExecutePromiseGeneratorProgram(function(B){switch(B.nextAddress){case 1:f=shaka.util.ManifestParserUtils.ContentType;g=[];for(h=0;h<b.length;h++)h>=c?g.push(new Set(b[h])):g.push(new Set);k=$jscomp.makeIterator(a);l=k.next();case 2:if(l.done){B.jumpTo(4);break}m=l.value;return B.yield(shaka.util.PeriodCombiner.extendExistingOutputStream_(m,b,c,e,g),5);case 5:n=B.yieldResult;if(!n)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
|
|
1700
|
+
shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.PERIOD_FLATTENING_FAILED);l=k.next();B.jumpTo(2);break;case 4:p=$jscomp.makeIterator(g);for(q=p.next();!q.done;q=p.next())for(r=q.value,t=$jscomp.makeIterator(r),v=t.next();!v.done;v=t.next())u=v.value,(w=shaka.util.PeriodCombiner.createNewOutputStream_(u,b,d,e,g))&&a.push(w);x=$jscomp.makeIterator(g);for(q=x.next();!q.done;q=x.next())for(y=q.value,z={},A=$jscomp.makeIterator(y),v=A.next();!v.done;z={$jscomp$loop$prop$stream$626$777:z.$jscomp$loop$prop$stream$626$777},
|
|
1701
|
+
v=A.next())if(z.$jscomp$loop$prop$stream$626$777=v.value,C=z.$jscomp$loop$prop$stream$626$777.type==f.TEXT&&!z.$jscomp$loop$prop$stream$626$777.language,D=z.$jscomp$loop$prop$stream$626$777.type==f.IMAGE&&!z.$jscomp$loop$prop$stream$626$777.tilesLayout,!C&&!D&&(G=a.some(function(E){return function(F){return F.mimeType==E.$jscomp$loop$prop$stream$626$777.mimeType&&shaka.util.MimeUtils.getNormalizedCodec(F.codecs)==shaka.util.MimeUtils.getNormalizedCodec(E.$jscomp$loop$prop$stream$626$777.codecs)}}(z))))throw shaka.log.error("Unused stream in period-flattening!",
|
|
1702
|
+
z.$jscomp$loop$prop$stream$626$777,a),new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.PERIOD_FLATTENING_FAILED);return B.return(a)}})};
|
|
1631
1703
|
shaka.util.PeriodCombiner.extendExistingOutputStream_=function(a,b,c,d,e){return $jscomp.asyncExecutePromiseGeneratorProgram(function(f){if(1==f.nextAddress)return shaka.util.PeriodCombiner.findMatchesInAllPeriods_(b,a),goog.asserts.assert(a.createSegmentIndex,"outputStream should be a Stream type!"),a.matchedStreams?a.segmentIndex?f.yield(shaka.util.PeriodCombiner.extendOutputSegmentIndex_(a,c),2):f.jumpTo(2):(shaka.log.error("No matches extending output stream!",a,b),f.return(!1));shaka.util.PeriodCombiner.extendOutputStream_(a,
|
|
1632
1704
|
c,d,e);return f.return(!0)})};
|
|
1633
1705
|
shaka.util.PeriodCombiner.extendOutputSegmentIndex_=function(a,b){var c,d,e,f,g,h,k;return $jscomp.asyncExecutePromiseGeneratorProgram(function(l){if(1==l.nextAddress){c=[];d=a.matchedStreams;goog.asserts.assert(d,"matched streams should be valid");e=$jscomp.makeIterator(d);for(f=e.next();!f.done;f=e.next())g=f.value,c.push(g.createSegmentIndex()),g.trickModeVideo&&!g.trickModeVideo.segmentIndex&&c.push(g.trickModeVideo.createSegmentIndex());return l.yield(Promise.all(c),2)}if(a.segmentIndex instanceof
|
|
@@ -1653,8 +1725,8 @@ shaka.util.PeriodCombiner.isVideoStreamBetterMatch_=function(a,b,c){var d=shaka.
|
|
|
1653
1725
|
c.bandwidth)==e?!0:!1};
|
|
1654
1726
|
shaka.util.PeriodCombiner.isTextStreamBetterMatch_=function(a,b,c){var d=shaka.util.LanguageUtils;if(a.id==c.id)return!0;var e=d.relatedness(a.language,b.language);d=d.relatedness(a.language,c.language);if(d>e)return!0;if(d<e)return!1;if(!b.primary&&c.primary)return!0;if(b.primary&&!c.primary)return!1;if(a.roles.length){e=b.roles.filter(function(f){return a.roles.includes(f)});d=c.roles.filter(function(f){return a.roles.includes(f)});if(d.length>e.length)return!0;if(d.length<e.length)return!1}else{if(!c.roles.length&&
|
|
1655
1727
|
b.roles.length)return!0;if(c.roles.length&&!b.roles.length)return!1}return c.mimeType!=a.mimeType||c.codecs!=a.codecs||b.mimeType==a.mimeType&&b.codecs==a.codecs?!1:!0};shaka.util.PeriodCombiner.isImageStreamBetterMatch_=function(a,b,c){var d=shaka.util.PeriodCombiner.BetterOrWorse.BETTER;return a.id==c.id?!0:shaka.util.PeriodCombiner.compareClosestPreferLower(a.width*a.height,b.width*b.height,c.width*c.height)==d?!0:!1};
|
|
1656
|
-
shaka.util.PeriodCombiner.dummyStreamDB_=function(a){return{id:0,originalId:"",primary:!1,type:a,mimeType:"",codecs:"",language:"",originalLanguage:null,label:null,width:null,height:null,encrypted:!1,keyIds:new Set,segments:[],variantIds:[],roles:[],forced:!1,channelsCount:null,audioSamplingRate:null,spatialAudio:!1,closedCaptions:null,external:!1}};
|
|
1657
|
-
shaka.util.PeriodCombiner.dummyStream_=function(a){return{id:0,originalId:"",createSegmentIndex:function(){return Promise.resolve()},segmentIndex:new shaka.media.SegmentIndex([]),mimeType:"",codecs:"",encrypted:!1,drmInfos:[],keyIds:new Set,language:"",originalLanguage:null,label:null,type:a,primary:!1,trickModeVideo:null,emsgSchemeIdUris:null,roles:[],forced:!1,channelsCount:null,audioSamplingRate:null,spatialAudio:!1,closedCaptions:null,accessibilityPurpose:null,external:!1}};
|
|
1728
|
+
shaka.util.PeriodCombiner.dummyStreamDB_=function(a){return{id:0,originalId:"",groupId:null,primary:!1,type:a,mimeType:"",codecs:"",language:"",originalLanguage:null,label:null,width:null,height:null,encrypted:!1,keyIds:new Set,segments:[],variantIds:[],roles:[],forced:!1,channelsCount:null,audioSamplingRate:null,spatialAudio:!1,closedCaptions:null,external:!1}};
|
|
1729
|
+
shaka.util.PeriodCombiner.dummyStream_=function(a){return{id:0,originalId:"",groupId:null,createSegmentIndex:function(){return Promise.resolve()},segmentIndex:new shaka.media.SegmentIndex([]),mimeType:"",codecs:"",encrypted:!1,drmInfos:[],keyIds:new Set,language:"",originalLanguage:null,label:null,type:a,primary:!1,trickModeVideo:null,emsgSchemeIdUris:null,roles:[],forced:!1,channelsCount:null,audioSamplingRate:null,spatialAudio:!1,closedCaptions:null,accessibilityPurpose:null,external:!1}};
|
|
1658
1730
|
shaka.util.PeriodCombiner.compareClosestPreferLower=function(a,b,c){var d=shaka.util.PeriodCombiner.BetterOrWorse,e=d.BETTER,f=d.WORSE;if(b==a&&a!=c)return f;if(c==a&&a!=b)return e;if(b>a){if(c<=a||c-a<b-a)return e;if(c-a>b-a)return f}else{if(c>a)return f;if(a-c<a-b)return e;if(a-c>a-b)return f}return d.EQUAL};
|
|
1659
1731
|
shaka.util.PeriodCombiner.compareClosestPreferMinimalAbsDiff_=function(a,b,c){var d=shaka.util.PeriodCombiner.BetterOrWorse,e=d.BETTER,f=d.WORSE;b=Math.abs(a-b);a=Math.abs(a-c);return a<b?e:b<a?f:d.EQUAL};goog.exportSymbol("shaka.util.PeriodCombiner",shaka.util.PeriodCombiner);goog.exportProperty(shaka.util.PeriodCombiner.prototype,"combinePeriods",shaka.util.PeriodCombiner.prototype.combinePeriods);goog.exportProperty(shaka.util.PeriodCombiner.prototype,"getImageStreams",shaka.util.PeriodCombiner.prototype.getImageStreams);
|
|
1660
1732
|
goog.exportProperty(shaka.util.PeriodCombiner.prototype,"getTextStreams",shaka.util.PeriodCombiner.prototype.getTextStreams);goog.exportProperty(shaka.util.PeriodCombiner.prototype,"getVariants",shaka.util.PeriodCombiner.prototype.getVariants);shaka.util.PeriodCombiner.BetterOrWorse={BETTER:1,EQUAL:0,WORSE:-1};shaka.util.PeriodCombiner.memoizedCodecs=new Map;shaka.dash.DashParser=function(){var a=this;this.playerInterface_=this.config_=null;this.manifestUris_=[];this.manifest_=null;this.globalId_=1;this.streamMap_={};this.periodDurations_={};this.periodCombiner_=new shaka.util.PeriodCombiner;this.updatePeriod_=0;this.averageUpdateDuration_=new shaka.abr.Ewma(5);this.updateTimer_=new shaka.util.Timer(function(){a.onUpdate_()});this.operationManager_=new shaka.util.OperationManager;this.largestPeriodStartTime_=null;this.lastManifestUpdatePeriodIds_=[];
|
|
@@ -1664,18 +1736,18 @@ shaka.util.Error.Code.OPERATION_ABORTED);goog.asserts.assert(c.manifest_,"Manife
|
|
|
1664
1736
|
shaka.dash.DashParser.prototype.stop=function(){for(var a=$jscomp.makeIterator(Object.values(this.streamMap_)),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_={};this.periodCombiner_=null;null!=this.updateTimer_&&(this.updateTimer_.stop(),this.updateTimer_=null);return this.operationManager_.destroy()};
|
|
1665
1737
|
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()})};
|
|
1666
1738
|
shaka.dash.DashParser.prototype.onExpirationUpdated=function(a,b){};
|
|
1667
|
-
shaka.dash.DashParser.prototype.requestManifest_=function(){var a=this,b,c,d,e,f,g,h
|
|
1668
|
-
|
|
1739
|
+
shaka.dash.DashParser.prototype.requestManifest_=function(){var a=this,b,c,d,e,f,g,h;return $jscomp.asyncExecutePromiseGeneratorProgram(function(k){if(1==k.nextAddress)return b=shaka.net.NetworkingEngine.RequestType.MANIFEST,c=shaka.net.NetworkingEngine.AdvancedRequestType.MPD,d=shaka.net.NetworkingEngine.makeRequest(a.manifestUris_,a.config_.retryParameters),e=Date.now(),k.yield(a.makeNetworkRequest_(d,b,{type:c}),2);if(3!=k.nextAddress){f=k.yieldResult;if(!a.playerInterface_)return k.return(0);
|
|
1740
|
+
f.uri&&!a.manifestUris_.includes(f.uri)&&a.manifestUris_.unshift(f.uri);return k.yield(a.parseManifest_(f.data,f.uri),3)}g=Date.now();h=(g-e)/1E3;a.averageUpdateDuration_.sample(1,h);return k.return(h)})};
|
|
1669
1741
|
shaka.dash.DashParser.prototype.parseManifest_=function(a,b){var c=this,d,e,f,g,h,k,l;return $jscomp.asyncExecutePromiseGeneratorProgram(function(m){if(1==m.nextAddress){d=shaka.util.Error;e=shaka.dash.MpdUtils;f=shaka.util.XmlUtils.parseXml(a,"MPD");if(!f)throw new d(d.Severity.CRITICAL,d.Category.MANIFEST,d.Code.DASH_INVALID_XML,b);if(g=c.config_.dash.disableXlinkProcessing)return m.return(c.processManifest_(f,b));h=c.config_.dash.xlinkFailGracefully;k=e.processXlinks(f,c.config_.retryParameters,
|
|
1670
1742
|
h,b,c.playerInterface_.networkingEngine);c.operationManager_.manage(k);return m.yield(k.promise,2)}l=m.yieldResult;return m.return(c.processManifest_(l,b))})};
|
|
1671
|
-
shaka.dash.DashParser.prototype.processManifest_=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,t,
|
|
1672
|
-
"BaseURL");m=l.map(e.getContents);n=shaka.util.ManifestParserUtils.resolveUris(g,m);p=0;l&&l.length&&(p=e.parseAttr(l[0],"availabilityTimeOffset",e.parseFloat)||0);q=c.config_.dash.ignoreMinBufferTime;r=0;q||(r=e.parseAttr(a,"minBufferTime",e.parseDuration)||0);c.updatePeriod_=e.parseAttr(a,"minimumUpdatePeriod",e.parseDuration,-1);t=e.parseAttr(a,"availabilityStartTime",e.parseDate);
|
|
1673
|
-
(
|
|
1674
|
-
E,c.config_.dash.autoCorrectDrift);A.setStatic("static"==
|
|
1675
|
-
"static"!=
|
|
1676
|
-
A.notifyMaxSegmentDuration(
|
|
1677
|
-
break}c.manifest_={presentationTimeline:A,variants:c.periodCombiner_.getVariants(),textStreams:c.periodCombiner_.getTextStreams(),imageStreams:c.periodCombiner_.getImageStreams(),offlineSessionIds:[],minBufferTime:r||0,sequenceMode:c.config_.dash.sequenceMode,ignoreManifestTimestampsInSegmentsMode:!1,type:shaka.media.ManifestParser.DASH,serviceDescription:c.parseServiceDescription_(a)};if(!A.usingPresentationStartTime()){
|
|
1678
|
-
P),5);case 5:
|
|
1743
|
+
shaka.dash.DashParser.prototype.processManifest_=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,t,v,u,w,x,y,z,A,C,D,G,B,E,F,H,I,J,L,K,M,N,O,R,Q;return $jscomp.asyncExecutePromiseGeneratorProgram(function(P){switch(P.nextAddress){case 1:d=shaka.util.Functional;e=shaka.util.XmlUtils;(f=c.config_.dash.manifestPreprocessor)&&f(a);g=[b];h=e.findChildren(a,"Location").map(e.getContents).filter(d.isNotNull);0<h.length&&(k=shaka.util.ManifestParserUtils.resolveUris(g,h),g=c.manifestUris_=k);l=e.findChildren(a,
|
|
1744
|
+
"BaseURL");m=l.map(e.getContents);n=shaka.util.ManifestParserUtils.resolveUris(g,m);p=0;l&&l.length&&(p=e.parseAttr(l[0],"availabilityTimeOffset",e.parseFloat)||0);q=c.config_.dash.ignoreMinBufferTime;r=0;q||(r=e.parseAttr(a,"minBufferTime",e.parseDuration)||0);c.updatePeriod_=e.parseAttr(a,"minimumUpdatePeriod",e.parseDuration,-1);t=e.parseAttr(a,"availabilityStartTime",e.parseDate);v=e.parseAttr(a,"timeShiftBufferDepth",e.parseDuration);u=c.config_.dash.ignoreSuggestedPresentationDelay;w=null;u||
|
|
1745
|
+
(w=e.parseAttr(a,"suggestedPresentationDelay",e.parseDuration));x=c.config_.dash.ignoreMaxSegmentDuration;y=null;x||(y=e.parseAttr(a,"maxSegmentDuration",e.parseDuration));z=a.getAttribute("type")||"static";if(c.manifest_)for(A=c.manifest_.presentationTimeline,C=$jscomp.makeIterator(Object.values(c.streamMap_)),D=C.next();!D.done;D=C.next())G=D.value,G.segmentIndex&&G.segmentIndex.evict(A.getSegmentAvailabilityStart());else B=c.config_.defaultPresentationDelay||1.5*r,E=null!=w?w:B,A=new shaka.media.PresentationTimeline(t,
|
|
1746
|
+
E,c.config_.dash.autoCorrectDrift);A.setStatic("static"==z);(F=A.isLive())&&!isNaN(c.config_.availabilityWindowOverride)&&(v=c.config_.availabilityWindowOverride);null==v&&(v=Infinity);A.setSegmentAvailabilityDuration(v);H=a.getAttribute("profiles")||"";I={dynamic:"static"!=z,presentationTimeline:A,period:null,periodInfo:null,adaptationSet:null,representation:null,bandwidth:0,indexRangeWarningGiven:!1,availabilityTimeOffset:p,profiles:H.split(",")};J=c.parsePeriods_(I,n,a);L=J.duration;K=J.periods;
|
|
1747
|
+
"static"!=z&&J.durationDerivedFromPeriods||A.setDuration(L||Infinity);c.minTotalAvailabilityTimeOffset_&&!c.lowLatencyMode_&&(M=c.playerInterface_.isAutoLowLatencyMode())&&(c.playerInterface_.enableLowLatencyMode(),c.lowLatencyMode_=c.playerInterface_.isLowLatencyMode());c.lowLatencyMode_?A.setAvailabilityTimeOffset(c.minTotalAvailabilityTimeOffset_):c.minTotalAvailabilityTimeOffset_&&shaka.log.alwaysWarn("Low-latency DASH live stream detected, but low-latency streaming mode is not enabled in Shaka Player. Set streaming.lowLatencyMode configuration to true, and see https://bit.ly/3clctcj for details.");
|
|
1748
|
+
A.notifyMaxSegmentDuration(y||1);goog.DEBUG&&A.assertIsValid();return P.yield(c.periodCombiner_.combinePeriods(K,I.dynamic),2);case 2:c.lowLatencyMode_&&(r=0);c.lowLatencyMode_&&c.minTotalAvailabilityTimeOffset_&&(c.updatePeriod_=c.minTotalAvailabilityTimeOffset_);if(c.manifest_){c.manifest_.variants=c.periodCombiner_.getVariants();N=c.periodCombiner_.getTextStreams();0<N.length&&(c.manifest_.textStreams=N);c.manifest_.imageStreams=c.periodCombiner_.getImageStreams();c.playerInterface_.filter(c.manifest_);
|
|
1749
|
+
P.jumpTo(3);break}c.manifest_={presentationTimeline:A,variants:c.periodCombiner_.getVariants(),textStreams:c.periodCombiner_.getTextStreams(),imageStreams:c.periodCombiner_.getImageStreams(),offlineSessionIds:[],minBufferTime:r||0,sequenceMode:c.config_.dash.sequenceMode,ignoreManifestTimestampsInSegmentsMode:!1,type:shaka.media.ManifestParser.DASH,serviceDescription:c.parseServiceDescription_(a)};if(!A.usingPresentationStartTime()){P.jumpTo(4);break}O=shaka.util.XmlUtils;R=O.findChildren(a,"UTCTiming");
|
|
1750
|
+
return P.yield(c.parseUtcTiming_(n,R),5);case 5:Q=P.yieldResult;if(!c.playerInterface_)return P.return();A.setClockOffset(Q);case 4:A.lockStartTime();case 3:c.playerInterface_.makeTextStreamsForClosedCaptions(c.manifest_),P.jumpToEnd()}})};
|
|
1679
1751
|
shaka.dash.DashParser.prototype.parseServiceDescription_=function(a){var b=shaka.util.XmlUtils,c=b.findChild(a,"ServiceDescription");if(!c)return null;a=b.findChild(c,"Latency");b=b.findChild(c,"PlaybackRate");return a&&a.getAttribute("max")||b?(a=a&&a.getAttribute("max")?parseInt(a.getAttribute("max"),10)/1E3:null,b=b?parseFloat(b.getAttribute("max")):null,{maxLatency:a,maxPlaybackRate:b}):null};
|
|
1680
1752
|
shaka.dash.DashParser.prototype.parsePeriods_=function(a,b,c){var d=shaka.util.XmlUtils,e=d.parseAttr(c,"mediaPresentationDuration",d.parseDuration),f=[],g=0;c=d.findChildren(c,"Period");for(var h=0;h<c.length;h++){var k=c[h],l=c[h+1],m=d.parseAttr(k,"start",d.parseDuration,g),n=k.id,p=d.parseAttr(k,"duration",d.parseDuration),q=null;if(l){var r=d.parseAttr(l,"start",d.parseDuration);null!=r&&(q=r-m)}else null!=e&&(q=e-m);r=shaka.util.ManifestParserUtils.GAP_OVERLAP_TOLERANCE_SECONDS;q&&p&&Math.abs(q-
|
|
1681
1753
|
p)>r&&shaka.log.warning("There is a gap/overlap between Periods",k);null==q&&(q=p);if(null!==this.largestPeriodStartTime_&&null!==n&&null!==m&&m<this.largestPeriodStartTime_&&!this.lastManifestUpdatePeriodIds_.includes(n)&&h+1!=c.length)shaka.log.debug("Skipping Period with ID "+n+" as its start time is smaller than the largest period start time that has been seen, and ID is unseen before");else{null!==m&&(null===this.largestPeriodStartTime_||m>this.largestPeriodStartTime_)&&(this.largestPeriodStartTime_=
|
|
@@ -1683,32 +1755,33 @@ m);g=this.parsePeriod_(a,b,{start:m,duration:q,node:k,isLastPeriod:null==q||!l})
|
|
|
1683
1755
|
duration:e,durationDerivedFromPeriods:!1}):{periods:f,duration:g,durationDerivedFromPeriods:!0}};
|
|
1684
1756
|
shaka.dash.DashParser.prototype.parsePeriod_=function(a,b,c){var d=this,e=shaka.util.Functional,f=shaka.util.XmlUtils,g=shaka.util.ManifestParserUtils.ContentType;a.period=this.createFrame_(c.node,null,b);a.periodInfo=c;a.period.availabilityTimeOffset=a.availabilityTimeOffset;a.period.id||(shaka.log.info("No Period ID given for Period with start time "+c.start+", Assigning a default"),a.period.id="__shaka_period_"+c.start);var h=f.findChildren(c.node,"EventStream");b=a.presentationTimeline.getSegmentAvailabilityStart();
|
|
1685
1757
|
h=$jscomp.makeIterator(h);for(var k=h.next();!k.done;k=h.next())this.parseEventStream_(c.start,c.duration,k.value,b);e=f.findChildren(c.node,"AdaptationSet").map(function(n){return d.parseAdaptationSet_(a,n)}).filter(e.isNotNull);if(a.dynamic){c=[];f=$jscomp.makeIterator(e);for(b=f.next();!b.done;b=f.next())for(b=$jscomp.makeIterator(b.value.representationIds),h=b.next();!h.done;h=b.next())c.push(h.value);f=new Set(c);if(c.length!=f.size)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
|
|
1686
|
-
shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.DASH_DUPLICATE_REPRESENTATION_ID);}c=e.filter(function(n){return!n.trickModeFor});e=e.filter(function(n){return n.trickModeFor});e=$jscomp.makeIterator(e);for(f=e.next();!f.done;f=e.next())for(f=f.value,b=f.trickModeFor.split(" "),h=$jscomp.makeIterator(c),k=h.next();!k.done;k=h.next()){var l=k.value;if(b.includes(l.id)){k={};l=$jscomp.makeIterator(l.streams);for(var m=l.next();!m.done;k={$jscomp$loop$prop$stream$
|
|
1687
|
-
m=l.next())k.$jscomp$loop$prop$stream$
|
|
1758
|
+
shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.DASH_DUPLICATE_REPRESENTATION_ID);}c=e.filter(function(n){return!n.trickModeFor});e=e.filter(function(n){return n.trickModeFor});e=$jscomp.makeIterator(e);for(f=e.next();!f.done;f=e.next())for(f=f.value,b=f.trickModeFor.split(" "),h=$jscomp.makeIterator(c),k=h.next();!k.done;k=h.next()){var l=k.value;if(b.includes(l.id)){k={};l=$jscomp.makeIterator(l.streams);for(var m=l.next();!m.done;k={$jscomp$loop$prop$stream$779:k.$jscomp$loop$prop$stream$779},
|
|
1759
|
+
m=l.next())k.$jscomp$loop$prop$stream$779=m.value,k.$jscomp$loop$prop$stream$779.trickModeVideo=f.streams.find(function(n){return function(p){return shaka.util.MimeUtils.getNormalizedCodec(n.$jscomp$loop$prop$stream$779.codecs)==shaka.util.MimeUtils.getNormalizedCodec(p.codecs)}}(k))}}f=this.config_.disableAudio?[]:this.getSetsOfType_(c,g.AUDIO);b=this.config_.disableVideo?[]:this.getSetsOfType_(c,g.VIDEO);e=this.config_.disableText?[]:this.getSetsOfType_(c,g.TEXT);c=this.config_.disableThumbnails?
|
|
1688
1760
|
[]:this.getSetsOfType_(c,g.IMAGE);if(!b.length&&!f.length)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.DASH_EMPTY_PERIOD);g=[];f=$jscomp.makeIterator(f);for(h=f.next();!h.done;h=f.next())g.push.apply(g,$jscomp.arrayFromIterable(h.value.streams));f=[];b=$jscomp.makeIterator(b);for(h=b.next();!h.done;h=b.next())f.push.apply(f,$jscomp.arrayFromIterable(h.value.streams));b=[];e=$jscomp.makeIterator(e);for(h=e.next();!h.done;h=e.next())b.push.apply(b,
|
|
1689
1761
|
$jscomp.arrayFromIterable(h.value.streams));e=[];c=$jscomp.makeIterator(c);for(h=c.next();!h.done;h=c.next())e.push.apply(e,$jscomp.arrayFromIterable(h.value.streams));return{id:a.period.id,audioStreams:g,videoStreams:f,textStreams:b,imageStreams:e}};shaka.dash.DashParser.prototype.getSetsOfType_=function(a,b){return a.filter(function(c){return c.contentType==b})};
|
|
1690
1762
|
shaka.dash.DashParser.prototype.parseAdaptationSet_=function(a,b){var c=this,d=shaka.util.XmlUtils,e=shaka.util.Functional,f=shaka.util.ManifestParserUtils,g=f.ContentType,h=shaka.dash.ContentProtection;a.adaptationSet=this.createFrame_(b,a.period,null);var k=!1,l=d.findChildren(b,"Role"),m=l.map(function(E){return E.getAttribute("value")}).filter(e.isNotNull),n=void 0;if(e=a.adaptationSet.contentType==g.TEXT)n=f.TextStreamKind.SUBTITLE;l=$jscomp.makeIterator(l);for(var p=l.next();!p.done;p=l.next()){p=
|
|
1691
|
-
p.value;var q=p.getAttribute("schemeIdUri");if(null==q||"urn:mpeg:dash:role:2011"==q)switch(p=p.getAttribute("value"),p){case "main":k=!0;break;case "caption":case "subtitle":n=p}}var r;q=function(E){switch(E){case 1:case 6:case 13:case 14:case 15:return"SDR";case 16:return"PQ";case 18:return"HLG"}};var t=d.findChildren(b,"EssentialProperty");l=null;p=!1;t=$jscomp.makeIterator(t);for(var
|
|
1692
|
-
u?l=
|
|
1693
|
-
var
|
|
1694
|
-
|
|
1695
|
-
else"2"==u&&(
|
|
1696
|
-
D,n,
|
|
1697
|
-
b[0].codecs),g=$jscomp.makeIterator(b),
|
|
1698
|
-
"
|
|
1763
|
+
p.value;var q=p.getAttribute("schemeIdUri");if(null==q||"urn:mpeg:dash:role:2011"==q)switch(p=p.getAttribute("value"),p){case "main":k=!0;break;case "caption":case "subtitle":n=p}}var r;q=function(E){switch(E){case 1:case 6:case 13:case 14:case 15:return"SDR";case 16:return"PQ";case 18:return"HLG"}};var t=d.findChildren(b,"EssentialProperty");l=null;p=!1;t=$jscomp.makeIterator(t);for(var v=t.next();!v.done;v=t.next()){v=v.value;var u=v.getAttribute("schemeIdUri");"http://dashif.org/guidelines/trickmode"==
|
|
1764
|
+
u?l=v.getAttribute("value"):"urn:mpeg:mpegB:cicp:TransferCharacteristics"==u?r=q(parseInt(v.getAttribute("value"),10)):"urn:mpeg:mpegB:cicp:ColourPrimaries"!=u&&"urn:mpeg:mpegB:cicp:MatrixCoefficients"!=u&&(p=!0)}t=d.findChildren(b,"SupplementalProperty");t=$jscomp.makeIterator(t);for(v=t.next();!v.done;v=t.next())v=v.value,"urn:mpeg:mpegB:cicp:TransferCharacteristics"==v.getAttribute("schemeIdUri")&&(r=q(parseInt(v.getAttribute("value"),10)));t=d.findChildren(b,"Accessibility");q=shaka.util.LanguageUtils;
|
|
1765
|
+
var w=new Map;t=$jscomp.makeIterator(t);for(v=t.next();!v.done;v=t.next())if(u=v.value,v=u.getAttribute("schemeIdUri"),u=u.getAttribute("value"),"urn:scte:dash:cc:cea-608:2015"==v)if(v=1,null!=u){u=u.split(";");for(var x=$jscomp.makeIterator(u),y=x.next();!y.done;y=x.next()){var z=y.value,A=y=void 0;z.includes("=")?(z=z.split("="),y=z[0].startsWith("CC")?z[0]:"CC"+z[0],A=z[1]||"und"):(y="CC"+v,2==u.length?v+=2:v++,A=z);w.set(y,q.normalize(A))}}else w.set("CC1","und");else if("urn:scte:dash:cc:cea-708:2015"==
|
|
1766
|
+
v)if(v=1,null!=u)for(u=$jscomp.makeIterator(u.split(";")),y=u.next();!y.done;y=u.next())y=y.value,z=x=void 0,y.includes("=")?(y=y.split("="),x="svc"+y[0],z=y[1].split(",")[0].split(":").pop()):(x="svc"+v,v++,z=y),w.set(x,q.normalize(z));else w.set("svc1","und");else if("urn:mpeg:dash:role:2011"==v)null!=u&&(m.push(u),"captions"==u&&(n=f.TextStreamKind.CLOSED_CAPTION));else if("urn:tva:metadata:cs:AudioPurposeCS:2007"==v)if("1"==u)var C=shaka.media.ManifestParser.AccessibilityPurpose.VISUALLY_IMPAIRED;
|
|
1767
|
+
else"2"==u&&(C=shaka.media.ManifestParser.AccessibilityPurpose.HARD_OF_HEARING);if(p)return null;f=d.findChildren(b,"ContentProtection");var D=h.parseFromAdaptationSet(f,this.config_.dash.ignoreDrmInfo,this.config_.dash.keySystemsByURI),G=shaka.util.LanguageUtils.normalize(a.adaptationSet.language||"und"),B=b.getAttribute("label");(h=d.findChildren(b,"Label"))&&h.length&&(h=h[0],h.textContent&&(B=h.textContent));d=d.findChildren(b,"Representation");b=d.map(function(E){if(E=c.parseRepresentation_(a,
|
|
1768
|
+
D,n,G,B,k,m,w,E,C))E.hdr=E.hdr||r;return E}).filter(function(E){return!!E});if(0==b.length){l=a.adaptationSet.contentType==g.IMAGE;if(this.config_.dash.ignoreEmptyAdaptationSet||e||l)return null;throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.DASH_EMPTY_ADAPTATION_SET);}if(!a.adaptationSet.contentType||a.adaptationSet.contentType==g.APPLICATION)for(a.adaptationSet.contentType=shaka.dash.DashParser.guessContentType_(b[0].mimeType,
|
|
1769
|
+
b[0].codecs),g=$jscomp.makeIterator(b),h=g.next();!h.done;h=g.next())h.value.type=a.adaptationSet.contentType;g=a.adaptationSet.id||"__fake__"+this.globalId_++;e=$jscomp.makeIterator(b);for(h=e.next();!h.done;h=e.next()){h=h.value;f=$jscomp.makeIterator(D.drmInfos);for(p=f.next();!p.done;p=f.next())p=p.value,p.keyIds=p.keyIds&&h.keyIds?new Set([].concat($jscomp.arrayFromIterable(p.keyIds),$jscomp.arrayFromIterable(h.keyIds))):p.keyIds||h.keyIds;this.config_.dash.enableAudioGroups&&(h.groupId=g)}e=
|
|
1770
|
+
d.map(function(E){return E.getAttribute("id")}).filter(shaka.util.Functional.isNotNull);return{id:g,contentType:a.adaptationSet.contentType,language:G,main:k,streams:b,drmInfos:D.drmInfos,trickModeFor:l,representationIds:e}};
|
|
1699
1771
|
shaka.dash.DashParser.prototype.parseRepresentation_=function(a,b,c,d,e,f,g,h,k,l){var m=this,n=shaka.util.XmlUtils,p=shaka.util.ManifestParserUtils.ContentType;a.representation=this.createFrame_(k,a.adaptationSet,null);this.minTotalAvailabilityTimeOffset_=Math.min(this.minTotalAvailabilityTimeOffset_,a.representation.availabilityTimeOffset);if(!this.verifyRepresentation_(a.representation))return shaka.log.warning("Skipping Representation",a.representation),null;var q=a.periodInfo.start;a.bandwidth=
|
|
1700
|
-
n.parseAttr(k,"bandwidth",n.parsePositiveInt)||0;var r=a.representation.contentType,t=r==p.TEXT||r==p.APPLICATION;p=r==p.IMAGE;try{
|
|
1701
|
-
|
|
1702
|
-
|
|
1703
|
-
|
|
1704
|
-
|
|
1705
|
-
|
|
1706
|
-
|
|
1772
|
+
n.parseAttr(k,"bandwidth",n.parsePositiveInt)||0;var r=a.representation.contentType,t=r==p.TEXT||r==p.APPLICATION;p=r==p.IMAGE;try{var v=void 0;if(b.aes128Info){var u=shaka.util.ManifestParserUtils.resolveUris(a.representation.baseUris,[b.aes128Info.keyUri]),w=shaka.net.NetworkingEngine.RequestType.KEY,x=shaka.net.NetworkingEngine.makeRequest(u,this.config_.retryParameters);v={method:"AES-128",iv:b.aes128Info.iv,firstMediaSequenceNumber:0,fetchKey:function(){var E,F,H;return $jscomp.asyncExecutePromiseGeneratorProgram(function(I){if(1==
|
|
1773
|
+
I.nextAddress)return I.yield(m.makeNetworkRequest_(x,w),2);if(3!=I.nextAddress){E=I.yieldResult;if(!E.data||16!=E.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);F={name:"AES-CBC"};H=v;return I.yield(window.crypto.subtle.importKey("raw",E.data,F,!0,["decrypt"]),3)}H.cryptoKey=I.yieldResult;v.fetchKey=void 0;I.jumpToEnd()})}}}u=function(E,F,H,I){return m.requestSegment_(E,F,H,I)};if(a.representation.segmentBase)var y=
|
|
1774
|
+
shaka.dash.SegmentBase.createStreamInfo(a,u,v);else if(a.representation.segmentList)y=shaka.dash.SegmentList.createStreamInfo(a,this.streamMap_,v);else if(a.representation.segmentTemplate)y=shaka.dash.SegmentTemplate.createStreamInfo(a,u,this.streamMap_,!!this.manifest_,this.config_.dash.initialSegmentLimit,this.periodDurations_,v);else{goog.asserts.assert(t,"Must have Segment* with non-text streams.");var z=a.representation.baseUris,A=a.periodInfo.duration||0;y={generateSegmentIndex:function(){return Promise.resolve(shaka.media.SegmentIndex.forSingleSegment(q,
|
|
1775
|
+
A,z))}}}}catch(E){if((t||p)&&E.code==shaka.util.Error.Code.DASH_NO_SEGMENT_INFO)return null;throw E;}u=n.findChildren(k,"ContentProtection");u=shaka.dash.ContentProtection.parseFromRepresentation(u,b,this.config_.dash.ignoreDrmInfo,this.config_.dash.keySystemsByURI);u=new Set(u?[u]:[]);r=!1;n.findChildren(k,"SupplementalProperty").some(function(E){return"tag:dolby.com,2018:dash:EC3_ExtensionType:2018"==E.getAttribute("schemeIdUri")&&"JOC"==E.getAttribute("value")})&&(r=!0);var C=!1;t&&(C=g.includes("forced_subtitle")||
|
|
1776
|
+
g.includes("forced-subtitle"));var D;if(p&&((k=n.findChildren(k,"EssentialProperty").find(function(E){return["http://dashif.org/thumbnail_tile","http://dashif.org/guidelines/thumbnail_tile"].includes(E.getAttribute("schemeIdUri"))}))&&(D=k.getAttribute("value")),!D))return null;var G;k=a.representation.codecs;a.profiles.includes("http://dashif.org/guidelines/dash-if-uhd#hevc-hdr-pq10")&&(k.includes("hvc1.2.4.L153.B0")||k.includes("hev1.2.4.L153.B0"))&&(G="PQ");k=a.representation.id?a.period.id+","+
|
|
1777
|
+
a.representation.id:"";var B=k&&this.streamMap_[k]?this.streamMap_[k]:{id:this.globalId_++,originalId:a.representation.id,groupId:null,createSegmentIndex:function(){return Promise.resolve()},closeSegmentIndex:function(){B.segmentIndex&&(B.segmentIndex.release(),B.segmentIndex=null)},segmentIndex:null,mimeType:a.representation.mimeType,codecs:a.representation.codecs,frameRate:a.representation.frameRate,pixelAspectRatio:a.representation.pixelAspectRatio,bandwidth:a.bandwidth,width:a.representation.width,
|
|
1778
|
+
height:a.representation.height,kind:c,encrypted:0<b.drmInfos.length,drmInfos:b.drmInfos,keyIds:u,language:d,originalLanguage:a.adaptationSet.language,label:e,type:a.adaptationSet.contentType,primary:f,trickModeVideo:null,emsgSchemeIdUris:a.representation.emsgSchemeIdUris,roles:g,forced:C,channelsCount:a.representation.numChannels,audioSamplingRate:a.representation.audioSamplingRate,spatialAudio:r,closedCaptions:h,hdr:G,tilesLayout:D,matchedStreams:[],accessibilityPurpose:l,external:!1};B.createSegmentIndex=
|
|
1779
|
+
function(){var E;return $jscomp.asyncExecutePromiseGeneratorProgram(function(F){if(1==F.nextAddress){if(B.segmentIndex)return F.jumpTo(0);E=B;return F.yield(y.generateSegmentIndex(),3)}E.segmentIndex=F.yieldResult;F.jumpToEnd()})};k&&a.dynamic&&!this.streamMap_[k]&&(this.streamMap_[k]=B);return B};
|
|
1707
1780
|
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"),
|
|
1708
|
-
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.setUpdateTimer_(b);d.jumpToEnd()}})};shaka.dash.DashParser.prototype.setUpdateTimer_=function(a){0>this.updatePeriod_||(a=Math.max(this.updatePeriod_-a,this.averageUpdateDuration_.getEstimate()),this.updateTimer_.tickAfter(a))};
|
|
1781
|
+
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.setUpdateTimer_=function(a){0>this.updatePeriod_||(a=Math.max(this.updatePeriod_-a,this.averageUpdateDuration_.getEstimate()),this.updateTimer_.tickAfter(a))};
|
|
1709
1782
|
shaka.dash.DashParser.prototype.createFrame_=function(a,b,c){goog.asserts.assert(b||c,"Must provide either parent or baseUris");var d=shaka.util.ManifestParserUtils,e=shaka.util.XmlUtils;b=b||{contentType:"",mimeType:"",codecs:"",emsgSchemeIdUris:[],frameRate:void 0,pixelAspectRatio:void 0,numChannels:null,audioSamplingRate:null,availabilityTimeOffset:0};c=c||b.baseUris;var f=e.parseNonNegativeInt,g=e.evalDivision,h=e.findChildren(a,"BaseURL"),k=h.map(e.getContents),l=a.getAttribute("contentType")||
|
|
1710
|
-
b.contentType,m=a.getAttribute("mimeType")||b.mimeType,n=a.getAttribute("codecs")||b.codecs;g=e.parseAttr(a,"frameRate",g)||b.frameRate;var p=a.getAttribute("sar")||b.pixelAspectRatio,q=this.emsgSchemeIdUris_(e.findChildren(a,"InbandEventStream"),b.emsgSchemeIdUris),r=e.findChildren(a,"AudioChannelConfiguration");r=this.parseAudioChannels_(r)||b.numChannels;var t=e.parseAttr(a,"audioSamplingRate",f)||b.audioSamplingRate;l||(l=shaka.dash.DashParser.guessContentType_(m,n));var
|
|
1711
|
-
u=e.findChild(a,"SegmentTemplate"),v
|
|
1783
|
+
b.contentType,m=a.getAttribute("mimeType")||b.mimeType,n=a.getAttribute("codecs")||b.codecs;g=e.parseAttr(a,"frameRate",g)||b.frameRate;var p=a.getAttribute("sar")||b.pixelAspectRatio,q=this.emsgSchemeIdUris_(e.findChildren(a,"InbandEventStream"),b.emsgSchemeIdUris),r=e.findChildren(a,"AudioChannelConfiguration");r=this.parseAudioChannels_(r)||b.numChannels;var t=e.parseAttr(a,"audioSamplingRate",f)||b.audioSamplingRate;l||(l=shaka.dash.DashParser.guessContentType_(m,n));var v=e.findChild(a,"SegmentBase"),
|
|
1784
|
+
u=e.findChild(a,"SegmentTemplate"),w=v?e.parseAttr(v,"availabilityTimeOffset",e.parseFloat)||0:0,x=u?e.parseAttr(u,"availabilityTimeOffset",e.parseFloat)||0:0;h=h&&h.length?e.parseAttr(h[0],"availabilityTimeOffset",e.parseFloat)||0:0;h=b.availabilityTimeOffset+h+w+x;return{baseUris:d.resolveUris(c,k),segmentBase:v||b.segmentBase,segmentList:e.findChild(a,"SegmentList")||b.segmentList,segmentTemplate:u||b.segmentTemplate,width:e.parseAttr(a,"width",f)||b.width,height:e.parseAttr(a,"height",f)||b.height,
|
|
1712
1785
|
contentType:l,mimeType:m,codecs:n,frameRate:g,pixelAspectRatio:p,emsgSchemeIdUris:q,id:a.getAttribute("id"),language:a.getAttribute("lang"),numChannels:r,audioSamplingRate:t,availabilityTimeOffset:h}};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.getAttribute("schemeIdUri"),b.includes(c)||b.push(c);return b};
|
|
1713
1786
|
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.getAttribute("schemeIdUri"))if(c=c.getAttribute("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",
|
|
1714
1787
|
b,c);continue}return d;case "tag:dolby.com,2014:dash:audio_channel_configuration:2011":case "urn:dolby:dash:audio_channel_configuration:2011":d=parseInt(c,16);if(!d){shaka.log.warning("Channel parsing failure! Ignoring scheme and value",b,c);continue}for(a=0;d;)d&1&&++a,d>>=1;return a;case "urn:mpeg:mpegB:cicp:ChannelConfiguration":d=[0,1,2,3,4,5,6,8,2,3,4,7,8,24,8,12,10,12,14,12,14];var e=parseInt(c,10);if(!e){shaka.log.warning("Channel parsing failure! Ignoring scheme and value",b,c);continue}if(0<
|
|
@@ -1723,10 +1796,10 @@ break;default:shaka.log.alwaysWarn("Unrecognized scheme in UTCTiming element",k)
|
|
|
1723
1796
|
p.return(0)}})};
|
|
1724
1797
|
shaka.dash.DashParser.prototype.parseEventStream_=function(a,b,c,d){var e=shaka.util.XmlUtils,f=e.parseNonNegativeInt,g=c.getAttribute("schemeIdUri")||"",h=c.getAttribute("value")||"",k=e.parseAttr(c,"timescale",f)||1;c=$jscomp.makeIterator(e.findChildren(c,"Event"));for(var l=c.next();!l.done;l=c.next()){l=l.value;var m=e.parseAttr(l,"presentationTime",f)||0,n=e.parseAttr(l,"duration",f)||0;m=m/k+a;n=m+n/k;null!=b&&(m=Math.min(m,a+b),n=Math.min(n,a+b));n<d||(l={schemeIdUri:g,value:h,startTime:m,
|
|
1725
1798
|
endTime:n,id:l.getAttribute("id")||"",eventElement:l},this.playerInterface_.onTimelineRegionAdded(l))}};
|
|
1726
|
-
shaka.dash.DashParser.prototype.requestSegment_=function(a,b,c,d){var e=this,f,g,h,k
|
|
1727
|
-
|
|
1728
|
-
shaka.media.ManifestParser.registerParserByMime("application/dash+xml",function(){return new shaka.dash.DashParser});shaka.media.ManifestParser.registerParserByMime("video/vnd.mpeg.dash.mpd",function(){return new shaka.dash.DashParser});shaka.dependencies=function(){};shaka.dependencies.add=function(a,b){if(!shaka.dependencies.Allowed[a])throw Error(a+" is not supported");shaka.dependencies.dependencies_.set(a,function(){return b})};shaka.dependencies.has=function(a){return shaka.dependencies.dependencies_.has(a)};shaka.dependencies.
|
|
1729
|
-
goog.exportSymbol("shaka.dependencies",shaka.dependencies);goog.exportProperty(shaka.dependencies,"has",shaka.dependencies.has);goog.exportProperty(shaka.dependencies,"add",shaka.dependencies.add);shaka.dependencies.Allowed={muxjs:"muxjs",ISOBoxer:"ISOBoxer"};goog.exportProperty(shaka.dependencies,"Allowed",shaka.dependencies.Allowed);shaka.dependencies.dependencies_=new Map([[shaka.dependencies.Allowed.
|
|
1799
|
+
shaka.dash.DashParser.prototype.requestSegment_=function(a,b,c,d){var e=this,f,g,h,k;return $jscomp.asyncExecutePromiseGeneratorProgram(function(l){if(1==l.nextAddress)return f=shaka.net.NetworkingEngine.RequestType.SEGMENT,g=d?shaka.net.NetworkingEngine.AdvancedRequestType.INIT_SEGMENT:shaka.net.NetworkingEngine.AdvancedRequestType.MEDIA_SEGMENT,h=shaka.util.Networking.createSegmentRequest(a,b,c,e.config_.retryParameters),l.yield(e.makeNetworkRequest_(h,f,{type:g}),2);k=l.yieldResult;return l.return(k.data)})};
|
|
1800
|
+
shaka.dash.DashParser.guessContentType_=function(a,b){b=shaka.util.MimeUtils.getFullType(a,b);return shaka.text.TextEngine.isTypeSupported(b)?shaka.util.ManifestParserUtils.ContentType.TEXT:a.split("/")[0]};shaka.dash.DashParser.prototype.makeNetworkRequest_=function(a,b,c){a=this.playerInterface_.networkingEngine.request(b,a,c);this.operationManager_.manage(a);return a.promise};goog.exportSymbol("shaka.dash.DashParser",shaka.dash.DashParser);
|
|
1801
|
+
shaka.media.ManifestParser.registerParserByExtension("mpd",function(){return new shaka.dash.DashParser});shaka.media.ManifestParser.registerParserByMime("application/dash+xml",function(){return new shaka.dash.DashParser});shaka.media.ManifestParser.registerParserByMime("video/vnd.mpeg.dash.mpd",function(){return new shaka.dash.DashParser});shaka.dependencies=function(){};shaka.dependencies.add=function(a,b){if(!shaka.dependencies.Allowed[a])throw Error(a+" is not supported");a==shaka.dependencies.Allowed.muxjs?shaka.Deprecate.deprecateFeature(5,"mux.js","mux.js is no longer used in Shaka Player."):shaka.dependencies.dependencies_.set(a,function(){return b})};shaka.dependencies.has=function(a){return shaka.dependencies.dependencies_.has(a)};shaka.dependencies.isoBoxer=function(){return shaka.dependencies.dependencies_.get(shaka.dependencies.Allowed.ISOBoxer)()};
|
|
1802
|
+
goog.exportSymbol("shaka.dependencies",shaka.dependencies);goog.exportProperty(shaka.dependencies,"has",shaka.dependencies.has);goog.exportProperty(shaka.dependencies,"add",shaka.dependencies.add);shaka.dependencies.Allowed={muxjs:"muxjs",ISOBoxer:"ISOBoxer"};goog.exportProperty(shaka.dependencies,"Allowed",shaka.dependencies.Allowed);shaka.dependencies.dependencies_=new Map([[shaka.dependencies.Allowed.ISOBoxer,function(){return window.ISOBoxer}]]);shaka.hls={};shaka.hls.Utils=function(){};shaka.hls.Utils.filterTagsByName=function(a,b){return a.filter(function(c){return c.name==b})};shaka.hls.Utils.filterTagsByType=function(a,b){return a.filter(function(c){return c.getRequiredAttrValue("TYPE")==b})};shaka.hls.Utils.getFirstTagWithName=function(a,b){a=shaka.hls.Utils.filterTagsByName(a,b);return a.length?a[0]:null};
|
|
1730
1803
|
shaka.hls.Utils.getFirstTagWithNameAsNumber=function(a,b,c){c=void 0===c?0:c;return(a=shaka.hls.Utils.getFirstTagWithName(a,b))?Number(a.value):c};shaka.hls.Utils.constructAbsoluteUri=function(a,b){return shaka.util.ManifestParserUtils.resolveUris([a],[b])[0]};shaka.hls.Utils.isComment=function(a){return/^#(?!EXT)/m.test(a)};shaka.hls.Playlist=function(a,b,c,d){this.absoluteUri=a;this.type=b;this.tags=c;this.segments=d||null};shaka.hls.PlaylistType={MASTER:0,MEDIA:1};shaka.hls.Tag=function(a,b,c,d){this.id=a;this.name=b;this.attributes=c;this.value=void 0===d?null:d};
|
|
1731
1804
|
shaka.hls.Tag.prototype.toString=function(){var a=function(c){var d=isNaN(Number(c.value))?'"'+c.value+'"':c.value;return c.name+"="+d},b="#"+this.name;a=this.attributes?this.attributes.map(a):[];this.value&&a.unshift(this.value);0<a.length&&(b+=":"+a.join(","));return b};shaka.hls.Tag.prototype.addAttribute=function(a){this.attributes.push(a)};
|
|
1732
1805
|
shaka.hls.Tag.prototype.getAttribute=function(a){var b=this.attributes.filter(function(c){return c.name==a});goog.asserts.assert(2>b.length,"A tag should not have multiple attributes with the same name!");return b.length?b[0]:null};shaka.hls.Tag.prototype.getAttributeValue=function(a,b){return(a=this.getAttribute(a))?a.value:b||null};
|
|
@@ -1745,16 +1818,16 @@ b,c,e)};shaka.hls.ManifestTextParser.MEDIA_PLAYLIST_TAGS="EXT-X-TARGETDURATION E
|
|
|
1745
1818
|
shaka.net.DataUriPlugin.parseRaw=function(a){var b=a.split(":");if(2>b.length||"data"!=b[0])throw shaka.log.error("Bad data URI, failed to parse scheme"),new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.MALFORMED_DATA_URI,a);b=b.slice(1).join(":").split(",");if(2>b.length)throw shaka.log.error("Bad data URI, failed to extract encoding and MIME type"),new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.NETWORK,
|
|
1746
1819
|
shaka.util.Error.Code.MALFORMED_DATA_URI,a);var c=b[0];a=window.decodeURIComponent(b.slice(1).join(","));b=c.split(";");c=b[0];var d=!1;1<b.length&&"base64"==b[b.length-1]&&(d=!0,b.pop());return{data:d?shaka.util.Uint8ArrayUtils.fromBase64(a):shaka.util.StringUtils.toUTF8(a),contentType:c}};goog.exportSymbol("shaka.net.DataUriPlugin",shaka.net.DataUriPlugin);goog.exportProperty(shaka.net.DataUriPlugin,"parse",shaka.net.DataUriPlugin.parse);shaka.net.NetworkingEngine.registerScheme("data",shaka.net.DataUriPlugin.parse);shaka.hls.HlsParser=function(){var a=this;this.config_=this.playerInterface_=null;this.globalId_=1;this.globalVariables_=new Map;this.groupIdToStreamInfosMap_=new Map;this.mediaSequenceToStartTimeByType_=new Map;var b=shaka.util.ManifestParserUtils.ContentType;this.mediaSequenceToStartTimeByType_.set(b.VIDEO,new Map);this.mediaSequenceToStartTimeByType_.set(b.AUDIO,new Map);this.mediaSequenceToStartTimeByType_.set(b.TEXT,new Map);this.mediaSequenceToStartTimeByType_.set(b.IMAGE,new Map);this.variantUriSet_=
|
|
1747
1820
|
new Set;this.uriToStreamInfosMap_=new Map;this.presentationTimeline_=null;this.masterPlaylistUri_="";this.manifestTextParser_=new shaka.hls.ManifestTextParser;this.minSequenceNumber_=-1;this.lowestSyncTime_=Infinity;this.streamsFinalized_=!1;this.updatePlaylistTimer_=new shaka.util.Timer(function(){a.onUpdate_()});this.presentationType_=shaka.hls.HlsParser.PresentationType_.VOD;this.manifest_=null;this.maxTargetDuration_=0;this.lastTargetDuration_=Infinity;this.lowLatencyPresentationDelay_=this.presentationDelay_=
|
|
1748
|
-
this.partialTargetDuration_=0;this.operationManager_=new shaka.util.OperationManager;this.groupIdToClosedCaptionsMap_=new Map;this.groupIdToCodecsMap_=new Map;this.mapTagToInitSegmentRefMap_=new Map;this.lowLatencyByterangeOptimization_=this.lowLatencyMode_=!1};shaka.hls.HlsParser.prototype.configure=function(a){this.config_=a};
|
|
1821
|
+
this.partialTargetDuration_=0;this.operationManager_=new shaka.util.OperationManager;this.groupIdToClosedCaptionsMap_=new Map;this.groupIdToCodecsMap_=new Map;this.mapTagToInitSegmentRefMap_=new Map;this.lowLatencyByterangeOptimization_=this.lowLatencyMode_=!1;this.averageUpdateDuration_=new shaka.abr.Ewma(5)};shaka.hls.HlsParser.prototype.configure=function(a){this.config_=a};
|
|
1749
1822
|
shaka.hls.HlsParser.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.playerInterface_=b,c.lowLatencyMode_=b.isLowLatencyMode(),e.yield(c.requestManifest_(a),2);if(3!=e.nextAddress)return d=e.yieldResult,c.masterPlaylistUri_=d.uri,goog.asserts.assert(d.data,"Response data should be non-null!"),e.yield(c.parseManifest_(d.data,a),3);goog.asserts.assert(c.manifest_,
|
|
1750
1823
|
"Manifest should be non-null");return e.return(c.manifest_)})};
|
|
1751
1824
|
shaka.hls.HlsParser.prototype.stop=function(){this.updatePlaylistTimer_&&(this.updatePlaylistTimer_.stop(),this.updatePlaylistTimer_=null);var a=[];this.operationManager_&&(a.push(this.operationManager_.destroy()),this.operationManager_=null);this.config_=this.playerInterface_=null;this.variantUriSet_.clear();this.manifest_=null;this.uriToStreamInfosMap_.clear();this.groupIdToStreamInfosMap_.clear();this.groupIdToCodecsMap_.clear();this.globalVariables_.clear();return Promise.all(a)};
|
|
1752
1825
|
shaka.hls.HlsParser.prototype.update=function(){var a=this,b,c,d,e,f,g,h,k,l;return $jscomp.asyncExecutePromiseGeneratorProgram(function(m){if(1==m.nextAddress){if(!a.isLive_())return m.return();b=[];c=Array.from(a.uriToStreamInfosMap_.values());a.lastTargetDuration_=Infinity;d=c.filter(function(n){return n.stream.segmentIndex});e=$jscomp.makeIterator(d);for(f=e.next();!f.done;f=e.next())g=f.value,b.push(a.updateStream_(g));return m.yield(Promise.all(b),2)}a.notifySegmentsForStreams_(d.map(function(n){return n.stream}));
|
|
1753
1826
|
h=d.some(function(n){return 0==n.hasEndList});d.length&&!h&&(k=shaka.hls.HlsParser.PresentationType_,a.setPresentationType_(k.VOD),l=d.map(function(n){return n.maxTimestamp}),a.presentationTimeline_.setDuration(Math.min.apply(Math,$jscomp.arrayFromIterable(l))),a.playerInterface_.updateDuration());h&&a.determineDuration_();m.jumpToEnd()})};shaka.hls.HlsParser.prototype.getMediaSequenceToStartTimeFor_=function(a){return this.isLive_()?this.mediaSequenceToStartTimeByType_.get(a.type):a.mediaSequenceToStartTime};
|
|
1754
|
-
shaka.hls.HlsParser.prototype.updateStream_=function(a){var b=this,c,d,e,f,g,h,k,l,m,n,p,q,r,t,
|
|
1755
|
-
!0),2);f=
|
|
1756
|
-
r=function(I
|
|
1757
|
-
"EXT-X-SKIP"))?Number(x.getAttributeValue("SKIPPED-SEGMENTS")):0,
|
|
1827
|
+
shaka.hls.HlsParser.prototype.updateStream_=function(a){var b=this,c,d,e,f,g,h,k,l,m,n,p,q,r,t,v,u,w,x,y,z,A,C,D,G,B,E;return $jscomp.asyncExecutePromiseGeneratorProgram(function(F){if(1==F.nextAddress)return c=a.absoluteMediaPlaylistUri,d=new goog.Uri(c),e=new goog.Uri.QueryData,a.canBlockReload&&(0<=a.nextMediaSequence&&e.add("_HLS_msn",String(a.nextMediaSequence)),0<=a.nextPart&&e.add("_HLS_part",String(a.nextPart))),a.canSkipSegments&&e.add("_HLS_skip","YES"),e.getCount()&&d.setQueryData(e),F.yield(b.requestManifest_(d.toString(),
|
|
1828
|
+
!0),2);f=F.yieldResult;if(!a.stream.segmentIndex)return F.return();g=b.manifestTextParser_.parsePlaylist(f.data,f.uri);if(g.type!=shaka.hls.PlaylistType.MEDIA)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_INVALID_PLAYLIST_HIERARCHY);h=shaka.hls.Utils.filterTagsByName(g.tags,"EXT-X-DEFINE");k=b.parseMediaVariables_(h);l=a.stream;m=b.getMediaSequenceToStartTimeFor_(a);n=b.parseDrmInfo_(g,l.mimeType);p=n.keyIds;q=n.drmInfos;
|
|
1829
|
+
r=function(H,I){return H.size===I.size&&[].concat($jscomp.arrayFromIterable(H)).every(function(J){return I.has(J)})};r(l.keyIds,p)||(l.keyIds=p,l.drmInfos=q,b.playerInterface_.newDrmInfo(l));t=b.createSegments_(a.verbatimMediaPlaylistUri,g,l.type,l.mimeType,m,k);v=t.segments;u=t.bandwidth;l.bandwidth=u;l.segmentIndex.mergeAndEvict(v,b.presentationTimeline_.getSegmentAvailabilityStart());v.length&&(w=shaka.hls.Utils.getFirstTagWithNameAsNumber(g.tags,"EXT-X-MEDIA-SEQUENCE",0),y=(x=shaka.hls.Utils.getFirstTagWithName(g.tags,
|
|
1830
|
+
"EXT-X-SKIP"))?Number(x.getAttributeValue("SKIPPED-SEGMENTS")):0,z=b.getNextMediaSequenceAndPart_(w,v),A=z.nextMediaSequence,C=z.nextPart,a.nextMediaSequence=A+y,a.nextPart=C,D=m.get(w),l.segmentIndex.evict(D));G=v[0];goog.asserts.assert(G,"Should have segments!");a.minTimestamp=G.startTime;B=v[v.length-1];goog.asserts.assert(B,"Should have segments!");a.maxTimestamp=B.endTime;if(E=shaka.hls.Utils.getFirstTagWithName(g.tags,"EXT-X-ENDLIST"))a.hasEndList=!0;b.determineLastTargetDuration_(g);F.jumpToEnd()})};
|
|
1758
1831
|
shaka.hls.HlsParser.prototype.onExpirationUpdated=function(a,b){};
|
|
1759
1832
|
shaka.hls.HlsParser.prototype.syncStreamsWithSequenceNumber_=function(a){for(var b=-1==this.minSequenceNumber_,c=$jscomp.makeIterator(a),d=c.next();!d.done;d=c.next()){d=d.value;var e=d.stream.segmentIndex;goog.asserts.assert(e,"Only loaded streams should be synced");var f=this.getMediaSequenceToStartTimeFor_(d);if(e=e.earliestReference()){if(goog.DEBUG){var g=f.values().next().value;goog.asserts.assert(g==e.startTime,"Sequence number map is not ordered as expected!")}f=$jscomp.makeIterator(f);for(g=
|
|
1760
1833
|
f.next();!g.done;g=f.next()){g=$jscomp.makeIterator(g.value);var h=g.next().value;if(g.next().value==e.startTime){b&&(this.minSequenceNumber_=Math.max(this.minSequenceNumber_,h));d.firstSequenceNumber=h;break}}}}if(!(0>this.minSequenceNumber_))for(shaka.log.debug("Syncing HLS streams against base sequence number:",this.minSequenceNumber_),a=$jscomp.makeIterator(a),d=a.next();!d.done;d=a.next())if(b=d.value,c=b.stream.segmentIndex)if(c.dropFirstReferences(this.minSequenceNumber_-b.firstSequenceNumber),
|
|
@@ -1762,18 +1835,18 @@ c=c.earliestReference())c=-c.startTime,b.stream.segmentIndex.offset(c),this.offs
|
|
|
1762
1835
|
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()){var c=b.value.stream.segmentIndex;goog.asserts.assert(c,"Only loaded streams should be synced");c=c.earliestReference();null!=c&&null!=c.syncTime&&(this.lowestSyncTime_=Math.min(this.lowestSyncTime_,c.syncTime))}}a=this.lowestSyncTime_;if(Infinity!=a)for(shaka.log.debug("Syncing HLS streams against base time:",a),c=$jscomp.makeIterator(this.uriToStreamInfosMap_.values()),
|
|
1763
1836
|
b=c.next();!b.done;b=c.next()){b=b.value;var d=b.stream.segmentIndex;if(null!=d){var e=d.earliestReference();if(null==e.syncTime)shaka.log.alwaysError("Missing EXT-X-PROGRAM-DATE-TIME for stream",b.verbatimMediaPlaylistUri,"Expect AV sync issues!");else for(this.offsetStreamInfo_(b,e.syncTime-a-e.startTime),b=$jscomp.makeIterator(d),d=b.next();!d.done;d=b.next())d.value.syncAgainst(a)}}};
|
|
1764
1837
|
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.verbatimMediaPlaylistUri)};
|
|
1765
|
-
shaka.hls.HlsParser.prototype.parseManifest_=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,t,
|
|
1766
|
-
if(e.type==shaka.hls.PlaylistType.MEDIA)return
|
|
1767
|
-
|
|
1768
|
-
|
|
1769
|
-
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);goog.asserts.assert(null==c.presentationTimeline_,"Presentation timeline created early!");c.presentationTimeline_=new shaka.media.PresentationTimeline(null,0);c.presentationTimeline_.setStatic(!0);e.type==shaka.hls.PlaylistType.MEDIA&&(c.isLive_()&&(c.changePresentationTimelineToLive_(),
|
|
1770
|
-
c.updatePlaylistTimer_.tickAfter(
|
|
1771
|
-
|
|
1772
|
-
shaka.hls.HlsParser.prototype.getMediaPlaylistBasicInfo_=function(a){var b=this,c,d,e,f,g,h,k,l,m,n,p,q,r,t,
|
|
1773
|
-
a.segments[0];l=new goog.Uri(k.absoluteUri);m=l.getPath().split(".").pop();if(n=c.RAW_FORMATS_TO_MIME_TYPES_[m])return
|
|
1774
|
-
shaka.net.NetworkingEngine.AdvancedRequestType.MEDIA_SEGMENT;return
|
|
1775
|
-
shaka.hls.HlsParser.prototype.getBasicInfoFromTs_=function(a){a=shaka.util.BufferUtils.toUint8(a.data);var b=(new shaka.util.TsParser).parse(a);a=b.getCodecs();b=b.getVideoInfo();var c=[],d=!1,e=!1;switch(a.audio){case "aac":c.push("mp4a.40.2");d=!0;break;case "mp3":c.push("mp4a.40.34");d=!0;break;case "ac3":c.push("ac-3");d=!0;break;case "ec3":c.push("ec-3"),d=!0}switch(a.video){case "avc":b.codec?c.push(b.codec):c.push("avc1.42E01E");e=!0;break;case "hvc":c.push("hvc1.1.6.L93.90"),
|
|
1776
|
-
{type:d&&!e?"audio":"video",mimeType:"video/mp2t",codecs:c.join(", "),language:null,height:b.height,width:b.width,channelCount:null,sampleRate:null}:null};
|
|
1838
|
+
shaka.hls.HlsParser.prototype.parseManifest_=function(a,b){var c=this,d,e,f,g,h,k,l,m,n,p,q,r,t,v,u,w,x,y,z,A,C,D,G,B,E,F,H,I,J,L,K,M,N;return $jscomp.asyncExecutePromiseGeneratorProgram(function(O){switch(O.nextAddress){case 1:d=shaka.hls.Utils;goog.asserts.assert(c.masterPlaylistUri_,"Master playlist URI must be set before calling parseManifest_!");e=c.manifestTextParser_.parsePlaylist(a,c.masterPlaylistUri_);f=d.filterTagsByName(e.tags,"EXT-X-DEFINE");c.parseMasterVariables_(f);g=[];h=[];k=[];
|
|
1839
|
+
if(e.type==shaka.hls.PlaylistType.MEDIA)return O.yield(c.getMediaPlaylistBasicInfo_(e),5);l=d.filterTagsByName(e.tags,"EXT-X-MEDIA");m=d.filterTagsByName(e.tags,"EXT-X-STREAM-INF");n=d.filterTagsByName(e.tags,"EXT-X-IMAGE-STREAM-INF");p=d.filterTagsByName(e.tags,"EXT-X-SESSION-KEY");c.parseCodecs_(m);q=d.filterTagsByName(e.tags,"EXT-X-SESSION-DATA");r=$jscomp.makeIterator(q);for(t=r.next();!t.done;t=r.next())if(v=t.value,u=v.getAttributeValue("DATA-ID"),w=v.getAttributeValue("URI"),x=v.getAttributeValue("LANGUAGE"),
|
|
1840
|
+
y=v.getAttributeValue("VALUE"),z=(new Map).set("id",u),w&&z.set("uri",shaka.hls.Utils.constructAbsoluteUri(c.masterPlaylistUri_,w)),x&&z.set("language",x),y&&z.set("value",y),A=new shaka.util.FakeEvent("sessiondata",z),c.playerInterface_)c.playerInterface_.onEvent(A);c.createStreamInfosFromMediaTags_(l);c.parseClosedCaptions_(l);g=c.createVariantsForTags_(m,p);h=c.parseTexts_(l);return O.yield(c.parseImages_(n),4);case 4:k=O.yieldResult;O.jumpTo(3);break;case 5:return C=O.yieldResult,D=C.type,G=C.mimeType,
|
|
1841
|
+
B=C.codecs,E=C.language,F=C.height,H=C.width,I=C.channelCount,J=C.sampleRate,L=new Map,O.yield(c.convertParsedPlaylistIntoStreamInfo_(e,b,b,B,D,E,!0,"Media Playlist",I,L,null,!1,J,!1,G),6);case 6:K=O.yieldResult,c.uriToStreamInfosMap_.set(b,K),"video"==D&&c.addVideoAttributes_(K.stream,H,F,null,null),g.push({id:0,language:c.getLanguage_(E),disabledUntilTime:0,primary:!0,audio:"audio"==D?K.stream:null,video:"video"==D?K.stream:null,bandwidth:K.stream.bandwidth||0,allowedByApplication:!0,allowedByKeySystem:!0,
|
|
1842
|
+
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);goog.asserts.assert(null==c.presentationTimeline_,"Presentation timeline created early!");c.presentationTimeline_=new shaka.media.PresentationTimeline(null,0);c.presentationTimeline_.setStatic(!0);e.type==shaka.hls.PlaylistType.MEDIA&&(c.isLive_()&&(c.changePresentationTimelineToLive_(e),M=c.getUpdatePlaylistDelay_(),
|
|
1843
|
+
c.updatePlaylistTimer_.tickAfter(M)),N=Array.from(c.uriToStreamInfosMap_.values()),c.finalizeStreams_(N),c.determineDuration_());c.manifest_={presentationTimeline:c.presentationTimeline_,variants:g,textStreams:h,imageStreams:k,offlineSessionIds:[],minBufferTime:0,sequenceMode:c.config_.hls.sequenceMode,ignoreManifestTimestampsInSegmentsMode:c.config_.hls.ignoreManifestTimestampsInSegmentsMode,type:shaka.media.ManifestParser.HLS,serviceDescription:null};c.playerInterface_.makeTextStreamsForClosedCaptions(c.manifest_);
|
|
1844
|
+
O.jumpToEnd()}})};
|
|
1845
|
+
shaka.hls.HlsParser.prototype.getMediaPlaylistBasicInfo_=function(a){var b=this,c,d,e,f,g,h,k,l,m,n,p,q,r,t,v,u,w,x,y;return $jscomp.asyncExecutePromiseGeneratorProgram(function(z){if(1==z.nextAddress){c=shaka.hls.HlsParser;d=b.config_.hls.mediaPlaylistFullMimeType;e=shaka.util.MimeUtils.getBasicType(d);f=e.split("/")[0];g=shaka.util.MimeUtils.getCodecs(d);h={type:f,mimeType:e,codecs:g,language:null,height:null,width:null,channelCount:null,sampleRate:null};if(!a.segments.length)return z.return(h);k=
|
|
1846
|
+
a.segments[0];l=new goog.Uri(k.absoluteUri);m=l.getPath().split(".").pop();if(n=c.RAW_FORMATS_TO_MIME_TYPES_[m])return z.return({type:"audio",mimeType:n,codecs:"",language:null,height:null,width:null,channelCount:null,sampleRate:null});p=[k.absoluteUri];(q=b.getInitSegmentReference_(a,k.tags,new Map))&&(p=q.getUris());r=shaka.net.NetworkingEngine.RequestType.SEGMENT;t=shaka.net.NetworkingEngine.makeRequest(p,b.config_.retryParameters);v=q?shaka.net.NetworkingEngine.AdvancedRequestType.INIT_SEGMENT:
|
|
1847
|
+
shaka.net.NetworkingEngine.AdvancedRequestType.MEDIA_SEGMENT;return z.yield(b.makeNetworkRequest_(t,r,{type:v}),2)}u=z.yieldResult;(w=u.headers["content-type"])&&(w=w.split(";")[0].toLowerCase());if("ts"==m||"video/mp2t"==w){if(x=b.getBasicInfoFromTs_(u))return z.return(x)}else if("mp4"==m||"video/mp4"==w||"audio/mp4"==w)if(y=b.getBasicInfoFromMp4_(u))return z.return(y);return z.return(h)})};
|
|
1848
|
+
shaka.hls.HlsParser.prototype.getBasicInfoFromTs_=function(a){a=shaka.util.BufferUtils.toUint8(a.data);var b=(new shaka.util.TsParser).parse(a);a=b.getCodecs();b=b.getVideoInfo();var c=[],d=!1,e=!1;switch(a.audio){case "aac":c.push("mp4a.40.2");d=!0;break;case "mp3":c.push("mp4a.40.34");d=!0;break;case "ac3":c.push("ac-3");d=!0;break;case "ec3":c.push("ec-3"),d=!0}switch(a.video){case "avc":b.codec?c.push(b.codec):c.push("avc1.42E01E");e=!0;break;case "hvc":b.codec?c.push(b.codec):c.push("hvc1.1.6.L93.90"),
|
|
1849
|
+
e=!0}return c.length?{type:d&&!e?"audio":"video",mimeType:"video/mp2t",codecs:c.join(", "),language:null,height:b.height,width:b.width,channelCount:null,sampleRate:null}:null};
|
|
1777
1850
|
shaka.hls.HlsParser.prototype.getBasicInfoFromMp4_=function(a){var b=shaka.util.Mp4Parser,c=[],d=!1,e=!1,f=function(p){p=p.toLowerCase();switch(p){case "avc1":case "avc3":c.push(p+".42E01E");e=!0;break;case "hev1":case "hvc1":c.push(p+".1.6.L93.90");e=!0;break;case "dvh1":case "dvhe":c.push(p+".05.04");e=!0;break;case "vp09":c.push(p+".00.10.08");e=!0;break;case "av01":c.push(p+".0.01M.08");e=!0;break;case "mp4a":c.push("mp4a.40.2");d=!0;break;case "ac-3":case "ec-3":case "opus":case "flac":c.push(p),
|
|
1778
1851
|
d=!0}},g=function(p){return f(p.name)},h=null,k=null,l=null,m=null,n=null;(new b).box("moov",b.children).box("trak",b.children).fullBox("tkhd",function(p){goog.asserts.assert(null!=p.version,"TKHD is a full box and should have a valid version.");p=shaka.util.Mp4BoxParsers.parseTKHD(p.reader,p.version);k=String(p.height);l=String(p.width)}).box("mdia",b.children).fullBox("mdhd",function(p){goog.asserts.assert(null!=p.version,"MDHD is a full box and should have a valid version.");h=shaka.util.Mp4BoxParsers.parseMDHD(p.reader,
|
|
1779
1852
|
p.version).language}).box("minf",b.children).box("stbl",b.children).fullBox("stsd",b.sampleDescription).box("mp4a",function(p){var q=shaka.util.Mp4BoxParsers.parseMP4A(p.reader);m=q.channelCount;n=q.sampleRate;p.reader.hasMoreData()?b.children(p):g(p)}).box("esds",function(p){p=shaka.util.Mp4BoxParsers.parseESDS(p.reader);c.push(p.codec);d=!0}).box("ac-3",g).box("ec-3",g).box("opus",g).box("Opus",g).box("fLaC",g).box("avc1",function(p){p=shaka.util.Mp4BoxParsers.parseAVC(p.reader,p.name);c.push(p.codec);
|
|
@@ -1800,8 +1873,8 @@ shaka.hls.HlsParser.prototype.getLanguage_=function(a){return shaka.util.Languag
|
|
|
1800
1873
|
shaka.hls.HlsParser.prototype.createVariants_=function(a,b,c,d,e,f,g,h,k){for(var l=shaka.util.ManifestParserUtils.ContentType,m=shaka.media.DrmEngine,n=$jscomp.makeIterator(b),p=n.next();!p.done;p=n.next())this.addVideoAttributes_(p.value.stream,d,e,f,g);d=this.config_.disableAudio;if(!a.length||d)a=[null];d=this.config_.disableVideo;if(!b.length||d)b=[null];d=[];a=$jscomp.makeIterator(a);for(e=a.next();!e.done;e=a.next())for(e=e.value,f=$jscomp.makeIterator(b),g=f.next();!g.done;g=f.next()){var q=
|
|
1801
1874
|
g.value;if(g=e?e.stream:null)g.drmInfos=h,g.keyIds=k;if(n=q?q.stream:null)n.drmInfos=h,n.keyIds=k;p=e?e.stream.drmInfos:null;var r=q?q.stream.drmInfos:null;q=(q?q.verbatimMediaPlaylistUri:"")+" - "+(e?e.verbatimMediaPlaylistUri:"");g&&n&&!m.areDrmCompatible(p,r)?shaka.log.warning("Incompatible DRM info in HLS variant. Skipping."):this.variantUriSet_.has(q)?shaka.log.debug("Skipping variant which only differs in text streams."):(goog.asserts.assert(!g||g.type==l.AUDIO,"Audio parameter mismatch!"),
|
|
1802
1875
|
goog.asserts.assert(!n||n.type==l.VIDEO,"Video parameter mismatch!"),g={id:this.globalId_++,language:g?g.language:"und",disabledUntilTime:0,primary:!!g&&g.primary||!!n&&n.primary,audio:g,video:n,bandwidth:c,allowedByApplication:!0,allowedByKeySystem:!0,decodingInfos:[]},d.push(g),this.variantUriSet_.add(q))}return d};
|
|
1803
|
-
shaka.hls.HlsParser.prototype.parseClosedCaptions_=function(a){a=shaka.hls.Utils.filterTagsByType(a,"CLOSED-CAPTIONS");a=$jscomp.makeIterator(a);for(var b=a.next();!b.done;b=a.next()){
|
|
1804
|
-
this.groupIdToClosedCaptionsMap_.get(d).set(b
|
|
1876
|
+
shaka.hls.HlsParser.prototype.parseClosedCaptions_=function(a){a=shaka.hls.Utils.filterTagsByType(a,"CLOSED-CAPTIONS");a=$jscomp.makeIterator(a);for(var b=a.next();!b.done;b=a.next()){var c=b.value;goog.asserts.assert("EXT-X-MEDIA"==c.name,"Should only be called on media tags!");var d=c.getAttributeValue("LANGUAGE");b=this.getLanguage_(d);d||(d=c.getAttributeValue("NAME"))&&(b=d);d=c.getRequiredAttrValue("GROUP-ID");c=c.getRequiredAttrValue("INSTREAM-ID").replace("SERVICE","svc");this.groupIdToClosedCaptionsMap_.get(d)||
|
|
1877
|
+
this.groupIdToClosedCaptionsMap_.set(d,new Map);this.groupIdToClosedCaptionsMap_.get(d).set(c,b)}};
|
|
1805
1878
|
shaka.hls.HlsParser.prototype.createStreamInfoFromMediaTag_=function(a){goog.asserts.assert("EXT-X-MEDIA"==a.name,"Should only be called on media tags!");var b=a.getRequiredAttrValue("GROUP-ID"),c="",d=this.getType_(a);d==shaka.util.ManifestParserUtils.ContentType.TEXT?c=a.getAttributeValue("CODECS")||"":b&&this.groupIdToCodecsMap_.has(b)&&(c=this.groupIdToCodecsMap_.get(b));var e=this.variableSubstitution_(a.getRequiredAttrValue("URI"),this.globalVariables_);if(this.uriToStreamInfosMap_.has(e))return this.uriToStreamInfosMap_.get(e);
|
|
1806
1879
|
var f=a.getAttributeValue("LANGUAGE"),g=a.getAttributeValue("NAME"),h="YES"==a.getAttributeValue("DEFAULT"),k="audio"==d?this.getChannelsCount_(a):null,l="audio"==d?this.isSpatialAudio_(a):!1,m=a.getAttributeValue("CHARACTERISTICS"),n="YES"==a.getAttributeValue("FORCED");a="audio"==d?this.getSampleRate_(a):null;c=this.createStreamInfo_(e,c,d,f,h,g,k,null,m,n,a,l);this.groupIdToStreamInfosMap_.has(b)?this.groupIdToStreamInfosMap_.get(b).push(c):this.groupIdToStreamInfosMap_.set(b,[c]);if(this.uriToStreamInfosMap_.has(e))return this.uriToStreamInfosMap_.get(e);
|
|
1807
1880
|
this.uriToStreamInfosMap_.set(e,c);return c};
|
|
@@ -1810,61 +1883,63 @@ a.getAttributeValue("LANGUAGE");g=a.getAttributeValue("NAME");h=a.getAttributeVa
|
|
|
1810
1883
|
Number(n.split("x")[1]));if(p=a.getAttributeValue("BANDWIDTH"))k.stream.bandwidth=Number(p);b.uriToStreamInfosMap_.set(d,k);return q.return(k)})};
|
|
1811
1884
|
shaka.hls.HlsParser.prototype.createStreamInfoFromVariantTag_=function(a,b,c){goog.asserts.assert("EXT-X-STREAM-INF"==a.name,"Should only be called on variant tags!");var d=this.variableSubstitution_(a.getRequiredAttrValue("URI"),this.globalVariables_);if(this.uriToStreamInfosMap_.has(d))return this.uriToStreamInfosMap_.get(d);a=this.getClosedCaptions_(a,c);b=shaka.util.ManifestParserUtils.guessCodecs(c,b);c=this.createStreamInfo_(d,b,c,null,!1,null,null,a,null,!1,null,!1);if(this.uriToStreamInfosMap_.has(d))return this.uriToStreamInfosMap_.get(d);
|
|
1812
1885
|
this.uriToStreamInfosMap_.set(d,c);return c};
|
|
1813
|
-
shaka.hls.HlsParser.prototype.createStreamInfo_=function(a,b,c,d,e,f,g,h,k,l,m,n){var p=this,q=shaka.hls.Utils.constructAbsoluteUri(this.masterPlaylistUri_,a),r=this.makeStreamObject_(b,c,d,e,f,g,h,k,l,m,n),t={stream:r,type:c,verbatimMediaPlaylistUri:a,absoluteMediaPlaylistUri:q,minTimestamp:0,maxTimestamp:0,mediaSequenceToStartTime:new Map,canSkipSegments:!1,canBlockReload:!1,hasEndList:!1,firstSequenceNumber:-1,nextMediaSequence:-1,nextPart:-1,loadedOnce:!1},
|
|
1814
|
-
I,
|
|
1815
|
-
|
|
1816
|
-
if(c==
|
|
1817
|
-
p.determineDuration_(),K=p.getUpdatePlaylistDelay_(),0<K&&p.updatePlaylistTimer_.tickAfter(K)));
|
|
1886
|
+
shaka.hls.HlsParser.prototype.createStreamInfo_=function(a,b,c,d,e,f,g,h,k,l,m,n){var p=this,q=shaka.hls.Utils.constructAbsoluteUri(this.masterPlaylistUri_,a),r=this.makeStreamObject_(b,c,d,e,f,g,h,k,l,m,n),t={stream:r,type:c,verbatimMediaPlaylistUri:a,absoluteMediaPlaylistUri:q,minTimestamp:0,maxTimestamp:0,mediaSequenceToStartTime:new Map,canSkipSegments:!1,canBlockReload:!1,hasEndList:!1,firstSequenceNumber:-1,nextMediaSequence:-1,nextPart:-1,loadedOnce:!1},v=function(x){var y,z,A,C,D,G,B,E,F,
|
|
1887
|
+
H,I,J,L,K;return $jscomp.asyncExecutePromiseGeneratorProgram(function(M){if(1==M.nextAddress)return M.yield(p.requestManifest_(t.absoluteMediaPlaylistUri,!0),2);if(3!=M.nextAddress){y=M.yieldResult;if(x.aborted)return M.return();z=y.uri;A=p.manifestTextParser_.parsePlaylist(y.data,z);C=p.isLive_();return M.yield(p.convertParsedPlaylistIntoStreamInfo_(A,a,z,b,c,d,e,f,g,h,k,l,m,n),3)}D=M.yieldResult;if(x.aborted)return M.return();G=D.stream;p.isLive_()&&!C&&p.changePresentationTimelineToLive_(A);t.absoluteMediaPlaylistUri=
|
|
1888
|
+
z;t.minTimestamp=D.minTimestamp;t.maxTimestamp=D.maxTimestamp;t.canSkipSegments=D.canSkipSegments;t.canBlockReload=D.canBlockReload;t.hasEndList=D.hasEndList;t.mediaSequenceToStartTime=D.mediaSequenceToStartTime;t.nextMediaSequence=D.nextMediaSequence;t.nextPart=D.nextPart;t.loadedOnce=!0;r.segmentIndex=G.segmentIndex;r.encrypted=G.encrypted;r.drmInfos=G.drmInfos;r.keyIds=G.keyIds;r.mimeType=G.mimeType;r.bandwidth=G.bandwidth;r.drmInfos.length&&p.playerInterface_.newDrmInfo(r);B=shaka.util.ManifestParserUtils.ContentType;
|
|
1889
|
+
if(c==B.VIDEO||c==B.AUDIO)for(E=$jscomp.makeIterator(p.uriToStreamInfosMap_.values()),F=E.next();!F.done;F=E.next())H=F.value,H.loadedOnce||H.type!=c||(H.stream.mimeType=G.mimeType);c==B.TEXT&&(I=G.segmentIndex.get(0))&&I.initSegmentReference&&(r.mimeType="application/mp4");p.hasEnoughInfoToFinalizeStreams_()&&(p.streamsFinalized_?p.finalizeStreams_([t]):(p.streamsFinalized_=!0,J=Array.from(p.uriToStreamInfosMap_.values()),L=J.filter(function(N){return N.stream.segmentIndex}),p.finalizeStreams_(L),
|
|
1890
|
+
p.determineDuration_(),K=p.getUpdatePlaylistDelay_(),0<K&&p.updatePlaylistTimer_.tickAfter(K)));M.jumpToEnd()})},u=null,w=new AbortController;r.createSegmentIndex=function(){if(u)return u;w=new AbortController;return u=new Promise(function(x){x(v(w.signal))})};r.closeSegmentIndex=function(){u&&!r.segmentIndex&&w.abort();r.segmentIndex&&(r.segmentIndex.release(),r.segmentIndex=null);u=null};return t};
|
|
1818
1891
|
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&&(a=Math.min(a,c.maxTimestamp));return a};
|
|
1819
1892
|
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&&(a=Math.min(a,d.maxTimestamp),b=Math.min(b,d.minTimestamp));return a-b};
|
|
1820
1893
|
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)};
|
|
1821
1894
|
shaka.hls.HlsParser.prototype.finalizeStreams_=function(a){if(!this.isLive_())for(var b=this.getMinDuration_(),c=$jscomp.makeIterator(a),d=c.next();!d.done;d=c.next())d.value.stream.segmentIndex.fit(0,b);this.notifySegmentsForStreams_(a.map(function(e){return e.stream}));this.config_.hls.ignoreManifestProgramDateTime?this.syncStreamsWithSequenceNumber_(a):this.syncStreamsWithProgramDateTime_(a)};
|
|
1822
1895
|
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};
|
|
1823
|
-
shaka.hls.HlsParser.prototype.convertParsedPlaylistIntoStreamInfo_=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r){var t=this,
|
|
1824
|
-
goog.asserts.assert(null!=a.segments,"Media playlist should have segments!");t.determinePresentationType_(a);t.isLive_()&&t.determineLastTargetDuration_(a);return r?
|
|
1825
|
-
t.mediaSequenceToStartTimeByType_.get(e):new Map;D=t.createSegments_(b,a,e,r,
|
|
1826
|
-
|
|
1896
|
+
shaka.hls.HlsParser.prototype.convertParsedPlaylistIntoStreamInfo_=function(a,b,c,d,e,f,g,h,k,l,m,n,p,q,r){var t=this,v,u,w,x,y,z,A,C,D,G,B,E,F,H,I,J,L,K,M,N,O,R,Q;return $jscomp.asyncExecutePromiseGeneratorProgram(function(P){if(1==P.nextAddress){if(a.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);v=shaka.hls.Utils.filterTagsByName(a.tags,"EXT-X-DEFINE");u=t.parseMediaVariables_(v);
|
|
1897
|
+
goog.asserts.assert(null!=a.segments,"Media playlist should have segments!");t.determinePresentationType_(a);t.isLive_()&&t.determineLastTargetDuration_(a);return r?P.jumpTo(2):P.yield(t.guessMimeType_(e,d,a,u),3)}2!=P.nextAddress&&(r=P.yieldResult);w=t.parseDrmInfo_(a,r);x=w.drmInfos;y=w.keyIds;z=w.encrypted;A=w.aesEncrypted;if(z&&!x.length&&!A)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_KEYFORMATS_NOT_SUPPORTED);C=t.isLive_()?
|
|
1898
|
+
t.mediaSequenceToStartTimeByType_.get(e):new Map;D=t.createSegments_(b,a,e,r,C,u);G=D.segments;B=D.bandwidth;t.isLive_()&&t.determineLastTargetDuration_(a);E=G[0].startTime;F=G[G.length-1];H=F.endTime;I=new shaka.media.SegmentIndex(G);L=(J=shaka.hls.Utils.getFirstTagWithName(a.tags,"EXT-X-SERVER-CONTROL"))?null!=J.getAttribute("CAN-SKIP-UNTIL"):!1;K=J?null!=J.getAttribute("CAN-BLOCK-RELOAD"):!1;M=shaka.hls.Utils.getFirstTagWithNameAsNumber(a.tags,"EXT-X-MEDIA-SEQUENCE",0);N=t.getNextMediaSequenceAndPart_(M,
|
|
1899
|
+
G);O=N.nextMediaSequence;R=N.nextPart;Q=t.makeStreamObject_(d,e,f,g,h,k,l,m,n,p,q);Q.segmentIndex=I;Q.encrypted=z;Q.drmInfos=x;Q.keyIds=y;Q.mimeType=r;Q.bandwidth=B;return P.return({stream:Q,type:e,verbatimMediaPlaylistUri:b,absoluteMediaPlaylistUri:c,minTimestamp:E,maxTimestamp:H,canSkipSegments:L,canBlockReload:K,hasEndList:!1,firstSequenceNumber:-1,nextMediaSequence:O,nextPart:R,mediaSequenceToStartTime:C,loadedOnce:!1})})};
|
|
1827
1900
|
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}};
|
|
1828
1901
|
shaka.hls.HlsParser.prototype.makeStreamObject_=function(a,b,c,d,e,f,g,h,k,l,m){var n=this.guessMimeTypeBeforeLoading_(b,a)||this.guessMimeTypeFallback_(b),p=[];if(h){h=$jscomp.makeIterator(h.split(","));for(var q=h.next();!q.done;q=h.next())p.push(q.value)}h=b==shaka.util.ManifestParserUtils.ContentType.TEXT?shaka.util.ManifestParserUtils.TextStreamKind.SUBTITLE:void 0;p.length||h!==shaka.util.ManifestParserUtils.TextStreamKind.SUBTITLE||p.push(shaka.util.ManifestParserUtils.TextStreamKind.SUBTITLE);
|
|
1829
|
-
return{id:this.globalId_++,originalId:e,createSegmentIndex:function(){return Promise.resolve()},segmentIndex:null,mimeType:n,codecs:a,kind:b==shaka.util.ManifestParserUtils.ContentType.TEXT?shaka.util.ManifestParserUtils.TextStreamKind.SUBTITLE:void 0,encrypted:!1,drmInfos:[],keyIds:new Set,language:this.getLanguage_(c),originalLanguage:c,label:e,type:b,primary:d,trickModeVideo:null,emsgSchemeIdUris:null,frameRate:void 0,pixelAspectRatio:void 0,width:void 0,height:void 0,bandwidth:void 0,
|
|
1830
|
-
forced:k,channelsCount:f,audioSamplingRate:l,spatialAudio:m,closedCaptions:g,hdr:void 0,tilesLayout:void 0,accessibilityPurpose:null,external:!1}};
|
|
1902
|
+
return{id:this.globalId_++,originalId:e,groupId:null,createSegmentIndex:function(){return Promise.resolve()},segmentIndex:null,mimeType:n,codecs:a,kind:b==shaka.util.ManifestParserUtils.ContentType.TEXT?shaka.util.ManifestParserUtils.TextStreamKind.SUBTITLE:void 0,encrypted:!1,drmInfos:[],keyIds:new Set,language:this.getLanguage_(c),originalLanguage:c,label:e,type:b,primary:d,trickModeVideo:null,emsgSchemeIdUris:null,frameRate:void 0,pixelAspectRatio:void 0,width:void 0,height:void 0,bandwidth:void 0,
|
|
1903
|
+
roles:p,forced:k,channelsCount:f,audioSamplingRate:l,spatialAudio:m,closedCaptions:g,hdr:void 0,tilesLayout:void 0,accessibilityPurpose:null,external:!1}};
|
|
1831
1904
|
shaka.hls.HlsParser.prototype.parseDrmInfo_=function(a,b){var c=[];if(a.segments){a=$jscomp.makeIterator(a.segments);for(var d=a.next();!d.done;d=a.next())d=shaka.hls.Utils.filterTagsByName(d.value.tags,"EXT-X-KEY"),c.push.apply(c,$jscomp.arrayFromIterable(d))}d=a=!1;var e=[],f=new Set;c=$jscomp.makeIterator(c);for(var g=c.next();!g.done;g=c.next()){g=g.value;var h=g.getRequiredAttrValue("METHOD");if("NONE"!=h)if(a=!0,"AES-128"==h)d=!0;else{h=g.getAttributeValue("KEYFORMAT")||"identity";var k=shaka.hls.HlsParser.KEYFORMATS_TO_DRM_PARSERS_[h];
|
|
1832
1905
|
if(g=k?k(g,b):null){if(g.keyIds)for(h=$jscomp.makeIterator(g.keyIds),k=h.next();!k.done;k=h.next())f.add(k.value);e.push(g)}else shaka.log.warning("Unsupported HLS KEYFORMAT",h)}}return{drmInfos:e,keyIds:f,encrypted:a,aesEncrypted:d}};
|
|
1833
1906
|
shaka.hls.HlsParser.prototype.parseAES128DrmTag_=function(a,b){var c=this;if(!window.crypto||!window.crypto.subtle)throw shaka.log.alwaysWarn("Web Crypto API is not available to decrypt AES-128. (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 d=0,e=a.getAttributeValue("IV","");if(e){var f=shaka.util.Uint8ArrayUtils.fromHex(e.substr(2));if(16!=f.byteLength)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
|
|
1834
|
-
shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.
|
|
1835
|
-
p.nextAddress)return p.yield(c.makeNetworkRequest_(h,g),2);if(3!=p.nextAddress){l=p.yieldResult;if(!l.data||16!=l.data.byteLength)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.
|
|
1907
|
+
shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.AES_128_INVALID_IV_LENGTH);}else d=shaka.hls.Utils.getFirstTagWithNameAsNumber(b.tags,"EXT-X-MEDIA-SEQUENCE",0);a=shaka.hls.Utils.constructAbsoluteUri(b.absoluteUri,a.getRequiredAttrValue("URI"));var g=shaka.net.NetworkingEngine.RequestType.KEY,h=shaka.net.NetworkingEngine.makeRequest([a],this.config_.retryParameters),k={method:"AES-128",iv:f,firstMediaSequenceNumber:d,fetchKey:function(){var l,m,n;return $jscomp.asyncExecutePromiseGeneratorProgram(function(p){if(1==
|
|
1908
|
+
p.nextAddress)return p.yield(c.makeNetworkRequest_(h,g),2);if(3!=p.nextAddress){l=p.yieldResult;if(!l.data||16!=l.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);m={name:"AES-CBC"};n=k;return p.yield(window.crypto.subtle.importKey("raw",l.data,m,!0,["decrypt"]),3)}n.cryptoKey=p.yieldResult;k.fetchKey=void 0;p.jumpToEnd()})}};return k};
|
|
1836
1909
|
shaka.hls.HlsParser.prototype.determinePresentationType_=function(a){var b=shaka.hls.HlsParser.PresentationType_,c=shaka.hls.Utils.getFirstTagWithName(a.tags,"EXT-X-PLAYLIST-TYPE");a=shaka.hls.Utils.getFirstTagWithName(a.tags,"EXT-X-ENDLIST");a=c&&"VOD"==c.value||a;c=c&&"EVENT"==c.value&&!a;c=!a&&!c;a?this.setPresentationType_(b.VOD):c?this.setPresentationType_(b.LIVE):this.setPresentationType_(b.EVENT)};
|
|
1837
1910
|
shaka.hls.HlsParser.prototype.determineLastTargetDuration_=function(a){var b=Infinity,c=a.segments;if(c.length)for(var d=c.length-1;0<=d;){var e=shaka.hls.Utils.getFirstTagWithName(c[d].tags,"EXTINF");if(e){b=e.value.split(",");b=Number(b[0]);break}d--}c=this.getRequiredTag_(a.tags,"EXT-X-TARGETDURATION");c=Number(c.value);if(d=shaka.hls.Utils.getFirstTagWithName(a.tags,"EXT-X-PART-INF"))this.partialTargetDuration_=Number(d.getRequiredAttrValue("PART-TARGET"));a=shaka.hls.Utils.getFirstTagWithName(a.tags,
|
|
1838
1911
|
"EXT-X-SERVER-CONTROL");this.lowLatencyMode_&&this.partialTargetDuration_?(this.lastTargetDuration_=this.lowLatencyByterangeOptimization_?5*this.partialTargetDuration_<=b?Math.min(this.partialTargetDuration_,this.lastTargetDuration_):Math.min(b,this.lastTargetDuration_):Math.min(this.partialTargetDuration_,this.lastTargetDuration_),this.lowLatencyPresentationDelay_=a?Number(a.getRequiredAttrValue("PART-HOLD-BACK")):0):(this.lastTargetDuration_=Math.min(b,this.lastTargetDuration_),this.presentationDelay_=
|
|
1839
1912
|
(a=a?a.getAttribute("HOLD-BACK"):null)?Number(a.value):0);this.maxTargetDuration_=Math.max(c,this.maxTargetDuration_)};
|
|
1840
|
-
shaka.hls.HlsParser.prototype.changePresentationTimelineToLive_=function(){
|
|
1841
|
-
|
|
1842
|
-
shaka.hls.HlsParser.prototype.
|
|
1843
|
-
shaka.hls.HlsParser.prototype.
|
|
1844
|
-
shaka.hls.
|
|
1845
|
-
"
|
|
1846
|
-
if(
|
|
1847
|
-
|
|
1848
|
-
|
|
1849
|
-
|
|
1850
|
-
|
|
1851
|
-
shaka.hls.HlsParser.prototype.
|
|
1852
|
-
|
|
1853
|
-
|
|
1854
|
-
|
|
1855
|
-
|
|
1856
|
-
e,
|
|
1913
|
+
shaka.hls.HlsParser.prototype.changePresentationTimelineToLive_=function(a){if(this.config_.defaultPresentationDelay)a=this.config_.defaultPresentationDelay;else if(this.lowLatencyPresentationDelay_)a=this.lowLatencyPresentationDelay_;else if(this.presentationDelay_)a=this.presentationDelay_;else{a=a.segments.length;var b=this.config_.hls.liveSegmentsDelay;b>a-2&&(b=Math.max(1,a-2));a=this.maxTargetDuration_*b}this.presentationTimeline_.setPresentationStartTime(0);this.presentationTimeline_.setDelay(a);
|
|
1914
|
+
this.presentationTimeline_.setStatic(!1)};
|
|
1915
|
+
shaka.hls.HlsParser.prototype.getInitSegmentReference_=function(a,b,c){var d=shaka.hls.Utils.getFirstTagWithName(b,"EXT-X-MAP");if(!d)return null;var e=d.getRequiredAttrValue("URI");e=this.variableSubstitution_(shaka.hls.Utils.constructAbsoluteUri(a.absoluteUri,e),c);c=[e,d.getAttributeValue("BYTERANGE","")].join("-");if(!this.mapTagToInitSegmentRefMap_.has(c)){var f=void 0;b=$jscomp.makeIterator(b);for(var g=b.next();!g.done;g=b.next())g=g.value,"EXT-X-KEY"==g.name&&"AES-128"==g.getRequiredAttrValue("METHOD")&&
|
|
1916
|
+
g.id<d.id&&(f=this.parseAES128DrmTag_(g,a));a=this.createInitSegmentReference_(e,d,f);this.mapTagToInitSegmentRefMap_.set(c,a)}return this.mapTagToInitSegmentRefMap_.get(c)};shaka.hls.HlsParser.prototype.createInitSegmentReference_=function(a,b,c){var d=0,e=null;if(b=b.getAttributeValue("BYTERANGE"))d=b.split("@"),e=Number(d[0]),d=Number(d[1]),e=d+e-1,c&&(b=e+1-d,b%16&&(e+=16-b%16));return new shaka.media.InitSegmentReference(function(){return[a]},d,e,null,null,null,c)};
|
|
1917
|
+
shaka.hls.HlsParser.prototype.createSegmentReference_=function(a,b,c,d,e,f,g,h,k){var l=this,m=c.tags,n=shaka.hls.Utils.getFirstTagWithName(m,"EXTINF"),p=0,q=0,r=null;c.partialSegments.length&&!this.lowLatencyMode_&&shaka.log.alwaysWarn("Low-latency HLS live stream detected, but low-latency streaming mode is not enabled in Shaka Player. Set streaming.lowLatencyMode configuration to true, and see https://bit.ly/3clctcj for details.");var t=null;if(!this.config_.hls.ignoreManifestProgramDateTime){var v=
|
|
1918
|
+
shaka.hls.Utils.getFirstTagWithName(m,"EXT-X-PROGRAM-DATE-TIME");v&&v.value&&(t=shaka.util.XmlUtils.parseDate(v.value),goog.asserts.assert(null!=t,"EXT-X-PROGRAM-DATE-TIME format not valid"))}var u=shaka.media.SegmentReference.Status.AVAILABLE;shaka.hls.Utils.getFirstTagWithName(m,"EXT-X-GAP")&&(u=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,
|
|
1919
|
+
"EXTINF");if(!this.lowLatencyMode_)return null}var w=[];v=!1;var x=null,y=!1,z=!1;if(this.lowLatencyMode_&&c.partialSegments.length){p=("video/mp4"==h||"audio/mp4"==h)&&window.ReadableStream;h=t;for(var A={},C=0;C<c.partialSegments.length;A={$jscomp$loop$prop$pAbsoluteUri$781:A.$jscomp$loop$prop$pAbsoluteUri$781,$jscomp$loop$prop$pUri$782:A.$jscomp$loop$prop$pUri$782},C++){var D=c.partialSegments[C],G=0==C?b:w[w.length-1],B=0==C?d:G.endTime,E=Number(D.getAttributeValue("DURATION"))||this.partialTargetDuration_;
|
|
1920
|
+
if(E){var F=B+E,H=0,I=null;"EXT-X-PRELOAD-HINT"==D.name?(H=(H=D.getAttributeValue("BYTERANGE-START"))?Number(H):0,(G=D.getAttributeValue("BYTERANGE-LENGTH"))?I=H+Number(G)-1:H&&(I=Number.MAX_SAFE_INTEGER)):(H=D.getAttributeValue("BYTERANGE"),I=$jscomp.makeIterator(this.parseByteRange_(G,H)),H=I.next().value,I=I.next().value);A.$jscomp$loop$prop$pUri$782=D.getAttributeValue("URI");if(A.$jscomp$loop$prop$pUri$782){G=shaka.media.SegmentReference.Status.AVAILABLE;"YES"==D.getAttributeValue("GAP")&&(G=
|
|
1921
|
+
shaka.media.SegmentReference.Status.MISSING,y=!0);A.$jscomp$loop$prop$pAbsoluteUri$781=null;var J=function(K){return function(){null==K.$jscomp$loop$prop$pAbsoluteUri$781&&(goog.asserts.assert(K.$jscomp$loop$prop$pUri$782,"Partial uri should be defined!"),K.$jscomp$loop$prop$pAbsoluteUri$781=shaka.hls.Utils.constructAbsoluteUri(f,K.$jscomp$loop$prop$pUri$782));return[K.$jscomp$loop$prop$pAbsoluteUri$781]}}(A);p&&0<=H&&null!=I&&(x=J,v=!0);B=new shaka.media.SegmentReference(B,F,J,H,I,a,0,0,Infinity,
|
|
1922
|
+
[],"",null,h,G,k);"EXT-X-PRELOAD-HINT"==D.name&&(B.markAsPreload(),z=!0);"YES"!=D.getAttributeValue("INDEPENDENT")&&0<C&&B.markAsNonIndependent();w.push(B);h&&(h+=E)}}}}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;v&&(y||0!=w[0].startByte?(v=!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&&
|
|
1923
|
+
(q=w[0].startByte,r=w[w.length-1].endByte);b="";y=null;g==shaka.util.ManifestParserUtils.ContentType.IMAGE&&(b="1x1",g=shaka.hls.Utils.getFirstTagWithName(m,"EXT-X-TILES"))&&(b=g.getRequiredAttrValue("LAYOUT"),(g=g.getAttributeValue("DURATION"))&&(y=Number(g)));var L=null;a=new shaka.media.SegmentReference(d,p,function(){if(x)return x();null==L&&(L=l.variableSubstitution_(c.absoluteUri,e));return L.length?[L]:[]},q,r,a,0,0,Infinity,w,b,y,t,u,k);v&&(this.lowLatencyByterangeOptimization_=!0,a.markAsByterangeOptimization(),
|
|
1924
|
+
z&&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]};
|
|
1925
|
+
shaka.hls.HlsParser.prototype.createSegments_=function(a,b,c,d,e,f){var g=b.segments;goog.asserts.assert(g.length,"Playlist should have segments!");var h=void 0,k=shaka.hls.Utils.getFirstTagWithNameAsNumber(b.tags,"EXT-X-DISCONTINUITY-SEQUENCE",0),l=shaka.hls.Utils.getFirstTagWithNameAsNumber(b.tags,"EXT-X-MEDIA-SEQUENCE",0),m=(a=shaka.hls.Utils.getFirstTagWithName(b.tags,"EXT-X-SKIP"))?Number(a.getAttributeValue("SKIPPED-SEGMENTS")):0,n=l+m,p=0;this.isLive_()&&e.has(n)&&(p=e.get(n));var q=[],r=null;
|
|
1926
|
+
a=[];for(var t=0;t<g.length;t++){var v=g[t],u=0==t?p:r.endTime;n=l+m+t;shaka.hls.Utils.getFirstTagWithName(v.tags,"EXT-X-DISCONTINUITY")&&k++;var w=$jscomp.makeIterator(v.tags);for(var x=w.next();!x.done;x=w.next())x=x.value,"EXT-X-KEY"==x.name&&(h="AES-128"==x.getRequiredAttrValue("METHOD")?this.parseAES128DrmTag_(x,b):void 0);e.set(n,u);w=this.getInitSegmentReference_(b,v.tags,f);!this.lowLatencyMode_&&this.playerInterface_.isAutoLowLatencyMode()&&(this.playerInterface_.enableLowLatencyMode(),this.lowLatencyMode_=
|
|
1927
|
+
this.playerInterface_.isLowLatencyMode());if(u=this.createSegmentReference_(w,r,v,u,f,b.absoluteUri,c,d,h))(r=shaka.hls.Utils.getFirstTagWithNameAsNumber(v.tags,"EXT-X-BITRATE"))?a.push({bitrate:r,duration:u.endTime-u.startTime}):a.length&&(r=a.pop(),r.duration+=u.endTime-u.startTime,a.push(r)),r=u,u.discontinuitySequence=k,this.config_.hls.ignoreManifestProgramDateTime&&null!=this.minSequenceNumber_&&n<this.minSequenceNumber_||q.push(u)}b=void 0;a.length&&(b=a.reduce(function(y,z){return y+z.duration},
|
|
1928
|
+
0),b=Math.round(a.reduce(function(y,z){return y+z.bitrate*z.duration},0)/b*1E3));if(c=q.some(function(y){return null!=y.syncTime}))for(d={},e=0;e<q.length;d={$jscomp$loop$prop$forwardI$784:d.$jscomp$loop$prop$forwardI$784,$jscomp$loop$prop$forwardAdd$785:d.$jscomp$loop$prop$forwardAdd$785,$jscomp$loop$prop$backwardI$786:d.$jscomp$loop$prop$backwardI$786,$jscomp$loop$prop$reference$654$787:d.$jscomp$loop$prop$reference$654$787,$jscomp$loop$prop$backwardAdd$788:d.$jscomp$loop$prop$backwardAdd$788},
|
|
1929
|
+
e++)if(d.$jscomp$loop$prop$reference$654$787=q[e],null==d.$jscomp$loop$prop$reference$654$787.syncTime)for(d.$jscomp$loop$prop$forwardAdd$785=0,d.$jscomp$loop$prop$forwardI$784=e,f=function(y){return function(){var z=q[y.$jscomp$loop$prop$forwardI$784];if(z){if(null!=z.syncTime)return z.syncTime+y.$jscomp$loop$prop$forwardAdd$785;y.$jscomp$loop$prop$forwardAdd$785-=z.endTime-z.startTime;y.$jscomp$loop$prop$forwardI$784+=1}return null}}(d),d.$jscomp$loop$prop$backwardAdd$788=0,d.$jscomp$loop$prop$backwardI$786=
|
|
1930
|
+
e,a=function(y){return function(){var z=q[y.$jscomp$loop$prop$backwardI$786];if(z){z!=y.$jscomp$loop$prop$reference$654$787&&(y.$jscomp$loop$prop$backwardAdd$788+=z.endTime-z.startTime);if(null!=z.syncTime)return z.syncTime+y.$jscomp$loop$prop$backwardAdd$788;--y.$jscomp$loop$prop$backwardI$786}return null}}(d);null==d.$jscomp$loop$prop$reference$654$787.syncTime;)d.$jscomp$loop$prop$reference$654$787.syncTime=a(),null==d.$jscomp$loop$prop$reference$654$787.syncTime&&(d.$jscomp$loop$prop$reference$654$787.syncTime=
|
|
1857
1931
|
f());if(c)for(d=$jscomp.makeIterator(q),e=d.next();!e.done;e=d.next())for(f=e.value,e=f.syncTime,f=$jscomp.makeIterator(f.partialReferences),a=f.next();!a.done;a=f.next())a=a.value,a.syncTime=e,e+=a.endTime-a.startTime;d=this.lowestSyncTime_;if(c&&Infinity!=d)for(c=$jscomp.makeIterator(q),e=c.next();!e.done;e=c.next())e.value.syncAgainst(d);return{segments:q,bandwidth:b}};
|
|
1858
1932
|
shaka.hls.HlsParser.prototype.variableSubstitution_=function(a,b){if(!b.size)return a;a=String(a).replace(/%7B/g,"{").replace(/%7D/g,"}");var c=a.match(/{\$\w*}/g);if(c){c=$jscomp.makeIterator(c);for(var d=c.next();!d.done;d=c.next()){d=d.value;var e=d.slice(2,d.length-1),f=b.get(e);if(f)a=a.replace(d,f);else throw shaka.log.error("A variable has been found that is not declared",e),new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MANIFEST,shaka.util.Error.Code.HLS_VARIABLE_NOT_FOUND,
|
|
1859
1933
|
e);}}return a};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":null:"image/jpeg"};
|
|
1860
1934
|
shaka.hls.HlsParser.prototype.guessMimeTypeFallback_=function(a){return a==shaka.util.ManifestParserUtils.ContentType.TEXT?"text/vtt":shaka.hls.HlsParser.EXTENSION_MAP_BY_CONTENT_TYPE_[a].mp4};
|
|
1861
|
-
shaka.hls.HlsParser.prototype.guessMimeType_=function(a,b,c,d){var e=this,f,g,h,k,l,m,n,p,q,r,t,
|
|
1862
|
-
if((p=n[m])||(p=f.RAW_FORMATS_TO_MIME_TYPES_[m])||(p=e.guessMimeTypeBeforeLoading_(a,b)))return u.return(p);q=shaka.net.NetworkingEngine.makeRequest([k],e.config_.retryParameters);q.method="HEAD";r=shaka.net.NetworkingEngine.AdvancedRequestType.MEDIA_SEGMENT;return u.yield(e.makeNetworkRequest_(q,g,{type:r}),2)}t=u.yieldResult;return(
|
|
1935
|
+
shaka.hls.HlsParser.prototype.guessMimeType_=function(a,b,c,d){var e=this,f,g,h,k,l,m,n,p,q,r,t,v;return $jscomp.asyncExecutePromiseGeneratorProgram(function(u){if(1==u.nextAddress){f=shaka.hls.HlsParser;g=shaka.net.NetworkingEngine.RequestType.SEGMENT;goog.asserts.assert(c.segments.length,"Playlist should have segments!");h=Math.trunc((c.segments.length-1)/2);k=e.variableSubstitution_(c.segments[h].absoluteUri,d);l=new goog.Uri(k);m=l.getPath().split(".").pop();n=f.EXTENSION_MAP_BY_CONTENT_TYPE_[a];
|
|
1936
|
+
if((p=n[m])||(p=f.RAW_FORMATS_TO_MIME_TYPES_[m])||(p=e.guessMimeTypeBeforeLoading_(a,b)))return u.return(p);q=shaka.net.NetworkingEngine.makeRequest([k],e.config_.retryParameters);q.method="HEAD";r=shaka.net.NetworkingEngine.AdvancedRequestType.MEDIA_SEGMENT;return u.yield(e.makeNetworkRequest_(q,g,{type:r}),2)}t=u.yieldResult;return(v=t.headers["content-type"])?u.return(v.split(";")[0]):u.return(e.guessMimeTypeFallback_(a))})};
|
|
1863
1937
|
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){a&&(a.width=Number(b)||void 0,a.height=Number(c)||void 0,a.frameRate=Number(d)||void 0,a.hdr=e||void 0)};
|
|
1864
1938
|
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})};
|
|
1865
|
-
shaka.hls.HlsParser.prototype.onUpdate_=function(){var a=this,b,c;return $jscomp.asyncExecutePromiseGeneratorProgram(function(
|
|
1866
|
-
d.
|
|
1867
|
-
|
|
1939
|
+
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,
|
|
1940
|
+
d),e=a.getUpdatePlaylistDelay_(),f=Math.max(0,e-a.averageUpdateDuration_.getEstimate()),a.updatePlaylistTimer_.tickAfter(f));h.leaveTryBlock(3);break;case 2:g=h.enterCatchBlock();if(!a.playerInterface_)return h.return();goog.asserts.assert(g instanceof shaka.util.Error,"Should only receive a Shaka error");if(a.config_.raiseFatalErrorOnManifestUpdateRequestFailure)return a.playerInterface_.onError(g),h.return();g.severity=shaka.util.Error.Severity.RECOVERABLE;a.playerInterface_.onError(g);a.updatePlaylistTimer_.tickAfter(.1);
|
|
1941
|
+
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_};
|
|
1942
|
+
shaka.hls.HlsParser.prototype.setPresentationType_=function(a){this.presentationType_=a;this.presentationTimeline_&&this.presentationTimeline_.setStatic(!this.isLive_());this.isLive_()||this.updatePlaylistTimer_.stop()};
|
|
1868
1943
|
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);a=this.playerInterface_.networkingEngine.request(b,a,c);this.operationManager_.manage(a);return a.promise};
|
|
1869
1944
|
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);return shaka.util.ManifestParserUtils.createDrmInfo("com.apple.fps",
|
|
1870
1945
|
[{initDataType:"sinf",initData:new Uint8Array(0),keyId:null}])};
|
|
@@ -1904,8 +1979,8 @@ shaka.util.Mp4Generator.prototype.hvc1_=function(a){var b=shaka.util.Mp4Generato
|
|
|
1904
1979
|
0,0,0,0,0,0,0,0,0,0,0,0,0,24,17,17]));d="hvc1";var f=new Uint8Array([]);a.encrypted&&(f=this.sinf_(a),d="encv");return b.box(d,c,e,f)};shaka.util.Mp4Generator.prototype.audioStsd_=function(a){return new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,a.stream.channelsCount||2,0,16,0,0,0,0].concat($jscomp.arrayFromIterable(this.breakNumberIntoBytes_(a.stream.audioSamplingRate||44100,2)),[0,0]))};shaka.util.Mp4Generator.prototype.mp3_=function(a){return shaka.util.Mp4Generator.box(".mp3",this.audioStsd_(a))};
|
|
1905
1980
|
shaka.util.Mp4Generator.prototype.ac3_=function(a){var b=shaka.util.Mp4Generator,c=b.box("dac3",a.audioConfig),d="ac-3",e=new Uint8Array([]);a.encrypted&&(e=this.sinf_(a),d="enca");return b.box(d,this.audioStsd_(a),c,e)};shaka.util.Mp4Generator.prototype.ec3_=function(a){var b=shaka.util.Mp4Generator,c=b.box("dec3",a.audioConfig),d="ec-3",e=new Uint8Array([]);a.encrypted&&(e=this.sinf_(a),d="enca");return b.box(d,this.audioStsd_(a),c,e)};
|
|
1906
1981
|
shaka.util.Mp4Generator.prototype.mp4a_=function(a){var b=shaka.util.Mp4Generator;var c=0<a.audioConfig.byteLength?b.box("esds",a.audioConfig):b.box("esds",this.esds_(a));var d="mp4a",e=new Uint8Array([]);a.encrypted&&(e=this.sinf_(a),d="enca");return b.box(d,this.audioStsd_(a),c,e)};
|
|
1907
|
-
shaka.util.Mp4Generator.prototype.esds_=function(a){var b=a.id+1,c=a.stream.
|
|
1908
|
-
2)),[0,4,17,64,21,0,
|
|
1982
|
+
shaka.util.Mp4Generator.prototype.esds_=function(a){var b=a.id+1,c=a.stream.channelsCount||2,d=a.stream.audioSamplingRate||44100,e=shaka.util.ManifestParserUtils.guessCodecs(shaka.util.ManifestParserUtils.ContentType.AUDIO,a.codecs.split(",")),f={96E3:0,88200:1,64E3:2,48E3:3,44100:4,32E3:5,24E3:6,22050:7,16E3:8,12E3:9,11025:10,8E3:11,7350:12};a=f[d];if("mp4a.40.5"===e||"mp4a.40.29"===e)a=f[2*d];d=parseInt(e.split(".").pop(),10);return new Uint8Array([0,0,0,0,3,25].concat($jscomp.arrayFromIterable(this.breakNumberIntoBytes_(b,
|
|
1983
|
+
2)),[0,4,17,64,21,0,0,0,0,0,0,0,0,0,0,0,5,2,d<<3|a>>>1,a<<7|c<<3,6,1,2]))};shaka.util.Mp4Generator.prototype.mvex_=function(){for(var a=shaka.util.Mp4Generator,b=new Uint8Array([]),c=$jscomp.makeIterator(this.streamInfos_),d=c.next();!d.done;d=c.next())b=shaka.util.Uint8ArrayUtils.concat(b,this.trex_(d.value));return a.box("mvex",b)};
|
|
1909
1984
|
shaka.util.Mp4Generator.prototype.trex_=function(a){var b=shaka.util.Mp4Generator;a=new Uint8Array([0,0,0,0].concat($jscomp.arrayFromIterable(this.breakNumberIntoBytes_(a.id+1,4)),[0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1]));return b.box("trex",a)};
|
|
1910
1985
|
shaka.util.Mp4Generator.prototype.pssh_=function(a){var b=new Uint8Array([]);if(!a.encrypted)return b;a=$jscomp.makeIterator(a.stream.drmInfos);for(var c=a.next();!c.done;c=a.next())if(c=c.value,c.initData){c=$jscomp.makeIterator(c.initData);for(var d=c.next();!d.done;d=c.next())b=shaka.util.Uint8ArrayUtils.concat(b,d.value.initData)}return b};shaka.util.Mp4Generator.prototype.sinf_=function(a){return shaka.util.Mp4Generator.box("sinf",this.frma_(a),this.schm_(),this.schi_(a))};
|
|
1911
1986
|
shaka.util.Mp4Generator.prototype.frma_=function(a){var b=a.codecs.substring(0,a.codecs.indexOf("."));a=shaka.util.Mp4Generator;b=this.stringToCharCode_(b);b=new Uint8Array([].concat($jscomp.arrayFromIterable(this.breakNumberIntoBytes_(b,4))));return a.box("frma",b)};shaka.util.Mp4Generator.prototype.schm_=function(){var a=shaka.util.Mp4Generator,b=new Uint8Array([0,0,0,0,99,101,110,99,0,1,0,0]);return a.box("schm",b)};
|
|
@@ -1941,16 +2016,16 @@ minBufferTime:0,sequenceMode:this.config_.mss.sequenceMode,ignoreManifestTimesta
|
|
|
1941
2016
|
shaka.mss.MssParser.prototype.parseStreamIndexes_=function(a,b){var c=shaka.mss.ContentProtection,d=shaka.util.XmlUtils,e=shaka.util.ManifestParserUtils.ContentType,f=d.findChildren(a,"Protection"),g=c.parseFromProtection(f,this.config_.mss.keySystemsBySystemId),h=[];c=[];f=[];a=d.findChildren(a,"StreamIndex");a=$jscomp.makeIterator(a);for(var k=a.next();!k.done;k=a.next()){k=k.value;var l=d.findChildren(k,"QualityLevel"),m=this.createTimeline_(k,b.timescale,b.duration);l=$jscomp.makeIterator(l);
|
|
1942
2017
|
for(var n=l.next();!n.done;n=l.next())(n=this.createStream_(k,n.value,m,g,b))&&(n.type!=e.AUDIO||this.config_.disableAudio?n.type!=e.VIDEO||this.config_.disableVideo?n.type!=e.TEXT||this.config_.disableText||f.push(n):c.push(n):h.push(n))}d=[];e=$jscomp.makeIterator(0<h.length?h:[null]);for(h=e.next();!h.done;h=e.next())for(h=h.value,g=$jscomp.makeIterator(0<c.length?c:[null]),a=g.next();!a.done;a=g.next())d.push(this.createVariant_(h,a.value));b.variants=d;b.textStreams=f};
|
|
1943
2018
|
shaka.mss.MssParser.prototype.createStream_=function(a,b,c,d,e){var f=this,g=shaka.util.XmlUtils,h=shaka.util.ManifestParserUtils.ContentType,k=shaka.mss.MssParser,l=a.getAttribute("Type");if("audio"!==l&&"video"!==l&&"text"!==l)return shaka.log.alwaysWarn("Ignoring unrecognized type:",l),null;var m=a.getAttribute("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,
|
|
1944
|
-
"Channels",g.parsePositiveInt);g=g.parseAttr(b,"SamplingRate",g.parsePositiveInt);var
|
|
1945
|
-
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,tilesLayout:void 0,matchedStreams:[],mssPrivateData:{duration:
|
|
1946
|
-
k.ROLE_MAPPING_[d])&&
|
|
1947
|
-
k;switch(l){case "audio":if(!k)return shaka.log.alwaysWarn("Quality unsupported without CodecPrivateData",l),null;
|
|
1948
|
-
if(f.initSegmentDataByStreamId_.has(
|
|
1949
|
-
new shaka.media.InitSegmentReference(function(){return[]},0,null,null,void 0,x);x=f.createSegments_(x,
|
|
2019
|
+
"Channels",g.parsePositiveInt);g=g.parseAttr(b,"SamplingRate",g.parsePositiveInt);var v=e.duration;c.length&&(v=c[c.length-1].end-c[0].start);var u=this.presentationTimeline_.getDuration();this.presentationTimeline_.setDuration(Math.min(v,u));var w={id:n,originalId:a.getAttribute("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,
|
|
2020
|
+
bandwidth:p||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,tilesLayout:void 0,matchedStreams:[],mssPrivateData:{duration:v,timescale:e.timescale,codecPrivateData:null},accessibilityPurpose:null,external:!1};if(d=a.getAttribute("Subtype"))(d=
|
|
2021
|
+
k.ROLE_MAPPING_[d])&&w.roles.push(d),"main"===d&&(w.primary=!0);d=b.getAttribute("FourCC");if(null===d||""===d)d=a.getAttribute("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:",d),null;k=this.getCodecPrivateData_(b,l,d,w);w.mssPrivateData.codecPrivateData=
|
|
2022
|
+
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","TTML"===d||"DFXP"===d)w.codecs="stpp"}w.createSegmentIndex=function(){if(w.segmentIndex)return Promise.resolve();
|
|
2023
|
+
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,videoNalus:x,audioConfig:new Uint8Array([]),videoConfig:new Uint8Array([]),data:null,stream:w},x=(new shaka.util.Mp4Generator([x])).initSegment(),f.initSegmentDataByStreamId_.set(w.id,x);x=
|
|
2024
|
+
new shaka.media.InitSegmentReference(function(){return[]},0,null,null,void 0,x);x=f.createSegments_(x,w,a,c);w.segmentIndex=new shaka.media.SegmentIndex(x);return Promise.resolve()};w.closeSegmentIndex=function(){w.segmentIndex&&(w.segmentIndex.release(),w.segmentIndex=null)};return w};
|
|
1950
2025
|
shaka.mss.MssParser.prototype.getCodecPrivateData_=function(a,b,c,d){if(a=a.getAttribute("CodecPrivateData"))return a;if("audio"!==b)return null;b=d.channelsCount||2;a=d.audioSamplingRate||44100;var e={96E3:0,88200:1,64E3:2,48E3:3,44100:4,32E3:5,24E3:6,22050:7,16E3:8,12E3:9,11025:10,8E3:11,7350:12};d=e[a];if("AACH"===c)return c=new Uint8Array(4),a=e[2*a],c[0]=40|d>>1,c[1]=d<<7|b<<3|a>>1,c[2]=a<<7|8,c[3]=0,b=new Uint16Array(2),b[0]=(c[0]<<8)+c[1],b[1]=(c[2]<<8)+c[3],b[0].toString(16)+b[1].toString(16);
|
|
1951
2026
|
c=new Uint8Array(2);c[0]=16|d>>1;c[1]=d<<7|b<<3;b=new Uint16Array(1);b[0]=(c[0]<<8)+c[1];return b[0].toString(16)};shaka.mss.MssParser.prototype.getAACCodec_=function(a,b,c){a=0;"AACH"===b&&(a=5);c?0===a&&(a=(parseInt(c.substr(0,2),16)&248)>>3):(a=2,"AACH"===b&&(a=5));return"mp4a.40."+a};shaka.mss.MssParser.prototype.getH264Codec_=function(a,b){a=/00000001[0-9]7/.exec(b);return a.length&&b?"avc1."+b.substr(b.indexOf(a[0])+10,6):""};
|
|
1952
|
-
shaka.mss.MssParser.prototype.createSegments_=function(a,b,c,d){var e=this,f=shaka.util.ManifestParserUtils;c=c.getAttribute("Url");goog.asserts.assert(c,"Missing URL for segments");var g=c.replace("{bitrate}",String(b.bandwidth));c=[];var h={};d=$jscomp.makeIterator(d);for(var k=d.next();!k.done;h={$jscomp$loop$prop$time$
|
|
1953
|
-
String(l.$jscomp$loop$prop$time$
|
|
2027
|
+
shaka.mss.MssParser.prototype.createSegments_=function(a,b,c,d){var e=this,f=shaka.util.ManifestParserUtils;c=c.getAttribute("Url");goog.asserts.assert(c,"Missing URL for segments");var g=c.replace("{bitrate}",String(b.bandwidth));c=[];var h={};d=$jscomp.makeIterator(d);for(var k=d.next();!k.done;h={$jscomp$loop$prop$time$790:h.$jscomp$loop$prop$time$790},k=d.next())h.$jscomp$loop$prop$time$790=k.value,k=function(l){return function(){return f.resolveUris(e.manifestUris_,[g.replace("{start time}",
|
|
2028
|
+
String(l.$jscomp$loop$prop$time$790.unscaledStart))])}}(h),c.push(new shaka.media.SegmentReference(h.$jscomp$loop$prop$time$790.start,h.$jscomp$loop$prop$time$790.end,k,0,null,a,0,0,b.mssPrivateData.duration));return c};
|
|
1954
2029
|
shaka.mss.MssParser.prototype.createTimeline_=function(a,b,c){goog.asserts.assert(0<b&&Infinity>b,"timescale must be a positive, finite integer");goog.asserts.assert(0<c,"duration must be a positive integer");var d=shaka.util.XmlUtils;a=d.findChildren(a,"c");for(var e=[],f=0,g=0;g<a.length;++g){var h=a[g],k=a[g+1],l=d.parseAttr(h,"t",d.parseNonNegativeInt),m=d.parseAttr(h,"d",d.parseNonNegativeInt),n=d.parseAttr(h,"r",d.parseInt);if(!m){shaka.log.warning('"c" element must have a duration:','ignoring the remaining "c" elements.',
|
|
1955
2030
|
h);break}l=null!=l?l:f;n=n||0;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 repeatif 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==
|
|
1956
2031
|
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:",'igoring 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};
|
|
@@ -1960,15 +2035,15 @@ shaka.media.ManifestParser.registerParserByMime("application/vnd.ms-sstr+xml",fu
|
|
|
1960
2035
|
shaka.net.HttpPluginUtils.makeResponse=function(a,b,c,d,e,f){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"]};e=null;try{e=shaka.util.StringUtils.fromBytesAutoDetect(b)}catch(g){}shaka.log.debug("HTTP error text:",e);throw new shaka.util.Error(401==c||403==c?shaka.util.Error.Severity.CRITICAL:shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.BAD_HTTP_STATUS,d,c,e,a,f);};shaka.net.HttpFetchPlugin=function(){};
|
|
1961
2036
|
shaka.net.HttpFetchPlugin.parse=function(a,b,c,d,e){var f=new shaka.net.HttpFetchPlugin.Headers_;shaka.util.MapUtils.asMap(b.headers).forEach(function(l,m){f.append(m,l)});var g=new shaka.net.HttpFetchPlugin.AbortController_,h={canceled:!1,timedOut:!1};a=shaka.net.HttpFetchPlugin.request_(a,c,{body:b.body||void 0,headers:f,method:b.method,signal:g.signal,credentials:b.allowCrossSiteCredentials?"include":void 0},h,d,e,b.streamDataCallback);a=new shaka.util.AbortableOperation(a,function(){h.canceled=
|
|
1962
2037
|
!0;g.abort();return Promise.resolve()});if(b=b.retryParameters.timeout){var k=new shaka.util.Timer(function(){h.timedOut=!0;g.abort()});k.tickAfter(b/1E3);a.finally(function(){k.stop()})}return a};
|
|
1963
|
-
shaka.net.HttpFetchPlugin.request_=function(a,b,c,d,e,f,g){var h,k,l,m,n,p,q,r,t,
|
|
1964
|
-
r=l.clone().body.getReader();
|
|
1965
|
-
5);case 5:
|
|
1966
|
-
if(d.timedOut)throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.TIMEOUT,a,b);throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.HTTP_ERROR,a,
|
|
2038
|
+
shaka.net.HttpFetchPlugin.request_=function(a,b,c,d,e,f,g){var h,k,l,m,n,p,q,r,t,v,u,w,x;return $jscomp.asyncExecutePromiseGeneratorProgram(function(y){switch(y.nextAddress){case 1:return h=shaka.net.HttpFetchPlugin.fetch_,k=shaka.net.HttpFetchPlugin.ReadableStream_,p=n=0,q=Date.now(),y.setCatchFinallyBlocks(2),y.yield(h(a,c),4);case 4:l=y.yieldResult;f(shaka.net.HttpFetchPlugin.headersToGenericObject_(l.headers));if("HEAD"==c.method){y.jumpTo(5);break}goog.asserts.assert(l.body,"non-HEAD responses should have a body");
|
|
2039
|
+
r=l.clone().body.getReader();v=(t=l.headers.get("Content-Length"))?parseInt(t,10):0;u=function(z){var A=function(){var C,D,G;return $jscomp.asyncExecutePromiseGeneratorProgram(function(B){switch(B.nextAddress){case 1:return B.setCatchFinallyBlocks(2),B.yield(r.read(),4);case 4:C=B.yieldResult;B.leaveTryBlock(3);break;case 2:return D=B.enterCatchBlock(),shaka.log.v1("error reading from stream",D.message),B.return();case 3:if(C.done){B.jumpTo(5);break}n+=C.value.byteLength;if(!g){B.jumpTo(5);break}return B.yield(g(C.value),
|
|
2040
|
+
5);case 5:G=Date.now();if(100<G-q||C.done)e(G-q,n-p,v-n),p=n,q=G;C.done?(goog.asserts.assert(!C.value,'readObj should be unset when "done" is true.'),z.close()):(z.enqueue(C.value),A());B.jumpToEnd()}})};A()};new k({start:u});return y.yield(l.arrayBuffer(),6);case 6:m=y.yieldResult;case 5:y.leaveTryBlock(3);break;case 2:w=y.enterCatchBlock();if(d.canceled)throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.OPERATION_ABORTED,a,b);
|
|
2041
|
+
if(d.timedOut)throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.TIMEOUT,a,b);throw new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.HTTP_ERROR,a,w,b);case 3:return x=shaka.net.HttpFetchPlugin.headersToGenericObject_(l.headers),y.return(shaka.net.HttpPluginUtils.makeResponse(x,m,l.status,a,l.url,b))}})};
|
|
1967
2042
|
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||!window.AbortController)};goog.exportSymbol("shaka.net.HttpFetchPlugin",shaka.net.HttpFetchPlugin);
|
|
1968
2043
|
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;
|
|
1969
2044
|
shaka.net.HttpFetchPlugin.isSupported()&&(shaka.net.NetworkingEngine.registerScheme("http",shaka.net.HttpFetchPlugin.parse,shaka.net.NetworkingEngine.PluginPriority.PREFERRED,!0),shaka.net.NetworkingEngine.registerScheme("https",shaka.net.HttpFetchPlugin.parse,shaka.net.NetworkingEngine.PluginPriority.PREFERRED,!0),shaka.net.NetworkingEngine.registerScheme("blob",shaka.net.HttpFetchPlugin.parse,shaka.net.NetworkingEngine.PluginPriority.PREFERRED,!0));shaka.net.HttpXHRPlugin=function(){};
|
|
1970
2045
|
shaka.net.HttpXHRPlugin.parse=function(a,b,c,d,e){var f=new shaka.net.HttpXHRPlugin.Xhr_,g=Date.now(),h=0,k=new Promise(function(l,m){f.open(b.method,a,!0);f.responseType="arraybuffer";f.timeout=b.retryParameters.timeout;f.withCredentials=b.allowCrossSiteCredentials;f.onabort=function(){m(new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.OPERATION_ABORTED,a,c))};var n=!1;f.onreadystatechange=function(r){2!=f.readyState||n||(r=shaka.net.HttpXHRPlugin.headersToGenericObject_(f),
|
|
1971
|
-
e(r),n=!0)};f.onload=function(r){r=shaka.net.HttpXHRPlugin.headersToGenericObject_(f);goog.asserts.assert(f.response instanceof ArrayBuffer,"XHR should have a response by now!");var t=f.response;try{var
|
|
2046
|
+
e(r),n=!0)};f.onload=function(r){r=shaka.net.HttpXHRPlugin.headersToGenericObject_(f);goog.asserts.assert(f.response instanceof ArrayBuffer,"XHR should have a response by now!");var t=f.response;try{var v=shaka.net.HttpPluginUtils.makeResponse(r,t,f.status,a,f.responseURL,c);l(v)}catch(u){goog.asserts.assert(u instanceof shaka.util.Error,"Wrong error type!"),m(u)}};f.onerror=function(r){m(new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.HTTP_ERROR,
|
|
1972
2047
|
a,r,c))};f.ontimeout=function(r){m(new shaka.util.Error(shaka.util.Error.Severity.RECOVERABLE,shaka.util.Error.Category.NETWORK,shaka.util.Error.Code.TIMEOUT,a,c))};f.onprogress=function(r){var t=Date.now();if(100<t-g||r.lengthComputable&&r.loaded==r.total)d(t-g,r.loaded-h,r.total-r.loaded),h=r.loaded,g=t};for(var p in b.headers){var q=p.toLowerCase();f.setRequestHeader(q,b.headers[p])}f.send(b.body)});return new shaka.util.AbortableOperation(k,function(){f.abort();return Promise.resolve()})};
|
|
1973
2048
|
shaka.net.HttpXHRPlugin.headersToGenericObject_=function(a){var b=a.getAllResponseHeaders().trim().split("\r\n");a={};b=$jscomp.makeIterator(b);for(var c=b.next();!c.done;c=b.next())c=c.value.split(": "),a[c[0].toLowerCase()]=c.slice(1).join(": ");return a};goog.exportSymbol("shaka.net.HttpXHRPlugin",shaka.net.HttpXHRPlugin);goog.exportProperty(shaka.net.HttpXHRPlugin,"parse",shaka.net.HttpXHRPlugin.parse);shaka.net.HttpXHRPlugin.Xhr_=window.XMLHttpRequest;
|
|
1974
2049
|
shaka.net.NetworkingEngine.registerScheme("http",shaka.net.HttpXHRPlugin.parse,shaka.net.NetworkingEngine.PluginPriority.FALLBACK,!0);shaka.net.NetworkingEngine.registerScheme("https",shaka.net.HttpXHRPlugin.parse,shaka.net.NetworkingEngine.PluginPriority.FALLBACK,!0);shaka.net.NetworkingEngine.registerScheme("blob",shaka.net.HttpXHRPlugin.parse,shaka.net.NetworkingEngine.PluginPriority.FALLBACK,!0);shaka.offline={};shaka.offline.DownloadInfo=function(a,b,c,d){this.ref=a;this.estimateId=b;this.groupId=c;this.isInitSegment=d};shaka.offline.DownloadInfo.idForSegmentRef=function(a){return a.getUris().map(function(b){return"{"+encodeURI(b)+"}"}).join("")+":"+a.startByte+":"+a.endByte};shaka.offline.DownloadInfo.prototype.getRefId=function(){return shaka.offline.DownloadInfo.idForSegmentRef(this.ref)};
|
|
@@ -1990,10 +2065,10 @@ shaka.offline.indexeddb.BaseStorageCell.prototype.getManifests=function(a){var b
|
|
|
1990
2065
|
shaka.offline.indexeddb.BaseStorageCell.prototype.getAllManifests=function(){var a=this,b,c;return $jscomp.asyncExecutePromiseGeneratorProgram(function(d){return 1==d.nextAddress?(b=a.connection_.startReadOnlyOperation(a.manifestStore_),c=new Map,d.yield(b.forEachEntry(function(e,f){var g;return $jscomp.asyncExecutePromiseGeneratorProgram(function(h){if(1==h.nextAddress)return h.yield(a.convertManifest(f),2);g=h.yieldResult;c.set(e,g);h.jumpToEnd()})}),2)):3!=d.nextAddress?d.yield(b.promise(),3):
|
|
1991
2066
|
d.return(c)})};shaka.offline.indexeddb.BaseStorageCell.prototype.convertSegmentData=function(a){return a};shaka.offline.indexeddb.BaseStorageCell.prototype.convertManifest=function(a){return Promise.resolve(a)};shaka.offline.indexeddb.BaseStorageCell.prototype.rejectAdd=function(a){return Promise.reject(new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.STORAGE,shaka.util.Error.Code.NEW_KEY_OPERATION_NOT_SUPPORTED,"Cannot add new value to "+a))};
|
|
1992
2067
|
shaka.offline.indexeddb.BaseStorageCell.prototype.rejectUpdate=function(a){return Promise.reject(new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.STORAGE,shaka.util.Error.Code.MODIFY_OPERATION_NOT_SUPPORTED,"Cannot modify values in "+a))};
|
|
1993
|
-
shaka.offline.indexeddb.BaseStorageCell.prototype.add=function(a,b){var c=this,d,e,f,g,h,k,l;return $jscomp.asyncExecutePromiseGeneratorProgram(function(m){if(1==m.nextAddress){d=c.connection_.startReadWriteOperation(a);e=d.store();f=[];g={};h=$jscomp.makeIterator(b);for(k=h.next();!k.done;g={$jscomp$loop$prop$request$
|
|
1994
|
-
return m.yield(d.promise(),2)}return m.return(f)})};shaka.offline.indexeddb.BaseStorageCell.prototype.remove_=function(a,b,c){a=this.connection_.startReadWriteOperation(a);var d=a.store(),e={};b=$jscomp.makeIterator(b);for(var f=b.next();!f.done;e={$jscomp$loop$prop$key$
|
|
1995
|
-
shaka.offline.indexeddb.BaseStorageCell.prototype.get_=function(a,b){var c=this,d,e,f,g,h,k,l;return $jscomp.asyncExecutePromiseGeneratorProgram(function(m){if(1==m.nextAddress){d=c.connection_.startReadOnlyOperation(a);e=d.store();f={};g=[];h={};k=$jscomp.makeIterator(b);for(l=k.next();!l.done;h={$jscomp$loop$prop$request$
|
|
1996
|
-
h.$jscomp$loop$prop$request$
|
|
2068
|
+
shaka.offline.indexeddb.BaseStorageCell.prototype.add=function(a,b){var c=this,d,e,f,g,h,k,l;return $jscomp.asyncExecutePromiseGeneratorProgram(function(m){if(1==m.nextAddress){d=c.connection_.startReadWriteOperation(a);e=d.store();f=[];g={};h=$jscomp.makeIterator(b);for(k=h.next();!k.done;g={$jscomp$loop$prop$request$792:g.$jscomp$loop$prop$request$792},k=h.next())l=k.value,g.$jscomp$loop$prop$request$792=e.add(l),g.$jscomp$loop$prop$request$792.onsuccess=function(n){return function(p){f.push(n.$jscomp$loop$prop$request$792.result)}}(g);
|
|
2069
|
+
return m.yield(d.promise(),2)}return m.return(f)})};shaka.offline.indexeddb.BaseStorageCell.prototype.remove_=function(a,b,c){a=this.connection_.startReadWriteOperation(a);var d=a.store(),e={};b=$jscomp.makeIterator(b);for(var f=b.next();!f.done;e={$jscomp$loop$prop$key$794:e.$jscomp$loop$prop$key$794},f=b.next())e.$jscomp$loop$prop$key$794=f.value,d.delete(e.$jscomp$loop$prop$key$794).onsuccess=function(g){return function(){return c(g.$jscomp$loop$prop$key$794)}}(e);return a.promise()};
|
|
2070
|
+
shaka.offline.indexeddb.BaseStorageCell.prototype.get_=function(a,b){var c=this,d,e,f,g,h,k,l;return $jscomp.asyncExecutePromiseGeneratorProgram(function(m){if(1==m.nextAddress){d=c.connection_.startReadOnlyOperation(a);e=d.store();f={};g=[];h={};k=$jscomp.makeIterator(b);for(l=k.next();!l.done;h={$jscomp$loop$prop$request$796:h.$jscomp$loop$prop$request$796,$jscomp$loop$prop$key$797:h.$jscomp$loop$prop$key$797},l=k.next())h.$jscomp$loop$prop$key$797=l.value,h.$jscomp$loop$prop$request$796=e.get(h.$jscomp$loop$prop$key$797),
|
|
2071
|
+
h.$jscomp$loop$prop$request$796.onsuccess=function(n){return function(){void 0==n.$jscomp$loop$prop$request$796.result&&g.push(n.$jscomp$loop$prop$key$797);f[n.$jscomp$loop$prop$key$797]=n.$jscomp$loop$prop$request$796.result}}(h);return m.yield(d.promise(),2)}if(g.length)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.STORAGE,shaka.util.Error.Code.KEY_NOT_FOUND,"Could not find values for "+g);return m.return(b.map(function(n){return f[n]}))})};shaka.offline.indexeddb.EmeSessionStorageCell=function(a,b){this.connection_=new shaka.offline.indexeddb.DBConnection(a);this.store_=b};shaka.offline.indexeddb.EmeSessionStorageCell.prototype.destroy=function(){return this.connection_.destroy()};
|
|
1997
2072
|
shaka.offline.indexeddb.EmeSessionStorageCell.prototype.getAll=function(){var a=this,b,c;return $jscomp.asyncExecutePromiseGeneratorProgram(function(d){return 1==d.nextAddress?(b=a.connection_.startReadOnlyOperation(a.store_),c=[],d.yield(b.forEachEntry(function(e,f){c.push(f)}),2)):3!=d.nextAddress?d.yield(b.promise(),3):d.return(c)})};
|
|
1998
2073
|
shaka.offline.indexeddb.EmeSessionStorageCell.prototype.add=function(a){var b=this.connection_.startReadWriteOperation(this.store_),c=b.store();a=$jscomp.makeIterator(a);for(var d=a.next();!d.done;d=a.next())c.add(d.value);return b.promise()};
|
|
1999
2074
|
shaka.offline.indexeddb.EmeSessionStorageCell.prototype.remove=function(a){var b=this,c;return $jscomp.asyncExecutePromiseGeneratorProgram(function(d){return 1==d.nextAddress?(c=b.connection_.startReadWriteOperation(b.store_),d.yield(c.forEachEntry(function(e,f,g){a.includes(f.sessionId)&&g.delete()}),2)):d.yield(c.promise(),0)})};shaka.offline.StorageCellHandle={};shaka.offline.StorageCellPath={};shaka.offline.StorageMuxer=function(){this.mechanisms_=new Map};shaka.offline.StorageMuxer.prototype.destroy=function(){for(var a=[],b=$jscomp.makeIterator(this.mechanisms_.values()),c=b.next();!c.done;c=b.next())a.push(c.value.destroy());this.mechanisms_.clear();return Promise.all(a)};
|
|
@@ -2012,7 +2087,7 @@ shaka.util.Error.Code.KEY_NOT_FOUND,"Could not find values for "+a))};return g.y
|
|
|
2012
2087
|
shaka.offline.indexeddb.V1StorageCell.prototype.convertManifest=function(a){var b,c,d,e,f,g,h;return $jscomp.asyncExecutePromiseGeneratorProgram(function(k){if(1==k.nextAddress){b=shaka.offline.indexeddb.V1StorageCell;c=[];for(d=0;d<a.periods.length;++d)e=d==a.periods.length-1?a.duration:a.periods[d+1].startTime,f=e-a.periods[d].startTime,g=b.convertPeriod_(a.periods[d],f),c.push(g);return k.yield(shaka.util.PeriodCombiner.combineDbStreams(c),2)}h=k.yieldResult;return k.return({creationTime:0,originalManifestUri:a.originalManifestUri,
|
|
2013
2088
|
duration:a.duration,size:a.size,expiration:null==a.expiration?Infinity:a.expiration,streams:h,sessionIds:a.sessionIds,drmInfo:a.drmInfo,appMetadata:a.appMetadata,sequenceMode:!1})})};
|
|
2014
2089
|
shaka.offline.indexeddb.V1StorageCell.convertPeriod_=function(a,b){var c=shaka.offline.indexeddb.V1StorageCell;c.fillMissingVariants_(a);for(var d=$jscomp.makeIterator(a.streams),e=d.next();!e.done;e=d.next())goog.asserts.assert(e.value.variantIds,"After filling in missing variants, each stream should have variant ids");return a.streams.map(function(f){return c.convertStream_(f,a.startTime,b)})};
|
|
2015
|
-
shaka.offline.indexeddb.V1StorageCell.convertStream_=function(a,b,c){var d=shaka.offline.indexeddb.V1StorageCell,e=a.initSegmentUri?d.getKeyFromSegmentUri_(a.initSegmentUri):null,f=b+a.presentationTimeOffset,g=b+c;return{id:a.id,originalId:null,primary:a.primary,type:a.contentType,mimeType:a.mimeType,codecs:a.codecs,frameRate:a.frameRate,pixelAspectRatio:void 0,hdr:void 0,kind:a.kind,language:a.language,originalLanguage:a.language||null,label:a.label,width:a.width,height:a.height,initSegmentKey:e,
|
|
2090
|
+
shaka.offline.indexeddb.V1StorageCell.convertStream_=function(a,b,c){var d=shaka.offline.indexeddb.V1StorageCell,e=a.initSegmentUri?d.getKeyFromSegmentUri_(a.initSegmentUri):null,f=b+a.presentationTimeOffset,g=b+c;return{id:a.id,originalId:null,groupId:null,primary:a.primary,type:a.contentType,mimeType:a.mimeType,codecs:a.codecs,frameRate:a.frameRate,pixelAspectRatio:void 0,hdr:void 0,kind:a.kind,language:a.language,originalLanguage:a.language||null,label:a.label,width:a.width,height:a.height,initSegmentKey:e,
|
|
2016
2091
|
encrypted:a.encrypted,keyIds:new Set([a.keyId]),segments:a.segments.map(function(h){return d.convertSegment_(h,e,b,g,f)}),variantIds:a.variantIds,roles:[],forced:!1,audioSamplingRate:null,channelsCount:null,spatialAudio:!1,closedCaptions:null,tilesLayout:void 0,external:!1}};
|
|
2017
2092
|
shaka.offline.indexeddb.V1StorageCell.convertSegment_=function(a,b,c,d,e){var f=shaka.offline.indexeddb.V1StorageCell.getKeyFromSegmentUri_(a.uri);return{startTime:c+a.startTime,endTime:c+a.endTime,dataKey:f,initSegmentKey:b,appendWindowStart:c,appendWindowEnd:d,timestampOffset:e,tilesLayout:""}};shaka.offline.indexeddb.V1StorageCell.prototype.convertSegmentData=function(a){return{data:a.data}};
|
|
2018
2093
|
shaka.offline.indexeddb.V1StorageCell.getKeyFromSegmentUri_=function(a){var b;if((b=/^offline:[0-9]+\/[0-9]+\/([0-9]+)$/.exec(a))||(b=/^offline:segment\/([0-9]+)$/.exec(a)))return Number(b[1]);throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.STORAGE,shaka.util.Error.Code.MALFORMED_OFFLINE_URI,"Could not parse uri "+a);};
|
|
@@ -2021,8 +2096,8 @@ shaka.offline.indexeddb.V1StorageCell.fillMissingVariants_=function(a){var b=sha
|
|
|
2021
2096
|
g=e++,h=$jscomp.makeIterator(d),f=h.next();!f.done;f=h.next())f.value.variantIds.push(g);if(a.length&&d.length)for(shaka.log.debug("Found audio-video content. Creating variants."),d=$jscomp.makeIterator(d),f=d.next();!f.done;f=d.next())for(f=f.value,g=$jscomp.makeIterator(a),h=g.next();!h.done;h=g.next()){h=h.value;var k=e++;f.variantIds.push(k);h.variantIds.push(k)}}};shaka.offline.indexeddb.V2StorageCell=function(){shaka.offline.indexeddb.BaseStorageCell.apply(this,arguments)};$jscomp.inherits(shaka.offline.indexeddb.V2StorageCell,shaka.offline.indexeddb.BaseStorageCell);
|
|
2022
2097
|
shaka.offline.indexeddb.V2StorageCell.prototype.convertManifest=function(a){var b=this,c,d,e,f,g,h;return $jscomp.asyncExecutePromiseGeneratorProgram(function(k){if(1==k.nextAddress){c=[];for(d=0;d<a.periods.length;++d)e=d==a.periods.length-1?a.duration:a.periods[d+1].startTime,f=e-a.periods[d].startTime,g=b.convertPeriod_(a.periods[d],f),c.push(g);return k.yield(shaka.util.PeriodCombiner.combineDbStreams(c),2)}h=k.yieldResult;return k.return({appMetadata:a.appMetadata,creationTime:0,drmInfo:a.drmInfo,
|
|
2023
2098
|
duration:a.duration,expiration:null==a.expiration?Infinity:a.expiration,originalManifestUri:a.originalManifestUri,sessionIds:a.sessionIds,size:a.size,streams:h,sequenceMode:!1})})};shaka.offline.indexeddb.V2StorageCell.prototype.convertPeriod_=function(a,b){for(var c=[],d=$jscomp.makeIterator(a.streams),e=d.next();!e.done;e=d.next())e=e.value,0!=e.variantIds.length&&c.push(this.convertStream_(e,a.startTime,a.startTime+b));return c};
|
|
2024
|
-
shaka.offline.indexeddb.V2StorageCell.prototype.convertStream_=function(a,b,c){var d=this;return{id:a.id,originalId:a.originalId,primary:a.primary,type:a.contentType,mimeType:a.mimeType,codecs:a.codecs,frameRate:a.frameRate,pixelAspectRatio:a.pixelAspectRatio,hdr:void 0,kind:a.kind,language:a.language,originalLanguage:a.language||null,label:a.label,width:a.width,height:a.height,encrypted:a.encrypted,keyIds:new Set([a.keyId]),segments:a.segments.map(function(e){return d.convertSegment_(e,
|
|
2025
|
-
b,c,a.presentationTimeOffset)}),variantIds:a.variantIds,roles:[],forced:!1,audioSamplingRate:null,channelsCount:null,spatialAudio:!1,closedCaptions:null,tilesLayout:void 0,external:!1}};shaka.offline.indexeddb.V2StorageCell.prototype.convertSegment_=function(a,b,c,d,e){return{startTime:c+a.startTime,endTime:c+a.endTime,initSegmentKey:b,appendWindowStart:c,appendWindowEnd:d,timestampOffset:c-e,dataKey:a.dataKey,tilesLayout:""}};shaka.offline.indexeddb.V5StorageCell=function(){shaka.offline.indexeddb.BaseStorageCell.apply(this,arguments)};$jscomp.inherits(shaka.offline.indexeddb.V5StorageCell,shaka.offline.indexeddb.BaseStorageCell);shaka.offline.indexeddb.V5StorageCell.prototype.hasFixedKeySpace=function(){return!1};shaka.offline.indexeddb.V5StorageCell.prototype.addSegments=function(a){return this.add(this.segmentStore_,a)};
|
|
2099
|
+
shaka.offline.indexeddb.V2StorageCell.prototype.convertStream_=function(a,b,c){var d=this;return{id:a.id,originalId:a.originalId,groupId:null,primary:a.primary,type:a.contentType,mimeType:a.mimeType,codecs:a.codecs,frameRate:a.frameRate,pixelAspectRatio:a.pixelAspectRatio,hdr:void 0,kind:a.kind,language:a.language,originalLanguage:a.language||null,label:a.label,width:a.width,height:a.height,encrypted:a.encrypted,keyIds:new Set([a.keyId]),segments:a.segments.map(function(e){return d.convertSegment_(e,
|
|
2100
|
+
a.initSegmentKey,b,c,a.presentationTimeOffset)}),variantIds:a.variantIds,roles:[],forced:!1,audioSamplingRate:null,channelsCount:null,spatialAudio:!1,closedCaptions:null,tilesLayout:void 0,external:!1}};shaka.offline.indexeddb.V2StorageCell.prototype.convertSegment_=function(a,b,c,d,e){return{startTime:c+a.startTime,endTime:c+a.endTime,initSegmentKey:b,appendWindowStart:c,appendWindowEnd:d,timestampOffset:c-e,dataKey:a.dataKey,tilesLayout:""}};shaka.offline.indexeddb.V5StorageCell=function(){shaka.offline.indexeddb.BaseStorageCell.apply(this,arguments)};$jscomp.inherits(shaka.offline.indexeddb.V5StorageCell,shaka.offline.indexeddb.BaseStorageCell);shaka.offline.indexeddb.V5StorageCell.prototype.hasFixedKeySpace=function(){return!1};shaka.offline.indexeddb.V5StorageCell.prototype.addSegments=function(a){return this.add(this.segmentStore_,a)};
|
|
2026
2101
|
shaka.offline.indexeddb.V5StorageCell.prototype.addManifests=function(a){return this.add(this.manifestStore_,a)};shaka.offline.indexeddb.V5StorageCell.prototype.updateManifest=function(a,b){return this.updateManifestImplementation(a,b)};shaka.offline.indexeddb.V5StorageCell.prototype.convertManifest=function(a){null==a.expiration&&(a.expiration=Infinity);return Promise.resolve(a)};shaka.offline.indexeddb.StorageMechanism=function(){this.sessions_=this.v5_=this.v3_=this.v2_=this.v1_=this.db_=null};
|
|
2027
2102
|
shaka.offline.indexeddb.StorageMechanism.prototype.init=function(){var a=this,b=shaka.offline.indexeddb.StorageMechanism.DB_NAME,c=shaka.offline.indexeddb.StorageMechanism.VERSION,d=new shaka.util.PublicPromise,e=!1,f=new shaka.util.Timer(function(){e=!0;d.reject(new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.STORAGE,shaka.util.Error.Code.INDEXED_DB_INIT_TIMED_OUT))});f.tickAfter(5);var g=window.indexedDB.open(b,c);g.onsuccess=function(h){e||(h=g.result,a.db_=h,
|
|
2028
2103
|
a.v1_=shaka.offline.indexeddb.StorageMechanism.createV1_(h),a.v2_=shaka.offline.indexeddb.StorageMechanism.createV2_(h),a.v3_=shaka.offline.indexeddb.StorageMechanism.createV3_(h),a.v5_=shaka.offline.indexeddb.StorageMechanism.createV5_(h),a.sessions_=shaka.offline.indexeddb.StorageMechanism.createEmeSessionCell_(h),f.stop(),d.resolve())};g.onupgradeneeded=function(h){a.createStores_(g.result)};g.onerror=function(h){e||(d.reject(new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.STORAGE,
|
|
@@ -2046,8 +2121,8 @@ shaka.offline.ManifestConverter.prototype.fromManifestDB=function(a){var b=this,
|
|
|
2046
2121
|
shaka.offline.ManifestConverter.prototype.createVariants=function(a,b,c){for(var d=new Set,e=$jscomp.makeIterator(a),f=e.next();!f.done;f=e.next()){var g=$jscomp.makeIterator(f.value.variantIds);for(f=g.next();!f.done;f=g.next())d.add(f.value)}e=$jscomp.makeIterator(b);for(f=e.next();!f.done;f=e.next())for(g=$jscomp.makeIterator(f.value.variantIds),f=g.next();!f.done;f=g.next())d.add(f.value);e=new Map;d=$jscomp.makeIterator(d);for(f=d.next();!f.done;f=d.next())f=f.value,e.set(f,this.createEmptyVariant_(f));
|
|
2047
2122
|
a=$jscomp.makeIterator(a);for(d=a.next();!d.done;d=a.next())for(d=d.value,f=this.fromStreamDB_(d,c),g=$jscomp.makeIterator(d.variantIds),d=g.next();!d.done;d=g.next())d=e.get(d.value),goog.asserts.assert(!d.audio,"A variant should only have one audio stream"),d.language=f.language,d.primary=d.primary||f.primary,d.audio=f;b=$jscomp.makeIterator(b);for(a=b.next();!a.done;a=b.next())for(d=a.value,a=this.fromStreamDB_(d,c),f=$jscomp.makeIterator(d.variantIds),d=f.next();!d.done;d=f.next())d=e.get(d.value),
|
|
2048
2123
|
goog.asserts.assert(!d.video,"A variant should only have one video stream"),d.primary=d.primary||a.primary,d.video=a;return e};
|
|
2049
|
-
shaka.offline.ManifestConverter.prototype.fromStreamDB_=function(a,b){var c=this,d=a.segments.map(function(e,f){return c.fromSegmentDB_(f,e)});b.notifySegments(d);b=new shaka.media.SegmentIndex(d);return{id:a.id,originalId:a.originalId,createSegmentIndex:function(){return Promise.resolve()},segmentIndex:b,mimeType:a.mimeType,codecs:a.codecs,width:a.width||void 0,height:a.height||void 0,frameRate:a.frameRate,pixelAspectRatio:a.pixelAspectRatio,hdr:a.hdr,kind:a.kind,encrypted:a.encrypted,
|
|
2050
|
-
keyIds:a.keyIds,language:a.language,originalLanguage:a.originalLanguage||null,label:a.label,type:a.type,primary:a.primary,trickModeVideo:null,emsgSchemeIdUris:null,roles:a.roles,forced:a.forced,channelsCount:a.channelsCount,audioSamplingRate:a.audioSamplingRate,spatialAudio:a.spatialAudio,closedCaptions:a.closedCaptions,tilesLayout:a.tilesLayout,accessibilityPurpose:null,external:a.external}};
|
|
2124
|
+
shaka.offline.ManifestConverter.prototype.fromStreamDB_=function(a,b){var c=this,d=a.segments.map(function(e,f){return c.fromSegmentDB_(f,e)});b.notifySegments(d);b=new shaka.media.SegmentIndex(d);return{id:a.id,originalId:a.originalId,groupId:a.groupId,createSegmentIndex:function(){return Promise.resolve()},segmentIndex:b,mimeType:a.mimeType,codecs:a.codecs,width:a.width||void 0,height:a.height||void 0,frameRate:a.frameRate,pixelAspectRatio:a.pixelAspectRatio,hdr:a.hdr,kind:a.kind,encrypted:a.encrypted,
|
|
2125
|
+
drmInfos:[],keyIds:a.keyIds,language:a.language,originalLanguage:a.originalLanguage||null,label:a.label,type:a.type,primary:a.primary,trickModeVideo:null,emsgSchemeIdUris:null,roles:a.roles,forced:a.forced,channelsCount:a.channelsCount,audioSamplingRate:a.audioSamplingRate,spatialAudio:a.spatialAudio,closedCaptions:a.closedCaptions,tilesLayout:a.tilesLayout,accessibilityPurpose:null,external:a.external}};
|
|
2051
2126
|
shaka.offline.ManifestConverter.prototype.fromSegmentDB_=function(a,b){var c=shaka.offline.OfflineUri.segment(this.mechanism_,this.cell_,b.dataKey);a=null!=b.initSegmentKey?this.fromInitSegmentDB_(b.initSegmentKey):null;return new shaka.media.SegmentReference(b.startTime,b.endTime,function(){return[c.toString()]},0,null,a,b.timestampOffset,b.appendWindowStart,b.appendWindowEnd,[],b.tilesLayout||"")};
|
|
2052
2127
|
shaka.offline.ManifestConverter.prototype.fromInitSegmentDB_=function(a){var b=shaka.offline.OfflineUri.segment(this.mechanism_,this.cell_,a);return new shaka.media.InitSegmentReference(function(){return[b.toString()]},0,null)};shaka.offline.ManifestConverter.prototype.isAudio_=function(a){return a.type==shaka.util.ManifestParserUtils.ContentType.AUDIO};shaka.offline.ManifestConverter.prototype.isVideo_=function(a){return a.type==shaka.util.ManifestParserUtils.ContentType.VIDEO};
|
|
2053
2128
|
shaka.offline.ManifestConverter.prototype.isText_=function(a){return a.type==shaka.util.ManifestParserUtils.ContentType.TEXT};shaka.offline.ManifestConverter.prototype.isImage_=function(a){return a.type==shaka.util.ManifestParserUtils.ContentType.IMAGE};shaka.offline.ManifestConverter.prototype.createEmptyVariant_=function(a){return{id:a,language:"",disabledUntilTime:0,primary:!1,audio:null,video:null,bandwidth:0,allowedByApplication:!0,allowedByKeySystem:!0,decodingInfos:[]}};shaka.offline.OfflineManifestParser=function(){this.uri_=null};shaka.offline.OfflineManifestParser.prototype.configure=function(a){};
|
|
@@ -2076,23 +2151,23 @@ shaka.offline.Storage.prototype.configure=function(a,b){goog.asserts.assert("obj
|
|
|
2076
2151
|
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_};
|
|
2077
2152
|
shaka.offline.Storage.prototype.store=function(a,b,c){var d=this;goog.asserts.assert(this.networkingEngine_,"Cannot call |store| after calling |destroy|.");var e=this.getConfiguration(),f=new shaka.offline.DownloadManager(this.networkingEngine_);this.openDownloadManagers_.push(f);b=this.store_(a,b||{},function(){var g;return $jscomp.asyncExecutePromiseGeneratorProgram(function(h){if(1==h.nextAddress)return goog.asserts.assert(d.networkingEngine_,"Should not call |store| after |destroy|"),h.yield(shaka.media.ManifestParser.getFactory(a,
|
|
2078
2153
|
d.networkingEngine_,e.manifest.retryParameters,c||null),2);g=h.yieldResult;return h.return(g())})},e,f);b=new shaka.util.AbortableOperation(b,function(){return f.abortAll()});b.finally(function(){shaka.util.ArrayUtils.remove(d.openDownloadManagers_,f)});return this.startAbortableOperation_(b)};
|
|
2079
|
-
shaka.offline.Storage.prototype.store_=function(a,b,c,d,e){var f=this,g,h,k,l,m,n,p,q,r,t,
|
|
2080
|
-
shaka.util.Error.Category.STORAGE,shaka.util.Error.Code.CANNOT_STORE_LIVE_OFFLINE,a);return
|
|
2081
|
-
|
|
2082
|
-
break}return
|
|
2083
|
-
shaka.offline.Storage.prototype.downloadSegments_=function(a,b,c,d,e,f,g,h){var k=this,l,m,n,p,q,r,t,
|
|
2084
|
-
D.value,
|
|
2085
|
-
d.queue(A.$jscomp$loop$prop$download$
|
|
2086
|
-
q=l,r=m,l={},m=0,x.yield(shaka.offline.Storage.assignSegmentsToManifest(f,b,c,q,r,function(){return k.ensureNotDestroyed_()}),6);case 6:k.ensureNotDestroyed_();case 4:if(p){x.jumpTo(7);break}return x.yield(n(a,!1),8);case 8:return k.ensureNotDestroyed_(),t=l,
|
|
2087
|
-
break;case 2:return u=x.enterCatchBlock(),
|
|
2154
|
+
shaka.offline.Storage.prototype.store_=function(a,b,c,d,e){var f=this,g,h,k,l,m,n,p,q,r,t,v,u,w,x;return $jscomp.asyncExecutePromiseGeneratorProgram(function(y){switch(y.nextAddress){case 1:return f.requireSupport_(),h=g=null,k=new shaka.offline.StorageMuxer,n=m=l=null,y.setCatchFinallyBlocks(2,3),y.yield(c(),5);case 5:return g=y.yieldResult,y.yield(f.parseManifest(a,g,d),6);case 6:p=y.yieldResult;f.ensureNotDestroyed_();q=!p.presentationTimeline.isLive()&&!p.presentationTimeline.isInProgress();if(!q)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
|
|
2155
|
+
shaka.util.Error.Category.STORAGE,shaka.util.Error.Code.CANNOT_STORE_LIVE_OFFLINE,a);return y.yield(f.createDrmEngine(p,function(z){n=n||z},d),7);case 7:h=y.yieldResult;f.ensureNotDestroyed_();if(n)throw n;return y.yield(f.filterManifest_(p,h,d),8);case 8:return y.yield(k.init(),9);case 9:return f.ensureNotDestroyed_(),y.yield(k.getActive(),10);case 10:return l=y.yieldResult,f.ensureNotDestroyed_(),goog.asserts.assert(h,"drmEngine should be non-null here."),r=f.makeManifestDB_(h,p,a,b,d,e),t=r.manifestDB,
|
|
2156
|
+
v=r.toDownload,y.yield(l.cell.addManifests([t]),11);case 11:u=y.yieldResult;f.ensureNotDestroyed_();m=u[0];goog.asserts.assert(h,"drmEngine should be non-null here.");f.ensureNotDestroyed_();if(n)throw n;return y.yield(f.downloadSegments_(v,m,t,e,d,l.cell,p,h),12);case 12:return f.ensureNotDestroyed_(),w=shaka.offline.OfflineUri.manifest(l.path.mechanism,l.path.cell,m),y.return(shaka.offline.StoredContentUtils.fromManifestDB(w,t));case 3:return y.enterFinallyBlock(),y.yield(k.destroy(),13);case 13:if(!g){y.jumpTo(14);
|
|
2157
|
+
break}return y.yield(g.stop(),14);case 14:if(!h){y.jumpTo(16);break}return y.yield(h.destroy(),16);case 16:y.leaveFinallyBlock(0);break;case 2:x=y.enterCatchBlock();if(null==m){y.jumpTo(18);break}return y.yield(shaka.offline.Storage.cleanStoredManifest(m),18);case 18:throw n||x;}})};
|
|
2158
|
+
shaka.offline.Storage.prototype.downloadSegments_=function(a,b,c,d,e,f,g,h){var k=this,l,m,n,p,q,r,t,v,u,w;return $jscomp.asyncExecutePromiseGeneratorProgram(function(x){switch(x.nextAddress){case 1:l={};m=0;n=function(y,z){var A,C,D,G,B,E,F;return $jscomp.asyncExecutePromiseGeneratorProgram(function(H){if(1==H.nextAddress){A={};C=$jscomp.makeIterator(y);for(D=C.next();!D.done;A={$jscomp$loop$prop$download$682$799:A.$jscomp$loop$prop$download$682$799},D=C.next())A.$jscomp$loop$prop$download$682$799=
|
|
2159
|
+
D.value,G=A.$jscomp$loop$prop$download$682$799.makeSegmentRequest(e),B=A.$jscomp$loop$prop$download$682$799.estimateId,E=A.$jscomp$loop$prop$download$682$799.isInitSegment,F=function(I){return function(J){var L,K,M;return $jscomp.asyncExecutePromiseGeneratorProgram(function(N){if(1==N.nextAddress)return N.yield(f.addSegments([{data:J}]),2);L=N.yieldResult;k.ensureNotDestroyed_();K=I.$jscomp$loop$prop$download$682$799.ref;M=shaka.offline.DownloadInfo.idForSegmentRef(K);l[M]=L[0];m+=J.byteLength;N.jumpToEnd()})}}(A),
|
|
2160
|
+
d.queue(A.$jscomp$loop$prop$download$682$799.groupId,G,B,E,F);return H.yield(d.waitToFinish(),2)}if(!z)return H.jumpTo(0);k.ensureNotDestroyed_();k.setManifestDrmFields_(g,c,h,e);return H.yield(f.updateManifest(b,c),0)})};p=!1;x.setCatchFinallyBlocks(2);if(!k.getManifestIsEncrypted_(g)||!p||k.getManifestIncludesInitData_(g)){x.jumpTo(4);break}return x.yield(n(a.filter(function(y){return y.isInitSegment}),!0),5);case 5:return k.ensureNotDestroyed_(),a=a.filter(function(y){return!y.isInitSegment}),
|
|
2161
|
+
q=l,r=m,l={},m=0,x.yield(shaka.offline.Storage.assignSegmentsToManifest(f,b,c,q,r,function(){return k.ensureNotDestroyed_()}),6);case 6:k.ensureNotDestroyed_();case 4:if(p){x.jumpTo(7);break}return x.yield(n(a,!1),8);case 8:return k.ensureNotDestroyed_(),t=l,v=m,l={},m=0,x.yield(shaka.offline.Storage.assignSegmentsToManifest(f,b,c,t,v,function(){return k.ensureNotDestroyed_()}),9);case 9:k.ensureNotDestroyed_(),goog.asserts.assert(!c.isIncomplete,"The manifest should be complete by now");case 7:x.leaveTryBlock(0);
|
|
2162
|
+
break;case 2:return u=x.enterCatchBlock(),w=Object.values(l),x.yield(f.removeSegments(w,function(y){}),10);case 10:throw u;}})};
|
|
2088
2163
|
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)}})};
|
|
2089
|
-
shaka.offline.Storage.assignSegmentsToManifest=function(a,b,c,d,e,f){var g,h,k,l,m,n,p,q,r,t,
|
|
2090
|
-
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 u.yield(a.updateManifest(b,c),4);case 4:g=!0;f();u.leaveTryBlock(0);break;case 2:return t=u.enterCatchBlock(),u.yield(shaka.offline.Storage.cleanStoredManifest(b),5);case 5:if(g){u.jumpTo(6);break}
|
|
2091
|
-
shaka.offline.Storage.prototype.filterManifest_=function(a,b,c){var d,e,f,g,h,k,l,m,n,p,q,r,t,
|
|
2164
|
+
shaka.offline.Storage.assignSegmentsToManifest=function(a,b,c,d,e,f){var g,h,k,l,m,n,p,q,r,t,v;return $jscomp.asyncExecutePromiseGeneratorProgram(function(u){switch(u.nextAddress){case 1:g=!1;u.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?
|
|
2165
|
+
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 u.yield(a.updateManifest(b,c),4);case 4:g=!0;f();u.leaveTryBlock(0);break;case 2:return t=u.enterCatchBlock(),u.yield(shaka.offline.Storage.cleanStoredManifest(b),5);case 5:if(g){u.jumpTo(6);break}v=Object.values(d);return u.yield(a.removeSegments(v,function(w){}),6);case 6:throw t;}})};
|
|
2166
|
+
shaka.offline.Storage.prototype.filterManifest_=function(a,b,c){var d,e,f,g,h,k,l,m,n,p,q,r,t,v,u,w,x,y,z,A,C,D,G,B,E,F,H,I,J;return $jscomp.asyncExecutePromiseGeneratorProgram(function(L){switch(L.nextAddress){case 1:return d={width:Infinity,height:Infinity},shaka.util.StreamUtils.filterByRestrictions(a,c.restrictions,d),L.yield(shaka.util.StreamUtils.filterManifestByMediaCapabilities(a,c.offline.usePersistentLicense),2);case 2:e=[];f=c.preferredAudioChannelCount;g=c.preferredDecodingAttributes;
|
|
2092
2167
|
h=c.preferredVideoCodecs;k=c.preferredAudioCodecs;shaka.util.StreamUtils.chooseCodecsAndFilterManifest(a,h,k,f,g);l=$jscomp.makeIterator(a.variants);for(m=l.next();!m.done;m=l.next())n=m.value,goog.asserts.assert(shaka.util.StreamUtils.isPlayable(n),'We should have already filtered by "is playable"'),e.push(shaka.util.StreamUtils.variantToTrack(n));p=$jscomp.makeIterator(a.textStreams);for(q=p.next();!q.done;q=p.next())r=q.value,e.push(shaka.util.StreamUtils.textStreamToTrack(r));t=$jscomp.makeIterator(a.imageStreams);
|
|
2093
|
-
for(
|
|
2094
|
-
shaka.util.Error.Code.STORAGE_LIMIT_REACHED);
|
|
2095
|
-
"text"==J.type&&
|
|
2168
|
+
for(v=t.next();!v.done;v=t.next())u=v.value,e.push(shaka.util.StreamUtils.imageStreamToTrack(u));return L.yield(c.offline.trackSelectionCallback(e),3);case 3:w=L.yieldResult;x=a.presentationTimeline.getDuration();y=0;z=$jscomp.makeIterator(w);for(A=z.next();!A.done;A=z.next())C=A.value,D=C.bandwidth*x/8,y+=D;L.setCatchFinallyBlocks(4);return L.yield(c.offline.downloadSizeCallback(y),6);case 6:G=L.yieldResult;if(!G)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.STORAGE,
|
|
2169
|
+
shaka.util.Error.Code.STORAGE_LIMIT_REACHED);L.leaveTryBlock(5);break;case 4:B=L.enterCatchBlock();if(B instanceof shaka.util.Error)throw B;shaka.log.warning("downloadSizeCallback has produced an unexpected error",B);throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.STORAGE,shaka.util.Error.Code.DOWNLOAD_SIZE_CALLBACK_ERROR);case 5:E=new Set;F=new Set;H=new Set;I=$jscomp.makeIterator(w);for(A=I.next();!A.done;A=I.next())J=A.value,"variant"==J.type&&E.add(J.id),
|
|
2170
|
+
"text"==J.type&&F.add(J.id),"image"==J.type&&H.add(J.id);a.variants=a.variants.filter(function(K){return E.has(K.id)});a.textStreams=a.textStreams.filter(function(K){return F.has(K.id)});a.imageStreams=a.imageStreams.filter(function(K){return H.has(K.id)});shaka.offline.Storage.validateManifest_(a);L.jumpToEnd()}})};
|
|
2096
2171
|
shaka.offline.Storage.prototype.makeManifestDB_=function(a,b,c,d,e,f){var g=shaka.offline.StoredContentUtils.fromManifest(c,b,0,d),h=e.offline.progressCallback;f.setCallbacks(function(q,r){g.size=r;h(g,q)},function(q,r){k&&e.offline.usePersistentLicense&&l==r&&a.newInitData("cenc",q)});var k=this.getManifestIsEncrypted_(b)&&!this.getManifestIncludesInitData_(b),l=null;if(k){var m=a.getDrmInfo();l=shaka.offline.Storage.defaultSystemIds_.get(m.keySystem)}m=new shaka.offline.StreamBandwidthEstimator;
|
|
2097
2172
|
for(var n=$jscomp.makeIterator(b.textStreams),p=n.next();!p.done;p=n.next())m.addText(p.value);n=$jscomp.makeIterator(b.imageStreams);for(p=n.next();!p.done;p=n.next())m.addImage(p.value);p=$jscomp.makeIterator(b.variants);for(n=p.next();!n.done;n=p.next())m.addVariant(n.value);m=this.createStreams_(f,m,a,b,e);f=m.streams;m=m.toDownload;p=a.getDrmInfo();n=e.offline.usePersistentLicense;p&&n&&(p.initData=[]);return{manifestDB:{creationTime:Date.now(),originalManifestUri:c,duration:b.presentationTimeline.getDuration(),
|
|
2098
2173
|
size:0,expiration:a.getExpiration(),streams:f,sessionIds:n?a.getSessionIds():[],drmInfo:p,appMetadata:d,isIncomplete:!0,sequenceMode:b.sequenceMode,type:b.type},toDownload:m}};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})};
|
|
@@ -2108,13 +2183,14 @@ k=h.next();case 5:if(k.done){p.jumpTo(2);break}l=k.value;return p.yield(l.getAll
|
|
|
2108
2183
|
shaka.offline.Storage.prototype.list_=function(){var a=this,b,c,d;return $jscomp.asyncExecutePromiseGeneratorProgram(function(e){switch(e.nextAddress){case 1:return a.requireSupport_(),b=[],c=new shaka.offline.StorageMuxer,e.setFinallyBlock(2),e.yield(c.init(),4);case 4:return d=Promise.resolve(),c.forEachCell(function(f,g){d=d.then(function(){var h;return $jscomp.asyncExecutePromiseGeneratorProgram(function(k){if(1==k.nextAddress)return k.yield(g.getAllManifests(),2);h=k.yieldResult;h.forEach(function(l,
|
|
2109
2184
|
m){m=shaka.offline.OfflineUri.manifest(f.mechanism,f.cell,m);l=shaka.offline.StoredContentUtils.fromManifestDB(m,l);b.push(l)});k.jumpToEnd()})})}),e.yield(d,2);case 2:return e.enterFinallyBlock(),e.yield(c.destroy(),6);case 6:e.leaveFinallyBlock(3);break;case 3:return e.return(b)}})};
|
|
2110
2185
|
shaka.offline.Storage.prototype.parseManifest=function(a,b,c){var d=this,e,f,g,h,k;return $jscomp.asyncExecutePromiseGeneratorProgram(function(l){if(1==l.nextAddress)return e=null,f=d.networkingEngine_,goog.asserts.assert(f,"Should be initialized!"),g={networkingEngine:f,filter:function(){return Promise.resolve()},makeTextStreamsForClosedCaptions:function(m){},onTimelineRegionAdded:function(){},onEvent:function(){},onError:function(m){e=m},isLowLatencyMode:function(){return!1},isAutoLowLatencyMode:function(){return!1},
|
|
2111
|
-
enableLowLatencyMode:function(){},updateDuration:function(){},newDrmInfo:function(m){}},b.configure(c.manifest),d.ensureNotDestroyed_(),l.yield(b.start(a,g),2);if(3!=l.nextAddress)return h=l.yieldResult,d.ensureNotDestroyed_(),k=shaka.offline.Storage.getAllStreamsFromManifest_(h),l.yield(Promise.all(shaka.util.Iterables.map(k,function(m){return m.createSegmentIndex()})),3);d.ensureNotDestroyed_();
|
|
2186
|
+
enableLowLatencyMode:function(){},updateDuration:function(){},newDrmInfo:function(m){},onManifestUpdated:function(){},getBandwidthEstimate:function(){return c.abr.defaultBandwidthEstimate}},b.configure(c.manifest),d.ensureNotDestroyed_(),l.yield(b.start(a,g),2);if(3!=l.nextAddress)return h=l.yieldResult,d.ensureNotDestroyed_(),k=shaka.offline.Storage.getAllStreamsFromManifest_(h),l.yield(Promise.all(shaka.util.Iterables.map(k,function(m){return m.createSegmentIndex()})),3);d.ensureNotDestroyed_();
|
|
2187
|
+
if(e)throw e;return l.return(h)})};
|
|
2112
2188
|
shaka.offline.Storage.prototype.createDrmEngine=function(a,b,c){var d=this,e;return $jscomp.asyncExecutePromiseGeneratorProgram(function(f){switch(f.nextAddress){case 1:return goog.asserts.assert(d.networkingEngine_,"Cannot call |createDrmEngine| after |destroy|"),e=new shaka.media.DrmEngine({netEngine:d.networkingEngine_,onError:b,onKeyStatus:function(){},onExpirationUpdated:function(){},onEvent:function(){}}),e.configure(c.drm),f.yield(e.initForStorage(a.variants,c.offline.usePersistentLicense),
|
|
2113
2189
|
2);case 2:return f.yield(e.setServerCertificate(),3);case 3:return f.yield(e.createOrLoad(),4);case 4:return f.return(e)}})};
|
|
2114
2190
|
shaka.offline.Storage.prototype.createStreams_=function(a,b,c,d,e){c=new Map;var f=shaka.offline.Storage.getAllStreamsFromManifest_(d),g=new Map;f=$jscomp.makeIterator(f);for(var h=f.next();!h.done;h=f.next()){h=h.value;var k=this.createStream_(a,b,d,h,e,c);g.set(h.id,k)}a=$jscomp.makeIterator(d.variants);for(b=a.next();!b.done;b=a.next())b=b.value,b.audio&&g.get(b.audio.id).variantIds.push(b.id),b.video&&g.get(b.video.id).variantIds.push(b.id);return{streams:Array.from(g.values()),toDownload:Array.from(c.values())}};
|
|
2115
|
-
shaka.offline.Storage.prototype.createStream_=function(a,b,c,d,e,f){var g={id:d.id,originalId:d.originalId,primary:d.primary,type:d.type,mimeType:d.mimeType,codecs:d.codecs,frameRate:d.frameRate,pixelAspectRatio:d.pixelAspectRatio,hdr:d.hdr,kind:d.kind,language:d.language,originalLanguage:d.originalLanguage,label:d.label,width:d.width||null,height:d.height||null,encrypted:d.encrypted,keyIds:d.keyIds,segments:[],variantIds:[],roles:d.roles,forced:d.forced,channelsCount:d.channelsCount,
|
|
2116
|
-
spatialAudio:d.spatialAudio,closedCaptions:d.closedCaptions,tilesLayout:d.tilesLayout,external:d.external};c=c.presentationTimeline.getSegmentAvailabilityStart();var h=e.offline.numberOfParallelDownloads,k=0;shaka.offline.Storage.forEachSegment_(d,c,function(l){var m=shaka.offline.DownloadInfo.idForSegmentRef(l),n=void 0;if(!f.has(m)){var p=a.addDownloadEstimate(b.getSegmentEstimate(d.id,l));p=new shaka.offline.DownloadInfo(l,p,k,!1);f.set(m,p)}l.initSegmentReference&&
|
|
2117
|
-
f.has(n)||(p=a.addDownloadEstimate(b.getInitSegmentEstimate(d.id)),p=new shaka.offline.DownloadInfo(l.initSegmentReference,p,k,!0),f.set(n,p)));g.segments.push({pendingInitSegmentRefId:n,initSegmentKey:n?0:null,startTime:l.startTime,endTime:l.endTime,appendWindowStart:l.appendWindowStart,appendWindowEnd:l.appendWindowEnd,timestampOffset:l.timestampOffset,tilesLayout:l.tilesLayout,pendingSegmentRefId:m,dataKey:0});k=(k+1)%h});return g};
|
|
2191
|
+
shaka.offline.Storage.prototype.createStream_=function(a,b,c,d,e,f){var g={id:d.id,originalId:d.originalId,groupId:d.groupId,primary:d.primary,type:d.type,mimeType:d.mimeType,codecs:d.codecs,frameRate:d.frameRate,pixelAspectRatio:d.pixelAspectRatio,hdr:d.hdr,kind:d.kind,language:d.language,originalLanguage:d.originalLanguage,label:d.label,width:d.width||null,height:d.height||null,encrypted:d.encrypted,keyIds:d.keyIds,segments:[],variantIds:[],roles:d.roles,forced:d.forced,channelsCount:d.channelsCount,
|
|
2192
|
+
audioSamplingRate:d.audioSamplingRate,spatialAudio:d.spatialAudio,closedCaptions:d.closedCaptions,tilesLayout:d.tilesLayout,external:d.external};c=c.presentationTimeline.getSegmentAvailabilityStart();var h=e.offline.numberOfParallelDownloads,k=0;shaka.offline.Storage.forEachSegment_(d,c,function(l){var m=shaka.offline.DownloadInfo.idForSegmentRef(l),n=void 0;if(!f.has(m)){var p=a.addDownloadEstimate(b.getSegmentEstimate(d.id,l));p=new shaka.offline.DownloadInfo(l,p,k,!1);f.set(m,p)}l.initSegmentReference&&
|
|
2193
|
+
(n=shaka.offline.DownloadInfo.idForSegmentRef(l.initSegmentReference),f.has(n)||(p=a.addDownloadEstimate(b.getInitSegmentEstimate(d.id)),p=new shaka.offline.DownloadInfo(l.initSegmentReference,p,k,!0),f.set(n,p)));g.segments.push({pendingInitSegmentRefId:n,initSegmentKey:n?0:null,startTime:l.startTime,endTime:l.endTime,appendWindowStart:l.appendWindowStart,appendWindowEnd:l.appendWindowEnd,timestampOffset:l.timestampOffset,tilesLayout:l.tilesLayout,pendingSegmentRefId:m,dataKey:0});k=(k+1)%h});return g};
|
|
2118
2194
|
shaka.offline.Storage.forEachSegment_=function(a,b,c){b=a.segmentIndex.find(b);if(null!=b)for(var d=a.segmentIndex.get(b);d;)c(d),d=a.segmentIndex.get(++b)};shaka.offline.Storage.prototype.ensureNotDestroyed_=function(){if(this.destroyer_.destroyed())throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.STORAGE,shaka.util.Error.Code.OPERATION_ABORTED);};
|
|
2119
2195
|
shaka.offline.Storage.prototype.requireSupport_=function(){if(!shaka.offline.Storage.support())throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.STORAGE,shaka.util.Error.Code.STORAGE_NOT_SUPPORTED);};
|
|
2120
2196
|
shaka.offline.Storage.prototype.startOperation_=function(a){var b=this;return $jscomp.asyncExecutePromiseGeneratorProgram(function(c){if(1==c.nextAddress)return b.openOperations_.push(a),c.setFinallyBlock(2),c.yield(a,4);if(2!=c.nextAddress)return c.return(c.yieldResult);c.enterFinallyBlock();shaka.util.ArrayUtils.remove(b.openOperations_,a);return c.leaveFinallyBlock(0)})};
|
|
@@ -2140,11 +2216,11 @@ document.webkitFullscreenElement}}),Object.defineProperty(document,"fullscreenEn
|
|
|
2140
2216
|
a);document.addEventListener("MSFullscreenError",a)}};shaka.polyfill.Fullscreen.proxyEvent_=function(a){var b=a.type.replace(/^(webkit|moz|MS)/,"").toLowerCase(),c=document.createEvent("Event");c.initEvent(b,a.bubbles,a.cancelable);a.target.dispatchEvent(c)};goog.exportProperty(shaka.polyfill,"Fullscreen",shaka.polyfill.Fullscreen);goog.exportProperty(shaka.polyfill.Fullscreen,"install",shaka.polyfill.Fullscreen.install);shaka.polyfill.register(shaka.polyfill.Fullscreen.install);shaka.polyfill.MediaCapabilities=function(){};
|
|
2141
2217
|
shaka.polyfill.MediaCapabilities.install=function(){var a=!0;if(shaka.util.Platform.isApple()||shaka.util.Platform.isPS5()||shaka.util.Platform.isPS4()||shaka.util.Platform.isWebOS()||shaka.util.Platform.isTizen()||shaka.util.Platform.isChromecast()||shaka.util.Platform.isEOS()||shaka.util.Platform.isHisense())a=!1;a&&navigator.mediaCapabilities?shaka.log.info("MediaCapabilities: Native mediaCapabilities support found."):(shaka.log.info("MediaCapabilities: install"),navigator.mediaCapabilities||(navigator.mediaCapabilities=
|
|
2142
2218
|
{}),shaka.polyfill.MediaCapabilities.originalMcap=navigator.mediaCapabilities,navigator.mediaCapabilities.decodingInfo=shaka.polyfill.MediaCapabilities.decodingInfo_)};
|
|
2143
|
-
shaka.polyfill.MediaCapabilities.decodingInfo_=function(a){var b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,
|
|
2144
|
-
shaka.util.Platform.isTizen()?(g=c.contentType,c.width&&c.height&&(g+="; width="+c.width,g+="; height="+c.height),c.framerate&&(g+="; framerate="+c.framerate),c.bitrate&&(g+="; bitrate="+c.bitrate),f=e.isTypeSupported(g)):f=e.isTypeSupported(c.contentType),!f)||d&&(h=d.contentType,k=e.isTypeSupported(h),!k))return
|
|
2145
|
-
if(!a.keySystemConfiguration)return b.supported=!0,
|
|
2146
|
-
t);x=shaka.polyfill.MediaCapabilities.generateKeySystemCacheKey_(a.video?a.video.contentType:"",a.audio?a.audio.contentType:"",a.keySystemConfiguration.keySystem);
|
|
2147
|
-
|
|
2219
|
+
shaka.polyfill.MediaCapabilities.decodingInfo_=function(a){var b,c,d,e,f,g,h,k,l,m,n,p,q,r,t,v,u,w,x,y;return $jscomp.asyncExecutePromiseGeneratorProgram(function(z){switch(z.nextAddress){case 1:b={supported:!1,powerEfficient:!0,smooth:!0,keySystemAccess:null,configuration:a};if(!a)return z.return(b);c=a.video;d=a.audio;e=shaka.media.Capabilities;if("media-source"==a.type){if(!shaka.util.Platform.supportsMediaSource()||c&&(shaka.util.Platform.isChromecast()?f=shaka.polyfill.MediaCapabilities.canCastDisplayType_(c):
|
|
2220
|
+
shaka.util.Platform.isTizen()?(g=c.contentType,c.width&&c.height&&(g+="; width="+c.width,g+="; height="+c.height),c.framerate&&(g+="; framerate="+c.framerate),c.bitrate&&(g+="; bitrate="+c.bitrate),f=e.isTypeSupported(g)):f=e.isTypeSupported(c.contentType),!f)||d&&(h=d.contentType,k=e.isTypeSupported(h),!k))return z.return(b)}else if("file"==a.type){if(c&&(l=c.contentType,m=shaka.util.Platform.supportsMediaType(l),!m)||d&&(n=d.contentType,p=shaka.util.Platform.supportsMediaType(n),!p))return z.return(b)}else return z.return(b);
|
|
2221
|
+
if(!a.keySystemConfiguration)return b.supported=!0,z.return(Promise.resolve(b));q=a.keySystemConfiguration;r=[];t=[];q.audio&&(v={robustness:q.audio.robustness||"",contentType:a.audio.contentType},r.push(v));q.video&&(u={robustness:q.video.robustness||"",contentType:a.video.contentType},t.push(u));w={initDataTypes:[q.initDataType],distinctiveIdentifier:q.distinctiveIdentifier,persistentState:q.persistentState,sessionTypes:q.sessionTypes};r.length&&(w.audioCapabilities=r);t.length&&(w.videoCapabilities=
|
|
2222
|
+
t);x=shaka.polyfill.MediaCapabilities.generateKeySystemCacheKey_(a.video?a.video.contentType:"",a.audio?a.audio.contentType:"",a.keySystemConfiguration.keySystem);z.setCatchFinallyBlocks(3);if(x in shaka.polyfill.MediaCapabilities.memoizedMediaKeySystemAccessRequests_){y=shaka.polyfill.MediaCapabilities.memoizedMediaKeySystemAccessRequests_[x];z.jumpTo(5);break}return z.yield(navigator.requestMediaKeySystemAccess(q.keySystem,[w]),6);case 6:y=z.yieldResult,shaka.polyfill.MediaCapabilities.memoizedMediaKeySystemAccessRequests_[x]=
|
|
2223
|
+
y;case 5:z.leaveTryBlock(4);break;case 3:z.enterCatchBlock(),shaka.log.info("navigator.requestMediaKeySystemAccess failed.");case 4:y&&(b.supported=!0,b.keySystemAccess=y);case 2:return z.return(b)}})};
|
|
2148
2224
|
shaka.polyfill.MediaCapabilities.canCastDisplayType_=function(a){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."),shaka.media.Capabilities.isTypeSupported(a.contentType);var b=a.contentType;a.width&&a.height&&(b+="; width="+a.width+"; height="+a.height);a.framerate&&(b+="; framerate="+a.framerate);"pq"===a.transferFunction&&(b+="; eotf=smpte2084");
|
|
2149
2225
|
return cast.__platform__.canDisplayType(b)};shaka.polyfill.MediaCapabilities.generateKeySystemCacheKey_=function(a,b,c){return a+"#"+b+"#"+c};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);
|
|
2150
2226
|
shaka.polyfill.MediaCapabilities.memoizedMediaKeySystemAccessRequests_={};goog.exportProperty(shaka.polyfill.MediaCapabilities,"memoizedMediaKeySystemAccessRequests_",shaka.polyfill.MediaCapabilities.memoizedMediaKeySystemAccessRequests_);shaka.polyfill.register(shaka.polyfill.MediaCapabilities.install,-1);shaka.polyfill.MediaSource=function(){};
|
|
@@ -2253,9 +2329,9 @@ e,"subFrameRate"),m=d.getAttributeNSList(h,e,"frameRateMultiplier"),n=d.getAttri
|
|
|
2253
2329
|
d.getChildren(m):[];n=Array.from(h.getElementsByTagName("style"));h=Array.from(h.getElementsByTagName("region"));p=[];q=$jscomp.makeIterator(h);for(var r=q.next();!r.done;r=q.next())(r=c.parseCueRegion_(r.value,n,e))&&p.push(r);if(d.findChildren(g,"p").length)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.TEXT,shaka.util.Error.Code.INVALID_TEXT_CUE,"<p> can only be inside <div> in TTML");e=$jscomp.makeIterator(d.findChildren(g,"div"));for(q=e.next();!q.done;q=
|
|
2254
2330
|
e.next())if(d.findChildren(q.value,"span").length)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.TEXT,shaka.util.Error.Code.INVALID_TEXT_CUE,"<span> can only be inside <p> in TTML");if(b=c.parseCue_(g,b,k,m,n,h,p,f,l,null,!1))b.backgroundColor||(b.backgroundColor="transparent"),a.push(b);return a};
|
|
2255
2331
|
shaka.text.TtmlTextParser.parseCue_=function(a,b,c,d,e,f,g,h,k,l,m){var n=a.parentNode;if(a.nodeType==Node.COMMENT_NODE)return null;if(a.nodeType==Node.TEXT_NODE){if(!m)return null;var p=document.createElement("span");p.textContent=a.textContent}else goog.asserts.assert(a.nodeType==Node.ELEMENT_NODE,"nodeType should be ELEMENT_NODE!"),p=a;goog.asserts.assert(p,"cueElement should be non-null!");for(var q=null,r=$jscomp.makeIterator(shaka.text.TtmlTextParser.smpteNsList_),t=r.next();!t.done&&!(q=shaka.text.TtmlTextParser.getElementsFromCollection_(p,
|
|
2256
|
-
"backgroundImage",d,"#",t.value)[0]);t=r.next());if("p"==a.nodeName||q)m=!0;a=m;r="default"==(p.getAttribute("xml:space")||(h?"default":"preserve"));t=Array.from(p.childNodes).every(function(
|
|
2257
|
-
if(!(v||
|
|
2258
|
-
u=Math.max(u,c.endTime);if("br"==p.tagName)return e=new shaka.text.Cue(
|
|
2332
|
+
"backgroundImage",d,"#",t.value)[0]);t=r.next());if("p"==a.nodeName||q)m=!0;a=m;r="default"==(p.getAttribute("xml:space")||(h?"default":"preserve"));t=Array.from(p.childNodes).every(function(y){return y.nodeType==Node.TEXT_NODE});h=[];if(!t)for(var v=$jscomp.makeIterator(p.childNodes),u=v.next();!u.done;u=v.next())(u=shaka.text.TtmlTextParser.parseCue_(u.value,b,c,d,e,f,g,r,k,p,m))&&h.push(u);d=null!=l;v=/\S/.test(p.textContent);var w=p.hasAttribute("begin")||p.hasAttribute("end")||p.hasAttribute("dur");
|
|
2333
|
+
if(!(w||v||"br"==p.tagName||0!=h.length||d&&!r))return null;u=shaka.text.TtmlTextParser.parseTime_(p,c);v=u.start;for(u=u.end;n&&n.nodeType==Node.ELEMENT_NODE&&"tt"!=n.tagName;)u=shaka.text.TtmlTextParser.resolveTime_(n,c,v,u),v=u.start,u=u.end,n=n.parentNode;null==v&&(v=0);v+=b.periodStart;u=null==u?Infinity:u+b.periodStart;v=Math.max(v,b.segmentStart);u=Math.min(u,b.segmentEnd);if(!w&&0<h.length)for(v=Infinity,u=0,b=$jscomp.makeIterator(h),c=b.next();!c.done;c=b.next())c=c.value,v=Math.min(v,c.startTime),
|
|
2334
|
+
u=Math.max(u,c.endTime);if("br"==p.tagName)return e=new shaka.text.Cue(v,u,""),e.lineBreak=!0,e;b="";t&&(b=p.textContent,r&&(b=b.trim(),b=b.replace(/\s+/g," ")));b=new shaka.text.Cue(v,u,b);b.nestedCues=h;m||(b.isContainer=!0);k&&(b.cellResolution=k);k=shaka.text.TtmlTextParser.getElementsFromCollection_(p,"region",f,"")[0];if(p.hasAttribute("region")&&k&&k.getAttribute("xml:id")){var x=k.getAttribute("xml:id");b.region=g.filter(function(y){return y.id==x})[0]}g=k;l&&d&&!p.getAttribute("region")&&
|
|
2259
2335
|
!p.getAttribute("style")&&(g=shaka.text.TtmlTextParser.getElementsFromCollection_(l,"region",f,"")[0]);shaka.text.TtmlTextParser.addStyle_(b,p,g,q,e,a,0==h.length);return b};
|
|
2260
2336
|
shaka.text.TtmlTextParser.parseCueRegion_=function(a,b,c){var d=shaka.text.TtmlTextParser,e=new shaka.text.CueRegion,f=a.getAttribute("xml:id");if(!f)return shaka.log.warning("TtmlTextParser parser encountered a region with no id. Region will be ignored."),null;e.id=f;f=null;c&&(f=d.percentValues_.exec(c)||d.pixelValues_.exec(c));c=f?Number(f[1]):null;f=f?Number(f[2]):null;var g,h;if(g=d.getStyleAttributeFromRegion_(a,b,"extent"))g=(h=d.percentValues_.exec(g))||d.pixelValues_.exec(g),null!=g&&(e.width=
|
|
2261
2337
|
Number(g[1]),e.height=Number(g[2]),h||(null!=c&&(e.width=100*e.width/c),null!=f&&(e.height=100*e.height/f)),e.widthUnits=h||null!=c?shaka.text.CueRegion.units.PERCENTAGE:shaka.text.CueRegion.units.PX,e.heightUnits=h||null!=f?shaka.text.CueRegion.units.PERCENTAGE:shaka.text.CueRegion.units.PX);if(a=d.getStyleAttributeFromRegion_(a,b,"origin"))g=(h=d.percentValues_.exec(a))||d.pixelValues_.exec(a),null!=g&&(e.viewportAnchorX=Number(g[1]),e.viewportAnchorY=Number(g[2]),h||(null!=f&&(e.viewportAnchorY=
|
|
@@ -2265,7 +2341,8 @@ shaka.text.TtmlTextParser.addStyle_=function(a,b,c,d,e,f,g){var h=shaka.text.Ttm
|
|
|
2265
2341
|
if(g=h.getStyleAttribute_(b,c,e,"color",f))a.color=g;if(g=h.getStyleAttribute_(b,c,e,"backgroundColor",f))a.backgroundColor=g;if(g=h.getStyleAttribute_(b,c,e,"border",f))a.border=g;if(g=h.getStyleAttribute_(b,c,e,"fontFamily",f))switch(g){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="sans-serif";break;case "monospaceSansSerif":a.fontFamily=
|
|
2266
2342
|
"Consolas,monospace";break;case "proportionalSerif":a.fontFamily="serif";break;default:a.fontFamily=g}(g=h.getStyleAttribute_(b,c,e,"fontWeight",f))&&"bold"==g&&(a.fontWeight=k.fontWeight.BOLD);g=h.getStyleAttribute_(b,c,e,"wrapOption",f);a.wrapLine=g&&"noWrap"==g?!1:!0;(g=h.getStyleAttribute_(b,c,e,"lineHeight",f))&&g.match(h.unitValues_)&&(a.lineHeight=g);(g=h.getStyleAttribute_(b,c,e,"fontSize",f))&&(g.match(h.unitValues_)||g.match(h.percentValue_))&&(a.fontSize=g);if(g=h.getStyleAttribute_(b,
|
|
2267
2343
|
c,e,"fontStyle",f))goog.asserts.assert(g.toUpperCase()in k.fontStyle,g.toUpperCase()+" Should be in Cue.fontStyle values!"),a.fontStyle=k.fontStyle[g.toUpperCase()];d&&(k=d.getAttribute("imageType")||d.getAttribute("imagetype"),g=d.getAttribute("encoding"),d=d.textContent.trim(),"PNG"==k&&"Base64"==g&&d&&(a.backgroundImage="data:image/png;base64,"+d));if(d=h.getStyleAttribute_(b,c,e,"textOutline",f))d=d.split(" "),d[0].match(h.unitValues_)?a.textStrokeColor=a.color:(a.textStrokeColor=d[0],d.shift()),
|
|
2268
|
-
d[0]&&d[0].match(h.unitValues_)?a.textStrokeWidth=d[0]:a.textStrokeColor="";(d=h.getStyleAttribute_(b,c,e,"letterSpacing",f))&&d.match(h.unitValues_)&&(a.letterSpacing=d);(d=h.getStyleAttribute_(b,c,e,"linePadding",f))&&d.match(h.unitValues_)&&(a.linePadding=d);if(
|
|
2344
|
+
d[0]&&d[0].match(h.unitValues_)?a.textStrokeWidth=d[0]:a.textStrokeColor="";(d=h.getStyleAttribute_(b,c,e,"letterSpacing",f))&&d.match(h.unitValues_)&&(a.letterSpacing=d);(d=h.getStyleAttribute_(b,c,e,"linePadding",f))&&d.match(h.unitValues_)&&(a.linePadding=d);if(d=h.getStyleAttribute_(b,c,e,"opacity",f))a.opacity=parseFloat(d);(d=h.getStyleAttributeFromRegion_(c,e,"textDecoration"))&&h.addTextDecoration_(a,d);(d=h.getStyleAttributeFromElement_(b,e,"textDecoration"))&&h.addTextDecoration_(a,d);if(d=
|
|
2345
|
+
h.getStyleAttribute_(b,c,e,"textCombine",f))a.textCombineUpright=d;switch(h.getStyleAttribute_(b,c,e,"ruby",f)){case "container":a.rubyTag="ruby";break;case "text":a.rubyTag="rt"}};
|
|
2269
2346
|
shaka.text.TtmlTextParser.addTextDecoration_=function(a,b){var c=shaka.text.Cue;b=$jscomp.makeIterator(b.split(" "));for(var d=b.next();!d.done;d=b.next())switch(d.value){case "underline":a.textDecoration.includes(c.textDecoration.UNDERLINE)||a.textDecoration.push(c.textDecoration.UNDERLINE);break;case "noUnderline":a.textDecoration.includes(c.textDecoration.UNDERLINE)&&shaka.util.ArrayUtils.remove(a.textDecoration,c.textDecoration.UNDERLINE);break;case "lineThrough":a.textDecoration.includes(c.textDecoration.LINE_THROUGH)||
|
|
2270
2347
|
a.textDecoration.push(c.textDecoration.LINE_THROUGH);break;case "noLineThrough":a.textDecoration.includes(c.textDecoration.LINE_THROUGH)&&shaka.util.ArrayUtils.remove(a.textDecoration,c.textDecoration.LINE_THROUGH);break;case "overline":a.textDecoration.includes(c.textDecoration.OVERLINE)||a.textDecoration.push(c.textDecoration.OVERLINE);break;case "noOverline":a.textDecoration.includes(c.textDecoration.OVERLINE)&&shaka.util.ArrayUtils.remove(a.textDecoration,c.textDecoration.OVERLINE)}};
|
|
2271
2348
|
shaka.text.TtmlTextParser.getStyleAttribute_=function(a,b,c,d,e){e=void 0===e?!0:e;var f=shaka.text.TtmlTextParser;return(a=f.getStyleAttributeFromElement_(a,c,d))?a:e?f.getStyleAttributeFromRegion_(b,c,d):null};shaka.text.TtmlTextParser.getStyleAttributeFromRegion_=function(a,b,c){if(!a)return null;var d=shaka.util.XmlUtils.getAttributeNSList(a,shaka.text.TtmlTextParser.styleNs_,c);return d?d:shaka.text.TtmlTextParser.getInheritedStyleAttribute_(a,b,c)};
|
|
@@ -2295,19 +2372,20 @@ shaka.text.VttTextParser.addDefaultTextColor_=function(a){for(var b=$jscomp.make
|
|
|
2295
2372
|
0,""),e.backgroundColor=d,a.set("."+c,e)};shaka.text.VttTextParser.parseRegion_=function(a){var b=shaka.text.VttTextParser;a=new shaka.util.TextParser(a);var c=new shaka.text.CueRegion;a.readWord();a.skipWhitespace();for(var d=a.readWord();d;)b.parseRegionSetting_(c,d)||shaka.log.warning("VTT parser encountered an invalid VTTRegion setting: ",d," The setting will be ignored."),a.skipWhitespace(),d=a.readWord();return c};
|
|
2296
2373
|
shaka.text.VttTextParser.parseStyle_=function(a,b){if((1!=a.length||a[0])&&!/^NOTE($|[ \t])/.test(a[0])&&"STYLE"==a[0]){for(var c=[],d=-1,e=1;e<a.length;e++)a[e].includes("::cue")&&(c.push([]),d=c.length-1),-1!=d&&(c[d].push(a[e]),a[e].includes("}")&&(d=-1));a=$jscomp.makeIterator(c);for(c=a.next();!c.done;c=a.next()){e=c.value;c="global";(d=e[0].match(/\((.*)\)/))&&(c=d.pop());d=e.slice(1,-1);e[0].includes("}")&&(e=/\{(.*?)\}/.exec(e[0]))&&(d=e[1].split(";"));(e=b.get(c))||(e=new shaka.text.Cue(0,
|
|
2297
2374
|
0,""));for(var f=!1,g=0;g<d.length;g++){var h=/^\s*([^:]+):\s*(.*)/.exec(d[g]);if(h){var k=h[1].trim(),l=h[2].trim().replace(";","");switch(k){case "background-color":case "background":f=!0;e.backgroundColor=l;break;case "color":f=!0;e.color=l;break;case "font-family":f=!0;e.fontFamily=l;break;case "font-size":f=!0;e.fontSize=l;break;case "font-weight":if(700<=parseInt(l,10)||"bold"==l)f=!0,e.fontWeight=shaka.text.Cue.fontWeight.BOLD;break;case "font-style":switch(l){case "normal":f=!0;e.fontStyle=
|
|
2298
|
-
shaka.text.Cue.fontStyle.NORMAL;break;case "italic":f=!0;e.fontStyle=shaka.text.Cue.fontStyle.ITALIC;break;case "oblique":f=!0,e.fontStyle=shaka.text.Cue.fontStyle.OBLIQUE}break;case "opacity":f=!0;e.opacity=parseFloat(l);break;case "text-shadow":f=!0;e.textShadow=l;break;case "white-space":f=!0;e.wrapLine="noWrap"!=l;break;default:shaka.log.warning("VTT parser encountered an unsupported style: ",h)}}}f&&b.set(c,e)}}};
|
|
2299
|
-
shaka.text.VttTextParser.parseCue_=function(a,b,c,d){var e=shaka.text.VttTextParser;if(1==a.length&&!a[0]||/^NOTE($|[ \t])/.test(a[0])||"STYLE"==a[0]||"REGION"==a[0])return null;var f=null;a[0].includes("--\x3e")||(f=a[0],a.splice(0,1));var g=new shaka.util.TextParser(a[0]),h=e.parseTime_(g),k=g.readRegex(/[ \t]+--\x3e[ \t]+/g),l=e.parseTime_(g);if(null==h||null==k||null==l)return shaka.log.alwaysWarn("Failed to parse VTT time code. Cue skipped:",f,a),null;h+=b;l+=b;
|
|
2300
|
-
d.has("global")?(
|
|
2301
|
-
shaka.text.VttTextParser.parseCueStyles=function(a,b,c){var d=shaka.text.VttTextParser;0===c.size&&d.addDefaultTextColor_(c);a=d.replaceColorPayload_(a);a=d.replaceKaraokeStylePayload_(a);a=d.replaceVoiceStylePayload_(a);var e=shaka.util.XmlUtils.parseXmlString("<span>"+a+"</span>","span");if(e){
|
|
2302
|
-
|
|
2375
|
+
shaka.text.Cue.fontStyle.NORMAL;break;case "italic":f=!0;e.fontStyle=shaka.text.Cue.fontStyle.ITALIC;break;case "oblique":f=!0,e.fontStyle=shaka.text.Cue.fontStyle.OBLIQUE}break;case "opacity":f=!0;e.opacity=parseFloat(l);break;case "text-combine-upright":f=!0;e.textCombineUpright=l;break;case "text-shadow":f=!0;e.textShadow=l;break;case "white-space":f=!0;e.wrapLine="noWrap"!=l;break;default:shaka.log.warning("VTT parser encountered an unsupported style: ",h)}}}f&&b.set(c,e)}}};
|
|
2376
|
+
shaka.text.VttTextParser.parseCue_=function(a,b,c,d){var e=shaka.text.VttTextParser;if(1==a.length&&!a[0]||/^NOTE($|[ \t])/.test(a[0])||"STYLE"==a[0]||"REGION"==a[0])return null;var f=null;a[0].includes("--\x3e")||(f=a[0],a.splice(0,1));var g=new shaka.util.TextParser(a[0]),h=e.parseTime_(g),k=g.readRegex(/[ \t]+--\x3e[ \t]+/g),l=e.parseTime_(g);if(null==h||null==k||null==l)return shaka.log.alwaysWarn("Failed to parse VTT time code. Cue skipped:",f,a),null;h+=b;l+=b;b=a.slice(1).join("\n").trim();
|
|
2377
|
+
d.has("global")?(a=d.get("global").clone(),a.startTime=h,a.endTime=l,a.payload=""):a=new shaka.text.Cue(h,l,"");e.parseCueStyles(b,a,d);g.skipWhitespace();for(d=g.readWord();d;)e.parseCueSetting(a,d,c)||shaka.log.warning("VTT parser encountered an invalid VTT setting: ",d," The setting will be ignored."),g.skipWhitespace(),d=g.readWord();null!=f&&(a.id=f);return a};
|
|
2378
|
+
shaka.text.VttTextParser.parseCueStyles=function(a,b,c){var d=shaka.text.VttTextParser;0===c.size&&d.addDefaultTextColor_(c);a=d.replaceColorPayload_(a);a=d.replaceKaraokeStylePayload_(a);a=d.replaceVoiceStylePayload_(a);var e=shaka.util.XmlUtils.parseXmlString("<span>"+a+"</span>","span");if(e){e=e.childNodes;if(1==e.length){var f=e[0];if(f.nodeType==Node.TEXT_NODE||f.nodeType==Node.CDATA_SECTION_NODE){b.payload=d.htmlUnescape_(a);return}}a=$jscomp.makeIterator(e);for(e=a.next();!e.done;e=a.next())d.generateCueFromElement_(e.value,
|
|
2379
|
+
b,c)}else shaka.log.warning("The cue's markup could not be parsed: ",a),b.payload=d.htmlUnescape_(a)};
|
|
2303
2380
|
shaka.text.VttTextParser.replaceVoiceStylePayload_=function(a){for(var b=[],c=-1,d="",e=!1,f=0;f<a.length;f++)if("/"===a[f]){var g=a.indexOf(">",f);if(-1===g)return a;if((g=a.substring(f+1,g))&&"v"==g){e=!0;var h=null;b.length&&(h=b[b.length-1]);if(h){if(h===g)d+="/"+g+">";else{if(!h.startsWith("v")){d+=a[f];continue}d+="/"+h+">"}f+=g.length+1}else d+=a[f]}else d+=a[f]}else"<"===a[f]?(c=f+1,"v"!=a[c]&&(c=-1)):">"===a[f]&&0<c&&(b.push(a.substr(c,f-c)),c=-1),d+=a[f];a=$jscomp.makeIterator(b);for(b=
|
|
2304
2381
|
a.next();!b.done;b=a.next())b=b.value,c=b.replace(" ",".voice-"),d=d.replace("<"+b+">","<"+c+">"),d=d.replace("</"+b+">","</"+c+">"),e||(d+="</"+c+">");return d};
|
|
2305
2382
|
shaka.text.VttTextParser.replaceKaraokeStylePayload_=function(a){for(var b=[],c=-1,d=0;d<a.length;d++)"<"===a[d]?c=d+1:">"===a[d]&&0<c&&(c=a.substr(c,d-c),c.match(shaka.text.VttTextParser.timeFormat_)&&b.push(c),c=-1);b=$jscomp.makeIterator(b);for(d=b.next();!d.done;d=b.next())d=d.value,a=a.replace("<"+d+">",'<div time="'+d+'">'),a+="</div>";return a};
|
|
2306
2383
|
shaka.text.VttTextParser.replaceColorPayload_=function(a){for(var b=[],c=-1,d="",e=0;e<a.length;e++)if("/"===a[e]&&0<e&&"<"===a[e-1]){var f=a.indexOf(">",e);if(f<=e)return a;if((f=a.substring(e+1,f))&&"c"===f){var g=b.pop();g?g===f?(d+="/"+f+">",e+=f.length+1):g.startsWith("c.")?(e+=f.length+1,d+="/"+g+">"):d+=a[e]:d+=a[e]}else d+=a[e]}else"<"===a[e]?(c=e+1,"c"!=a[c]&&(c=-1)):">"===a[e]&&0<c&&(b.push(a.substr(c,e-c)),c=-1),d+=a[e];return d};
|
|
2307
|
-
shaka.text.VttTextParser.getOrDefault_=function(a,b){return a&&0<a.length?a:b};
|
|
2308
|
-
shaka.text.VttTextParser.
|
|
2309
|
-
|
|
2310
|
-
|
|
2384
|
+
shaka.text.VttTextParser.getOrDefault_=function(a,b){return a&&0<a.length?a:b};
|
|
2385
|
+
shaka.text.VttTextParser.mergeStyle_=function(a,b){if(b){var c=shaka.text.VttTextParser;a.backgroundColor=c.getOrDefault_(b.backgroundColor,a.backgroundColor);a.color=c.getOrDefault_(b.color,a.color);a.fontFamily=c.getOrDefault_(b.fontFamily,a.fontFamily);a.fontSize=c.getOrDefault_(b.fontSize,a.fontSize);a.fontWeight=b.fontWeight;a.fontStyle=b.fontStyle;a.opacity=b.opacity;a.rubyTag=b.rubyTag;a.textCombineUpright=b.textCombineUpright;a.textShadow=b.textShadow;a.wrapLine=b.wrapLine}};
|
|
2386
|
+
shaka.text.VttTextParser.generateCueFromElement_=function(a,b,c){var d=shaka.text.VttTextParser,e=b.clone();e.nestedCues=[];e.payload="";e.rubyTag="";if(a.nodeType===Node.ELEMENT_NODE&&a.nodeName){var f=shaka.text.Cue.fontWeight.BOLD,g=shaka.text.Cue.fontStyle.ITALIC,h=shaka.text.Cue.textDecoration.UNDERLINE,k=a.nodeName.split(/(?=[ .])+/g);k=$jscomp.makeIterator(k);for(var l=k.next();!l.done;l=k.next()){var m=l=l.value;if(m.startsWith(".voice-")){var n=m.split("-").pop();m='v[voice="'+n+'"]';c.has(m)||
|
|
2387
|
+
(m="v[voice="+n+"]")}c.has(m)&&d.mergeStyle_(e,c.get(m));switch(l){case "br":d=shaka.text.Cue.lineBreak(e.startTime,e.endTime);b.nestedCues.push(d);return;case "b":e.fontWeight=f;break;case "i":e.fontStyle=g;break;case "u":e.textDecoration.push(h);break;case "font":if(l=a.getAttribute("color"))e.color=l;break;case "div":l=a.getAttribute("time");if(!l)break;l=new shaka.util.TextParser(l);if(l=shaka.text.VttTextParser.parseTime_(l))e.startTime=l;break;case "ruby":case "rp":case "rt":e.rubyTag=l}}}f=
|
|
2388
|
+
a.childNodes;if(shaka.util.XmlUtils.isText(a)||1==f.length&&shaka.util.XmlUtils.isText(f[0]))for(c=a.textContent.split("\n"),a=!0,c=$jscomp.makeIterator(c),f=c.next();!f.done;f=c.next())f=f.value,a||(a=shaka.text.Cue.lineBreak(e.startTime,e.endTime),b.nestedCues.push(a)),0<f.length&&(a=e.clone(),a.payload=d.htmlUnescape_(f),b.nestedCues.push(a)),a=!1;else for(b.nestedCues.push(e),b=$jscomp.makeIterator(f),a=b.next();!a.done;a=b.next())d.generateCueFromElement_(a.value,e,c)};
|
|
2311
2389
|
shaka.text.VttTextParser.parseCueSetting=function(a,b,c){var d=shaka.text.VttTextParser,e;if(e=/^align:(start|middle|center|end|left|right)$/.exec(b))d.setTextAlign_(a,e[1]);else if(e=/^vertical:(lr|rl)$/.exec(b))d.setVerticalWritingMode_(a,e[1]);else if(e=/^size:([\d.]+)%$/.exec(b))a.size=Number(e[1]);else if(e=/^position:([\d.]+)%(?:,(line-left|line-right|middle|center|start|end|auto))?$/.exec(b))a.position=Number(e[1]),e[2]&&d.setPositionAlign_(a,e[2]);else if(e=/^region:(.*)$/.exec(b)){if(b=d.getRegionById_(c,
|
|
2312
2390
|
e[1]))a.region=b}else return d.parsedLineValueAndInterpretation_(a,b);return!0};shaka.text.VttTextParser.getRegionById_=function(a,b){a=a.filter(function(c){return c.id==b});if(!a.length)return shaka.log.warning("VTT parser could not find a region with id: ",b," The region will be ignored."),null;goog.asserts.assert(1==a.length,"VTTRegion ids should be unique!");return a[0]};
|
|
2313
2391
|
shaka.text.VttTextParser.parseRegionSetting_=function(a,b){var c;if(c=/^id=(.*)$/.exec(b))a.id=c[1];else if(c=/^width=(\d{1,2}|100)%$/.exec(b))a.width=Number(c[1]);else if(c=/^lines=(\d+)$/.exec(b))a.height=Number(c[1]),a.heightUnits=shaka.text.CueRegion.units.LINES;else if(c=/^regionanchor=(\d{1,2}|100)%,(\d{1,2}|100)%$/.exec(b))a.regionAnchorX=Number(c[1]),a.regionAnchorY=Number(c[2]);else if(c=/^viewportanchor=(\d{1,2}|100)%,(\d{1,2}|100)%$/.exec(b))a.viewportAnchorX=Number(c[1]),a.viewportAnchorY=
|
|
@@ -2323,7 +2401,7 @@ shaka.util.Error.Category.TEXT,shaka.util.Error.Code.INVALID_MP4_VTT);if(!d)thro
|
|
|
2323
2401
|
shaka.text.Mp4VttParser.prototype.parseMedia=function(a,b){if(!a.length)return[];if(!this.timescale_)throw shaka.log.error("No init segment for MP4+VTT!"),new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.TEXT,shaka.util.Error.Code.INVALID_MP4_VTT);var c=shaka.util.Mp4Parser,d=0,e=[],f,g=[],h=!1,k=!1,l=!1,m=null;(new c).box("moof",c.children).box("traf",c.children).fullBox("tfdt",function(x){h=!0;goog.asserts.assert(0==x.version||1==x.version,"TFDT version can only be 0 or 1");
|
|
2324
2402
|
d=shaka.util.Mp4BoxParsers.parseTFDTInaccurate(x.reader,x.version).baseMediaDecodeTime}).fullBox("tfhd",function(x){goog.asserts.assert(null!=x.flags,"A TFHD box should have a valid flags value");m=shaka.util.Mp4BoxParsers.parseTFHD(x.reader,x.flags).defaultSampleDuration}).fullBox("trun",function(x){k=!0;goog.asserts.assert(null!=x.version,"A TRUN box should have a valid version value");goog.asserts.assert(null!=x.flags,"A TRUN box should have a valid flags value");e=shaka.util.Mp4BoxParsers.parseTRUN(x.reader,
|
|
2325
2403
|
x.version,x.flags).sampleData}).box("mdat",c.allData(function(x){goog.asserts.assert(!l,"VTT cues in mp4 with multiple MDAT are not currently supported");l=!0;f=x})).parse(a,!1);if(!l&&!h&&!k)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.TEXT,shaka.util.Error.Code.INVALID_MP4_VTT);a=d;c=new shaka.util.DataViewReader(f,shaka.util.DataViewReader.Endianness.BIG_ENDIAN);for(var n=$jscomp.makeIterator(e),p=n.next();!p.done;p=n.next()){p=p.value;var q=p.sampleDuration||
|
|
2326
|
-
m,r=p.sampleCompositionTimeOffset?d+p.sampleCompositionTimeOffset:a;a=r+(q||0);var t=0;do{var
|
|
2404
|
+
m,r=p.sampleCompositionTimeOffset?d+p.sampleCompositionTimeOffset:a;a=r+(q||0);var t=0;do{var v=c.readUint32();t+=v;var u=c.readUint32();u=shaka.util.Mp4Parser.typeToString(u);var w=null;"vttc"==u?8<v&&(w=c.readBytes(v-8)):("vtte"!=u&&shaka.log.error("Unknown box "+u+"! Skipping!"),c.skip(v-8));q?w&&(goog.asserts.assert(null!=this.timescale_,"Timescale should not be null!"),v=shaka.text.Mp4VttParser.parseVTTC_(w,b.periodStart+r/this.timescale_,b.periodStart+a/this.timescale_),g.push(v)):shaka.log.error("WVTT sample duration unknown, and no default found!");
|
|
2327
2405
|
goog.asserts.assert(!p.sampleSize||t<=p.sampleSize,"The samples do not fit evenly into the sample sizes given in the TRUN box!")}while(p.sampleSize&&t<p.sampleSize)}goog.asserts.assert(!c.hasMoreData(),"MDAT which contain VTT cues and non-VTT data are not currently supported!");return g.filter(shaka.util.Functional.isNotNull)};
|
|
2328
2406
|
shaka.text.Mp4VttParser.parseVTTC_=function(a,b,c){var d,e,f;(new shaka.util.Mp4Parser).box("payl",shaka.util.Mp4Parser.allData(function(g){d=shaka.util.StringUtils.fromUTF8(g)})).box("iden",shaka.util.Mp4Parser.allData(function(g){e=shaka.util.StringUtils.fromUTF8(g)})).box("sttg",shaka.util.Mp4Parser.allData(function(g){f=shaka.util.StringUtils.fromUTF8(g)})).parse(a);return d?shaka.text.Mp4VttParser.assembleCue_(d,e,f,b,c):null};
|
|
2329
2407
|
shaka.text.Mp4VttParser.assembleCue_=function(a,b,c,d,e){d=new shaka.text.Cue(d,e,"");e=new Map;shaka.text.VttTextParser.parseCueStyles(a,d,e);b&&(d.id=b);if(c)for(a=new shaka.util.TextParser(c),b=a.readWord();b;)shaka.text.VttTextParser.parseCueSetting(d,b,[])||shaka.log.warning("VTT parser encountered an invalid VTT setting: ",b," The setting will be ignored."),a.skipWhitespace(),b=a.readWord();return d};goog.exportSymbol("shaka.text.Mp4VttParser",shaka.text.Mp4VttParser);
|
|
@@ -2338,8 +2416,8 @@ shaka.text.SrtTextParser.convertSrtCue_=function(a){a=a.split(/\n/);a[0].match(/
|
|
|
2338
2416
|
goog.exportProperty(shaka.text.SrtTextParser.prototype,"parseMedia",shaka.text.SrtTextParser.prototype.parseMedia);goog.exportProperty(shaka.text.SrtTextParser.prototype,"setManifestType",shaka.text.SrtTextParser.prototype.setManifestType);goog.exportProperty(shaka.text.SrtTextParser.prototype,"setSequenceMode",shaka.text.SrtTextParser.prototype.setSequenceMode);goog.exportProperty(shaka.text.SrtTextParser.prototype,"parseInit",shaka.text.SrtTextParser.prototype.parseInit);
|
|
2339
2417
|
shaka.text.TextEngine.registerParser("text/srt",function(){return new shaka.text.SrtTextParser});shaka.text.SsaTextParser=function(){};shaka.text.SsaTextParser.prototype.parseInit=function(a){goog.asserts.assert(!1,"SSA does not have init segments")};shaka.text.SsaTextParser.prototype.setSequenceMode=function(a){};shaka.text.SsaTextParser.prototype.setManifestType=function(a){};
|
|
2340
2418
|
shaka.text.SsaTextParser.prototype.parseMedia=function(a,b){b=shaka.text.SsaTextParser;var c="",d="";a=shaka.util.StringUtils.fromUTF8(a).split(/\r?\n\s*\r?\n/);a=$jscomp.makeIterator(a);for(var e=a.next();!e.done;e=a.next()){e=e.value;var f=b.ssaContent_.exec(e);if(f){var g=f[1];f=f[2];if("V4 Styles"==g||"V4+ Styles"==g){c=f;continue}if("Events"==g){d=f;continue}}shaka.log.warning("SsaTextParser parser encountered an unknown part.",e)}a=[];e=null;c=c.split(/\r?\n/);c=$jscomp.makeIterator(c);for(f=
|
|
2341
|
-
c.next();!f.done;f=c.next())if(g=f.value,!/^\s*;/.test(g)&&(f=b.lineParts_.exec(g)))if(g=f[1].trim(),f=f[2].trim(),"Format"==g)e=f.split(b.valuesFormat_);else if("Style"==g){g=f.split(b.valuesFormat_);f={};for(var h=0;h<e.length&&h<g.length;h++)f[e[h]]=g[h];a.push(f)}e=[];c=null;g=d.split(/\r?\n/);d={};g=$jscomp.makeIterator(g);for(f=g.next();!f.done;d={$jscomp$loop$prop$styleName$
|
|
2342
|
-
h=h[2].trim(),"Format"==f)c=h.split(b.valuesFormat_);else if("Dialogue"==f){h=h.split(b.valuesFormat_);f={};for(var k=0;k<c.length&&k<h.length;k++)f[c[k]]=h[k];k=b.parseTime_(f.Start);var l=b.parseTime_(f.End);h=h.slice(c.length-1).join(",").replace(/\\N/g,"\n").replace(/\{[^}]+\}/g,"");h=new shaka.text.Cue(k,l,h);d.$jscomp$loop$prop$styleName$
|
|
2419
|
+
c.next();!f.done;f=c.next())if(g=f.value,!/^\s*;/.test(g)&&(f=b.lineParts_.exec(g)))if(g=f[1].trim(),f=f[2].trim(),"Format"==g)e=f.split(b.valuesFormat_);else if("Style"==g){g=f.split(b.valuesFormat_);f={};for(var h=0;h<e.length&&h<g.length;h++)f[e[h]]=g[h];a.push(f)}e=[];c=null;g=d.split(/\r?\n/);d={};g=$jscomp.makeIterator(g);for(f=g.next();!f.done;d={$jscomp$loop$prop$styleName$801:d.$jscomp$loop$prop$styleName$801},f=g.next())if(f=f.value,!/^\s*;/.test(f)&&(h=b.lineParts_.exec(f)))if(f=h[1].trim(),
|
|
2420
|
+
h=h[2].trim(),"Format"==f)c=h.split(b.valuesFormat_);else if("Dialogue"==f){h=h.split(b.valuesFormat_);f={};for(var k=0;k<c.length&&k<h.length;k++)f[c[k]]=h[k];k=b.parseTime_(f.Start);var l=b.parseTime_(f.End);h=h.slice(c.length-1).join(",").replace(/\\N/g,"\n").replace(/\{[^}]+\}/g,"");h=new shaka.text.Cue(k,l,h);d.$jscomp$loop$prop$styleName$801=f.Style;(f=a.find(function(m){return function(n){return n.Name==m.$jscomp$loop$prop$styleName$801}}(d)))&&b.addStyle_(h,f);e.push(h)}return e};
|
|
2343
2421
|
shaka.text.SsaTextParser.addStyle_=function(a,b){var c=shaka.text.Cue,d=shaka.text.SsaTextParser,e=b.Fontname;e&&(a.fontFamily=e);if(e=b.Fontsize)a.fontSize=e+"px";if(e=b.PrimaryColour)if(e=d.parseSsaColor_(e))a.color=e;if(e=b.BackColour)if(d=d.parseSsaColor_(e))a.backgroundColor=d;b.Bold&&(a.fontWeight=c.fontWeight.BOLD);b.Italic&&(a.fontStyle=c.fontStyle.ITALIC);b.Underline&&a.textDecoration.push(c.textDecoration.UNDERLINE);if(d=b.Spacing)a.letterSpacing=d+"px";if(d=b.Alignment)switch(parseInt(d,
|
|
2344
2422
|
10)){case 1:a.displayAlign=c.displayAlign.AFTER;a.textAlign=c.textAlign.START;break;case 2:a.displayAlign=c.displayAlign.AFTER;a.textAlign=c.textAlign.CENTER;break;case 3:a.displayAlign=c.displayAlign.AFTER;a.textAlign=c.textAlign.END;break;case 5:a.displayAlign=c.displayAlign.BEFORE;a.textAlign=c.textAlign.START;break;case 6:a.displayAlign=c.displayAlign.BEFORE;a.textAlign=c.textAlign.CENTER;break;case 7:a.displayAlign=c.displayAlign.BEFORE;a.textAlign=c.textAlign.END;break;case 9:a.displayAlign=
|
|
2345
2423
|
c.displayAlign.CENTER;a.textAlign=c.textAlign.START;break;case 10:a.displayAlign=c.displayAlign.CENTER;a.textAlign=c.textAlign.CENTER;break;case 11:a.displayAlign=c.displayAlign.CENTER,a.textAlign=c.textAlign.END}if(b=b.AlphaLevel)a.opacity=parseFloat(b)};shaka.text.SsaTextParser.parseSsaColor_=function(a){a=parseInt(a.replace("&H",""),16);return 0<=a?"rgba("+(a&255)+","+(a>>8&255)+","+(a>>16&255)+","+(a>>24&255^255)/255+")":null};
|
|
@@ -2382,7 +2460,29 @@ d.readBoolean())){e=3!==e?8:12;for(var f=0;f<e;f++)d.readBoolean()&&(6>f?d.skipS
|
|
|
2382
2460
|
videoConfig:a}};
|
|
2383
2461
|
shaka.transmuxer.H264.parseFrame=function(a){var b=shaka.transmuxer.H264,c=!1,d=new Uint8Array([]),e=a.find(function(l){return l.type==b.NALU_TYPE_SPS_}),f=!1;a=$jscomp.makeIterator(a);for(var g=a.next();!g.done;g=a.next()){g=g.value;var h=!1;switch(g.type){case b.NALU_TYPE_NDR_:h=f=!0;var k=g.data;e&&4<k.length&&(k=(new shaka.util.ExpGolomb(k)).readSliceType(),2===k||4===k||7===k||9===k)&&(c=!0);break;case b.NALU_TYPE_IDR_:c=h=f=!0;break;case b.NALU_TYPE_SEI_:h=!0;break;case b.NALU_TYPE_SPS_:h=!0;
|
|
2384
2462
|
break;case b.NALU_TYPE_PPS_:h=!0;break;case b.NALU_TYPE_AUD_:f=h=!0;break;case b.NALU_TYPE_FILLER_DATA_:h=!0;break;default:h=!1}f&&h&&(h=g.fullData.byteLength,k=new Uint8Array(4),k[0]=h>>24&255,k[1]=h>>16&255,k[2]=h>>8&255,k[3]=h&255,d=shaka.util.Uint8ArrayUtils.concat(d,k,g.fullData))}return d.byteLength?{data:d,isKeyframe:c}:null};shaka.transmuxer.H264.NALU_TYPE_NDR_=1;shaka.transmuxer.H264.NALU_TYPE_IDR_=5;shaka.transmuxer.H264.NALU_TYPE_SEI_=6;shaka.transmuxer.H264.NALU_TYPE_SPS_=7;
|
|
2385
|
-
shaka.transmuxer.H264.NALU_TYPE_PPS_=8;shaka.transmuxer.H264.NALU_TYPE_AUD_=9;shaka.transmuxer.H264.NALU_TYPE_FILLER_DATA_=12;shaka.transmuxer.H264.PROFILES_WITH_OPTIONAL_SPS_DATA_=[100,110,122,244,44,83,86,118,128,138,139,134];shaka.transmuxer.
|
|
2463
|
+
shaka.transmuxer.H264.NALU_TYPE_PPS_=8;shaka.transmuxer.H264.NALU_TYPE_AUD_=9;shaka.transmuxer.H264.NALU_TYPE_FILLER_DATA_=12;shaka.transmuxer.H264.PROFILES_WITH_OPTIONAL_SPS_DATA_=[100,110,122,244,44,83,86,118,128,138,139,134];shaka.transmuxer.H265=function(){};
|
|
2464
|
+
shaka.transmuxer.H265.parseInfo=function(a){var b=shaka.transmuxer.H265;if(!a.length)return null;var c=a.find(function(h){return h.type==b.NALU_TYPE_VPS_}),d=a.find(function(h){return h.type==b.NALU_TYPE_SPS_}),e=a.find(function(h){return h.type==b.NALU_TYPE_PPS_});if(!c||!d||!e)return null;var f=b.parseVPS_(c.fullData);a=b.parseSPS_(d.fullData);var g=b.parsePPS_(e.fullData);c=b.getVideoConfiguration_(c.fullData,d.fullData,e.fullData,{numTemporalLayers:f.numTemporalLayers,temporalIdNested:f.temporalIdNested,
|
|
2465
|
+
generalProfileSpace:a.generalProfileSpace,generalTierFlag:a.generalTierFlag,generalLevelIdc:a.generalLevelIdc,generalProfileIdc:a.generalProfileIdc,generalProfileCompatibilityFlags1:a.generalProfileCompatibilityFlags1,generalProfileCompatibilityFlags2:a.generalProfileCompatibilityFlags2,generalProfileCompatibilityFlags3:a.generalProfileCompatibilityFlags3,generalProfileCompatibilityFlags4:a.generalProfileCompatibilityFlags4,generalConstraintIndicatorFlags1:a.generalConstraintIndicatorFlags1,generalConstraintIndicatorFlags2:a.generalConstraintIndicatorFlags2,
|
|
2466
|
+
generalConstraintIndicatorFlags3:a.generalConstraintIndicatorFlags3,generalConstraintIndicatorFlags4:a.generalConstraintIndicatorFlags4,generalConstraintIndicatorFlags5:a.generalConstraintIndicatorFlags5,generalConstraintIndicatorFlags6:a.generalConstraintIndicatorFlags6,constantFrameRate:a.constantFrameRate,minSpatialSegmentationIdc:a.minSpatialSegmentationIdc,chromaFormatIdc:a.chromaFormatIdc,bitDepthLumaMinus8:a.bitDepthLumaMinus8,bitDepthChromaMinus8:a.bitDepthChromaMinus8,parallelismType:g.parallelismType});
|
|
2467
|
+
return{height:a.height,width:a.width,videoConfig:c}};shaka.transmuxer.H265.parseVPS_=function(a){var b=new shaka.util.ExpGolomb(a,!0);b.readUnsignedByte();b.readUnsignedByte();b.readBits(4);b.readBits(2);b.readBits(6);a=b.readBits(3);b=b.readBoolean();return{numTemporalLayers:a+1,temporalIdNested:b}};
|
|
2468
|
+
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(),v=a.readUnsignedByte(),u=a.readUnsignedByte(),w=a.readUnsignedByte(),x=a.readUnsignedByte(),y=[],
|
|
2469
|
+
z=[],A=0;A<f;A++)y.push(a.readBoolean()),z.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),z[A]&&a.readUnsignedByte();a.readUnsignedExpGolomb();y=a.readUnsignedExpGolomb();3==y&&a.readBits(1);z=a.readUnsignedExpGolomb();A=a.readUnsignedExpGolomb();a.readBoolean()&&(b+=a.readUnsignedExpGolomb(),c+=a.readUnsignedExpGolomb(),d+=a.readUnsignedExpGolomb(),e+=a.readUnsignedExpGolomb());var C=a.readUnsignedExpGolomb(),D=a.readUnsignedExpGolomb(),G=a.readUnsignedExpGolomb();
|
|
2470
|
+
if(a.readBoolean())for(var B=0;B<=f;B++)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(B=0;4>B;B++)for(var E=0;E<(3===B?2:6);E++)if(a.readBoolean()){var F=Math.min(64,1<<4+(B<<1));1<B&&a.readExpGolomb();
|
|
2471
|
+
for(var H=0;H<F;H++)a.readExpGolomb()}else a.readUnsignedExpGolomb();a.readBoolean();a.readBoolean();a.readBoolean()&&(a.readUnsignedByte(),a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb(),a.readBoolean());B=a.readUnsignedExpGolomb();for(F=E=0;F<B;F++)if(H=!1,0!==F&&(H=a.readBoolean()),H){F===B&&a.readUnsignedExpGolomb();a.readBoolean();a.readUnsignedExpGolomb();for(var I=H=0;I<=E;I++){var J=a.readBoolean(),L=!1;J||(L=a.readBoolean());(J||L)&&H++}E=H}else{I=a.readUnsignedExpGolomb();H=a.readUnsignedExpGolomb();
|
|
2472
|
+
E=I+H;for(J=0;J<I;J++)a.readUnsignedExpGolomb(),a.readBoolean();for(I=0;I<H;I++)a.readUnsignedExpGolomb(),a.readBoolean()}if(a.readBoolean())for(B=a.readUnsignedExpGolomb(),E=0;E<B;E++){for(F=0;F<G+4;F++)a.readBits(1);a.readBits(1)}G=0;a.readBoolean();a.readBoolean();if(a.readBoolean()){a.readBoolean()&&255===a.readUnsignedByte()&&(a.readBits(16),a.readBits(16));a.readBoolean()&&a.readBoolean();a.readBoolean()&&(a.readBits(3),a.readBoolean(),a.readBoolean()&&(a.readUnsignedByte(),a.readUnsignedByte(),
|
|
2473
|
+
a.readUnsignedByte()));a.readBoolean()&&(a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb());a.readBoolean();a.readBoolean();a.readBoolean();if(B=a.readBoolean())a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb();if(a.readBoolean()&&(a.readBits(32),a.readBits(32),a.readBoolean()&&a.readUnsignedExpGolomb(),a.readBoolean())){F=!1;B=a.readBoolean();E=a.readBoolean();if(B||E){if(F=a.readBoolean())a.readUnsignedByte(),a.readBits(5),a.readBoolean(),
|
|
2474
|
+
a.readBits(5);a.readBits(4);a.readBits(4);F&&a.readBits(4);a.readBits(5);a.readBits(5);a.readBits(5)}for(H=0;H<=f;H++){J=!0;I=1;a.readBoolean()||(J=a.readBoolean());L=!1;J?a.readUnsignedExpGolomb():L=a.readBoolean();L||(I=a.readUnsignedExpGolomb()+1);if(B){for(J=0;J<I;J++)a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb(),F&&(a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb());a.readBoolean()}if(E){for(J=0;J<I;J++)a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb(),F&&(a.readUnsignedExpGolomb(),
|
|
2475
|
+
a.readUnsignedExpGolomb());a.readBoolean()}}}a.readBoolean()&&(a.readBoolean(),a.readBoolean(),a.readBoolean(),G=a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb(),a.readUnsignedExpGolomb())}return{generalLevelIdc:x,generalProfileSpace:g,generalTierFlag:h,generalProfileIdc:k,generalProfileCompatibilityFlags1:l,generalProfileCompatibilityFlags2:m,generalProfileCompatibilityFlags3:n,generalProfileCompatibilityFlags4:p,generalConstraintIndicatorFlags1:q,
|
|
2476
|
+
generalConstraintIndicatorFlags2:r,generalConstraintIndicatorFlags3:t,generalConstraintIndicatorFlags4:v,generalConstraintIndicatorFlags5:u,generalConstraintIndicatorFlags6:w,minSpatialSegmentationIdc:G,constantFrameRate:0,chromaFormatIdc:y,bitDepthLumaMinus8:C,bitDepthChromaMinus8:D,width:z-(b+c)*(1===y||2===y?2:1),height:A-(d+e)*(1===y?2:1)}};
|
|
2477
|
+
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();
|
|
2478
|
+
b=b.readBoolean();var c=1;b&&a?c=0:b?c=3:a&&(c=2);return{parallelismType:c}};
|
|
2479
|
+
shaka.transmuxer.H265.getVideoConfiguration_=function(a,b,c,d){var e=shaka.transmuxer.H265,f=new Uint8Array(23+(5+a.byteLength)+(5+b.byteLength)+(5+c.byteLength));f[0]=1;f[1]=(d.generalProfileSpace&3)<<6|(d.generalTierFlag?1:0)<<5|d.generalProfileIdc&31;f[2]=d.generalProfileCompatibilityFlags1;f[3]=d.generalProfileCompatibilityFlags2;f[4]=d.generalProfileCompatibilityFlags3;f[5]=d.generalProfileCompatibilityFlags4;f[6]=d.generalConstraintIndicatorFlags1;f[7]=d.generalConstraintIndicatorFlags2;f[8]=
|
|
2480
|
+
d.generalConstraintIndicatorFlags3;f[9]=d.generalConstraintIndicatorFlags4;f[10]=d.generalConstraintIndicatorFlags5;f[11]=d.generalConstraintIndicatorFlags6;f[12]=d.generalLevelIdc;f[13]=240|(d.minSpatialSegmentationIdc&3840)>>8;f[14]=d.minSpatialSegmentationIdc&255;f[15]=252|d.parallelismType&3;f[16]=252|d.chromaFormatIdc&3;f[17]=248|d.bitDepthLumaMinus8&7;f[18]=248|d.bitDepthChromaMinus8&7;f[19]=0;f[20]=0;f[21]=(d.constantFrameRate&3)<<6|(d.numTemporalLayers&7)<<3|(d.temporalIdNested?1:0)<<2|3;
|
|
2481
|
+
f[22]=3;f[23]=128|e.NALU_TYPE_VPS_;f[24]=0;f[25]=1;f[26]=(a.byteLength&65280)>>8;f[27]=(a.byteLength&255)>>0;f.set(a,28);f[23+(5+a.byteLength)+0]=128|e.NALU_TYPE_SPS_;f[23+(5+a.byteLength)+1]=0;f[23+(5+a.byteLength)+2]=1;f[23+(5+a.byteLength)+3]=(b.byteLength&65280)>>8;f[23+(5+a.byteLength)+4]=(b.byteLength&255)>>0;f.set(b,23+(5+a.byteLength)+5);f[23+(5+a.byteLength+5+b.byteLength)+0]=128|e.NALU_TYPE_PPS_;f[23+(5+a.byteLength+5+b.byteLength)+1]=0;f[23+(5+a.byteLength+5+b.byteLength)+2]=1;f[23+(5+
|
|
2482
|
+
a.byteLength+5+b.byteLength)+3]=(c.byteLength&65280)>>8;f[23+(5+a.byteLength+5+b.byteLength)+4]=(c.byteLength&255)>>0;f.set(c,23+(5+a.byteLength+5+b.byteLength)+5);return f};
|
|
2483
|
+
shaka.transmuxer.H265.parseFrame=function(a){var b=shaka.transmuxer.H265,c=!1,d=new Uint8Array([]),e=!1;a=$jscomp.makeIterator(a);for(var f=a.next();!f.done;f=a.next()){f=f.value;switch(f.type){case b.NALU_TYPE_TRAIL_N_:case b.NALU_TYPE_TRAIL_R_:var g=e=!0;break;case b.NALU_TYPE_IDR_W_RADL_:case b.NALU_TYPE_IDR_N_LP_:case b.NALU_TYPE_CRA_NUT_:c=g=e=!0;break;case b.NALU_TYPE_VPS_:g=!0;break;case b.NALU_TYPE_SPS_:g=!0;break;case b.NALU_TYPE_PPS_:g=!0;break;case b.NALU_TYPE_AUD_:e=g=!0;break;case b.NALU_TYPE_SEI_PREFIX_:case b.NALU_TYPE_SEI_SUFFIX_:g=
|
|
2484
|
+
!0;break;default:g=!1}if(e&&g){g=f.fullData.byteLength;var h=new Uint8Array(4);h[0]=g>>24&255;h[1]=g>>16&255;h[2]=g>>8&255;h[3]=g&255;d=shaka.util.Uint8ArrayUtils.concat(d,h,f.fullData)}}return d.byteLength?{data:d,isKeyframe:c}:null};shaka.transmuxer.H265.NALU_TYPE_TRAIL_N_=1;shaka.transmuxer.H265.NALU_TYPE_TRAIL_R_=0;shaka.transmuxer.H265.NALU_TYPE_IDR_W_RADL_=19;shaka.transmuxer.H265.NALU_TYPE_IDR_N_LP_=20;shaka.transmuxer.H265.NALU_TYPE_CRA_NUT_=21;shaka.transmuxer.H265.NALU_TYPE_VPS_=32;
|
|
2485
|
+
shaka.transmuxer.H265.NALU_TYPE_SPS_=33;shaka.transmuxer.H265.NALU_TYPE_PPS_=34;shaka.transmuxer.H265.NALU_TYPE_AUD_=35;shaka.transmuxer.H265.NALU_TYPE_SEI_PREFIX_=39;shaka.transmuxer.H265.NALU_TYPE_SEI_SUFFIX_=40;shaka.transmuxer.MpegAudio=function(){};
|
|
2386
2486
|
shaka.transmuxer.MpegAudio.parseHeader=function(a,b){var c=shaka.transmuxer.MpegAudio,d=a[b+1]>>3&3,e=a[b+1]>>1&3,f=a[b+2]>>4&15,g=a[b+2]>>2&3;if(1!==d&&0!==f&&15!==f&&3!==g){var h=a[b+3]>>6;f=1E3*c.BITRATES_MAP_[14*(3===d?3-e:3===e?3:4)+f-1];g=c.SAMPLINGRATE_MAP_[3*(3===d?0:2===d?1:2)+g];var k=3===h?1:2;d=c.SAMPLES_COEFFICIENTS_[d][e];var l=c.BYTES_IN_SLOT_[e];c=8*d*l;d=Math.floor(d*f/g+(a[b+2]>>1&1))*l;(l=(l=(navigator.userAgent||"").match(/Chrome\/(\d+)/i))?parseInt(l[1],10):0)&&87>=l&&2===e&&
|
|
2387
2487
|
224E3<=f&&0===h&&(a[b+3]|=128);return{sampleRate:g,channelCount:k,frameLength:d,samplesPerFrame:c}}return null};shaka.transmuxer.MpegAudio.isHeaderPattern=function(a,b){return 255===a[b]&&224===(a[b+1]&224)&&0!==(a[b+1]&6)};shaka.transmuxer.MpegAudio.isHeader=function(a,b){return b+1<a.length&&shaka.transmuxer.MpegAudio.isHeaderPattern(a,b)};
|
|
2388
2488
|
shaka.transmuxer.MpegAudio.probe=function(a,b){var c=shaka.transmuxer.MpegAudio;if(b+1<a.length&&c.isHeaderPattern(a,b)){var d=c.parseHeader(a,b),e=4;d&&d.frameLength&&(e=d.frameLength);b+=e;return b===a.length||c.isHeader(a,b)}return!1};
|
|
@@ -2396,8 +2496,8 @@ goog.exportProperty(shaka.transmuxer.Mp3Transmuxer.prototype,"transmux",shaka.tr
|
|
|
2396
2496
|
goog.exportProperty(shaka.transmuxer.Mp3Transmuxer.prototype,"destroy",shaka.transmuxer.Mp3Transmuxer.prototype.destroy);shaka.transmuxer.TransmuxerEngine.registerTransmuxer("audio/mpeg",function(){return new shaka.transmuxer.Mp3Transmuxer("audio/mpeg")},shaka.transmuxer.TransmuxerEngine.PluginPriority.FALLBACK);shaka.transmuxer.MpegTsTransmuxer=function(a){this.originalMimeType_=a;this.tsParser_=null};shaka.transmuxer.MpegTsTransmuxer.prototype.destroy=function(){};
|
|
2397
2497
|
shaka.transmuxer.MpegTsTransmuxer.prototype.isSupported=function(a,b){b=shaka.media.Capabilities;if(!this.isTsContainer_(a))return!1;var c=shaka.util.ManifestParserUtils.ContentType,d=shaka.util.MimeUtils,e=d.getCodecs(a),f=d.splitCodecs(e);e=shaka.util.ManifestParserUtils.guessCodecsSafe(c.AUDIO,f);f=shaka.util.ManifestParserUtils.guessCodecsSafe(c.VIDEO,f);return!e||f||"mp3"!=d.getNormalizedCodec(e)?!1:b.isTypeSupported(this.convertCodecs(c.AUDIO,a))};
|
|
2398
2498
|
shaka.transmuxer.MpegTsTransmuxer.prototype.isTsContainer_=function(a){return"video/mp2t"==a.toLowerCase().split(";")[0]};shaka.transmuxer.MpegTsTransmuxer.prototype.convertCodecs=function(a,b){return this.isTsContainer_(b)?"audio/mpeg":b};shaka.transmuxer.MpegTsTransmuxer.prototype.getOrginalMimeType=function(){return this.originalMimeType_};
|
|
2399
|
-
shaka.transmuxer.MpegTsTransmuxer.prototype.transmux=function(a){
|
|
2400
|
-
for(
|
|
2499
|
+
shaka.transmuxer.MpegTsTransmuxer.prototype.transmux=function(a,b,c,d,e){b=shaka.transmuxer.MpegAudio;d=shaka.util.ManifestParserUtils.ContentType;c=shaka.util.Uint8ArrayUtils;this.tsParser_?this.tsParser_.clearData():this.tsParser_=new shaka.util.TsParser;a=shaka.util.BufferUtils.toUint8(a);a=this.tsParser_.parse(a);if("mp3"!=a.getCodecs().audio||e!=d.AUDIO)return Promise.reject(new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MEDIA,shaka.util.Error.Code.TRANSMUXING_FAILED));
|
|
2500
|
+
e=new Uint8Array([]);a=$jscomp.makeIterator(a.getAudioData());for(d=a.next();!d.done;d=a.next())if(d=d.value.data)for(var f=0;f<d.length;){var g=b.parseHeader(d,f);g?(f+g.frameLength<=d.length&&(e=c.concat(e,d.subarray(f,f+g.frameLength))),f+=g.frameLength):f++}return Promise.resolve(e)};goog.exportSymbol("shaka.transmuxer.MpegTsTransmuxer",shaka.transmuxer.MpegTsTransmuxer);goog.exportProperty(shaka.transmuxer.MpegTsTransmuxer.prototype,"transmux",shaka.transmuxer.MpegTsTransmuxer.prototype.transmux);
|
|
2401
2501
|
goog.exportProperty(shaka.transmuxer.MpegTsTransmuxer.prototype,"getOrginalMimeType",shaka.transmuxer.MpegTsTransmuxer.prototype.getOrginalMimeType);goog.exportProperty(shaka.transmuxer.MpegTsTransmuxer.prototype,"convertCodecs",shaka.transmuxer.MpegTsTransmuxer.prototype.convertCodecs);goog.exportProperty(shaka.transmuxer.MpegTsTransmuxer.prototype,"isSupported",shaka.transmuxer.MpegTsTransmuxer.prototype.isSupported);goog.exportProperty(shaka.transmuxer.MpegTsTransmuxer.prototype,"destroy",shaka.transmuxer.MpegTsTransmuxer.prototype.destroy);
|
|
2402
2502
|
shaka.transmuxer.TransmuxerEngine.registerTransmuxer("video/mp2t",function(){return new shaka.transmuxer.MpegTsTransmuxer("video/mp2t")},shaka.transmuxer.TransmuxerEngine.PluginPriority.PREFERRED_SECONDARY);/*
|
|
2403
2503
|
@license
|
|
@@ -2418,25 +2518,18 @@ shaka.transmuxer.MssTransmuxer.prototype.processMediaSegment_=function(a,b,c){a=
|
|
|
2418
2518
|
b.flags|=1;d=a.fetch("moof");c=d.getLength();b.data_offset=c+8;b=a.fetch("saio");null!==b&&(d=this.getBoxOffset_(d,"traf"),f=this.getBoxOffset_(f,"senc"),b.offset[0]=d+f+16);return shaka.util.BufferUtils.toUint8(a.write())};shaka.transmuxer.MssTransmuxer.prototype.getBoxOffset_=function(a,b){for(var c=8,d=0;d<a.boxes.length&&a.boxes[d].type!==b;d++)c+=a.boxes[d].size;return c};goog.exportSymbol("shaka.transmuxer.MssTransmuxer",shaka.transmuxer.MssTransmuxer);
|
|
2419
2519
|
goog.exportProperty(shaka.transmuxer.MssTransmuxer.prototype,"transmux",shaka.transmuxer.MssTransmuxer.prototype.transmux);goog.exportProperty(shaka.transmuxer.MssTransmuxer.prototype,"getOrginalMimeType",shaka.transmuxer.MssTransmuxer.prototype.getOrginalMimeType);goog.exportProperty(shaka.transmuxer.MssTransmuxer.prototype,"convertCodecs",shaka.transmuxer.MssTransmuxer.prototype.convertCodecs);goog.exportProperty(shaka.transmuxer.MssTransmuxer.prototype,"isSupported",shaka.transmuxer.MssTransmuxer.prototype.isSupported);
|
|
2420
2520
|
goog.exportProperty(shaka.transmuxer.MssTransmuxer.prototype,"destroy",shaka.transmuxer.MssTransmuxer.prototype.destroy);shaka.transmuxer.MssTransmuxer.UUID_SENC_=new Uint8Array([162,57,79,82,90,155,79,20,162,68,108,66,124,100,141,244]);shaka.transmuxer.TransmuxerEngine.registerTransmuxer("mss/audio/mp4",function(){return new shaka.transmuxer.MssTransmuxer("mss/audio/mp4")},shaka.transmuxer.TransmuxerEngine.PluginPriority.FALLBACK);
|
|
2421
|
-
shaka.transmuxer.TransmuxerEngine.registerTransmuxer("mss/video/mp4",function(){return new shaka.transmuxer.MssTransmuxer("mss/video/mp4")},shaka.transmuxer.TransmuxerEngine.PluginPriority.FALLBACK);shaka.transmuxer.
|
|
2422
|
-
shaka.transmuxer.
|
|
2423
|
-
shaka.transmuxer.MuxjsTransmuxer.prototype.isTsContainer_=function(a){return"mp2t"==a.toLowerCase().split(";")[0].split("/")[1]};shaka.transmuxer.MuxjsTransmuxer.prototype.convertCodecs=function(a,b){return this.isTsContainer_(b)?this.convertTsCodecs_(a,b):b};
|
|
2424
|
-
shaka.transmuxer.MuxjsTransmuxer.prototype.convertTsCodecs_=function(a,b){var c=shaka.util.ManifestParserUtils.ContentType;b=b.replace(/mp2t/i,"mp4");a==c.AUDIO&&(b=b.replace("video","audio"));if(a=/avc1\.(66|77|100)\.(\d+)/.exec(b)){c="avc1.";var d=a[1];"66"==d?c+="4200":"77"==d?c+="4d00":(goog.asserts.assert("100"==d,"Legacy avc1 parsing code out of sync with regex!"),c+="6400");d=Number(a[2]);goog.asserts.assert(256>d,"Invalid legacy avc1 level number!");c+=(d>>4).toString(16);c+=(d&15).toString(16);
|
|
2425
|
-
b=b.replace(a[0],c)}return b};shaka.transmuxer.MuxjsTransmuxer.prototype.getOrginalMimeType=function(){return this.originalMimeType_};
|
|
2426
|
-
shaka.transmuxer.MuxjsTransmuxer.prototype.transmux=function(a){goog.asserts.assert(this.muxTransmuxer_,"mux.js should be available.");goog.asserts.assert(!this.isTransmuxing_,"No transmuxing should be in progress.");this.isTransmuxing_=!0;this.transmuxPromise_=new shaka.util.PublicPromise;this.transmuxedData_=[];a=shaka.util.BufferUtils.toUint8(a);this.muxTransmuxer_.push(a);this.muxTransmuxer_.flush();this.isTransmuxing_&&this.transmuxPromise_.reject(new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
|
|
2427
|
-
shaka.util.Error.Category.MEDIA,shaka.util.Error.Code.TRANSMUXING_FAILED));return this.transmuxPromise_};shaka.transmuxer.MuxjsTransmuxer.prototype.onTransmuxed_=function(a){this.transmuxedData_.push(shaka.util.Uint8ArrayUtils.concat(a.initSegment,a.data))};
|
|
2428
|
-
shaka.transmuxer.MuxjsTransmuxer.prototype.onTransmuxDone_=function(){var a=shaka.util.Uint8ArrayUtils.concat.apply(shaka.util.Uint8ArrayUtils,$jscomp.arrayFromIterable(this.transmuxedData_));this.transmuxPromise_.resolve(a);this.isTransmuxing_=!1};goog.exportSymbol("shaka.transmuxer.MuxjsTransmuxer",shaka.transmuxer.MuxjsTransmuxer);goog.exportProperty(shaka.transmuxer.MuxjsTransmuxer.prototype,"transmux",shaka.transmuxer.MuxjsTransmuxer.prototype.transmux);
|
|
2429
|
-
goog.exportProperty(shaka.transmuxer.MuxjsTransmuxer.prototype,"getOrginalMimeType",shaka.transmuxer.MuxjsTransmuxer.prototype.getOrginalMimeType);goog.exportProperty(shaka.transmuxer.MuxjsTransmuxer.prototype,"convertCodecs",shaka.transmuxer.MuxjsTransmuxer.prototype.convertCodecs);goog.exportProperty(shaka.transmuxer.MuxjsTransmuxer.prototype,"isSupported",shaka.transmuxer.MuxjsTransmuxer.prototype.isSupported);goog.exportProperty(shaka.transmuxer.MuxjsTransmuxer.prototype,"destroy",shaka.transmuxer.MuxjsTransmuxer.prototype.destroy);
|
|
2430
|
-
shaka.transmuxer.TransmuxerEngine.registerTransmuxer("video/mp2t",function(){return new shaka.transmuxer.MuxjsTransmuxer("video/mp2t")},shaka.transmuxer.TransmuxerEngine.PluginPriority.FALLBACK);shaka.transmuxer.TsTransmuxer=function(a){this.originalMimeType_=a;this.frameIndex_=0;this.initSegments=new Map;this.tsParser_=null};shaka.transmuxer.TsTransmuxer.prototype.destroy=function(){this.initSegments.clear()};
|
|
2431
|
-
shaka.transmuxer.TsTransmuxer.prototype.isSupported=function(a,b){var c=shaka.media.Capabilities;if(!this.isTsContainer_(a))return!1;var d=shaka.util.ManifestParserUtils.ContentType,e=shaka.util.MimeUtils,f=e.getCodecs(a);f=e.splitCodecs(f);var g=shaka.util.ManifestParserUtils.guessCodecsSafe(d.AUDIO,f),h=shaka.util.ManifestParserUtils.guessCodecsSafe(d.VIDEO,f);if(g&&h)return!1;f=shaka.transmuxer.TsTransmuxer;if(g&&(g=e.getNormalizedCodec(g),!f.SUPPORTED_AUDIO_CODECS_.includes(g))||h&&(e=e.getNormalizedCodec(h),
|
|
2521
|
+
shaka.transmuxer.TransmuxerEngine.registerTransmuxer("mss/video/mp4",function(){return new shaka.transmuxer.MssTransmuxer("mss/video/mp4")},shaka.transmuxer.TransmuxerEngine.PluginPriority.FALLBACK);shaka.transmuxer.TsTransmuxer=function(a){this.originalMimeType_=a;this.frameIndex_=0;this.initSegments=new Map;this.tsParser_=null};shaka.transmuxer.TsTransmuxer.prototype.destroy=function(){this.initSegments.clear()};
|
|
2522
|
+
shaka.transmuxer.TsTransmuxer.prototype.isSupported=function(a,b){var c=shaka.media.Capabilities;if(!this.isTsContainer_(a))return!1;var d=shaka.util.ManifestParserUtils.ContentType,e=shaka.util.MimeUtils,f=e.getCodecs(a);f=e.splitCodecs(f);var g=shaka.util.ManifestParserUtils.guessCodecsSafe(d.AUDIO,f),h=shaka.util.ManifestParserUtils.guessCodecsSafe(d.VIDEO,f);f=shaka.transmuxer.TsTransmuxer;if(g&&(g=e.getNormalizedCodec(g),!f.SUPPORTED_AUDIO_CODECS_.includes(g))||h&&(e=e.getNormalizedCodec(h),
|
|
2432
2523
|
!f.SUPPORTED_VIDEO_CODECS_.includes(e)))return!1;if(b)return c.isTypeSupported(this.convertCodecs(b,a));b=this.convertCodecs(d.AUDIO,a);a=this.convertCodecs(d.VIDEO,a);return c.isTypeSupported(b)||c.isTypeSupported(a)};shaka.transmuxer.TsTransmuxer.prototype.isTsContainer_=function(a){return"video/mp2t"==a.toLowerCase().split(";")[0]};
|
|
2433
2524
|
shaka.transmuxer.TsTransmuxer.prototype.convertCodecs=function(a,b){if(this.isTsContainer_(b)){var c=shaka.util.ManifestParserUtils.ContentType;b=shaka.util.MimeUtils.getCodecs(b).replace("mp4a.40.34","mp3");return a==c.AUDIO?'audio/mp4; codecs="'+b+'"':'video/mp4; codecs="'+b+'"'}return b};shaka.transmuxer.TsTransmuxer.prototype.getOrginalMimeType=function(){return this.originalMimeType_};
|
|
2434
|
-
shaka.transmuxer.TsTransmuxer.prototype.transmux=function(a,b,c,d,e){var f=shaka.util.ManifestParserUtils.ContentType;this.tsParser_?this.tsParser_.clearData():this.tsParser_=new shaka.util.TsParser;
|
|
2435
|
-
case "ac3":
|
|
2436
|
-
this.frameIndex_++;
|
|
2437
|
-
shaka.transmuxer.TsTransmuxer.prototype.getAacStreamInfo_=function(a,b,c){var
|
|
2438
|
-
|
|
2439
|
-
d;
|
|
2525
|
+
shaka.transmuxer.TsTransmuxer.prototype.transmux=function(a,b,c,d,e){var f=shaka.util.ManifestParserUtils.ContentType;this.tsParser_?this.tsParser_.clearData():this.tsParser_=new shaka.util.TsParser;var g=shaka.util.Uint8ArrayUtils;a=shaka.util.BufferUtils.toUint8(a);a=this.tsParser_.parse(a);var h=[],k=a.getCodecs();try{var l=null;if(e==f.VIDEO){switch(k.video){case "avc":l=this.getAvcStreamInfo_(a,b,d,c);break;case "hvc":l=this.getHvcStreamInfo_(a,b,d,c)}l&&(h.push(l),l=null)}if(e==f.AUDIO){switch(k.audio){case "aac":l=
|
|
2526
|
+
this.getAacStreamInfo_(a,b,d,c);break;case "ac3":l=this.getAc3StreamInfo_(a,b,d);break;case "ec3":l=this.getEc3StreamInfo_(a,b,d);break;case "mp3":l=this.getMp3StreamInfo_(a,b,d)}l&&h.push(l)}}catch(m){return Promise.reject(m)}if(!h.length)return Promise.reject(new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MEDIA,shaka.util.Error.Code.TRANSMUXING_FAILED));d=new shaka.util.Mp4Generator(h);this.initSegments.has(b.id)?c=this.initSegments.get(b.id):(c=d.initSegment(),
|
|
2527
|
+
this.initSegments.set(b.id,c));b=d.segmentData();this.frameIndex_++;g=g.concat(c,b);return Promise.resolve(g)};
|
|
2528
|
+
shaka.transmuxer.TsTransmuxer.prototype.getAacStreamInfo_=function(a,b,c,d){for(var e=shaka.transmuxer.ADTS,f=shaka.util.TsParser.Timescale,g=[],h,k=null,l=$jscomp.makeIterator(a.getAudioData()),m=l.next();!m.done;m=l.next()){var n=m.value;if(m=n.data){var p=0;h=e.parseInfo(m,p);if(!h)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MEDIA,shaka.util.Error.Code.TRANSMUXING_FAILED);b.audioSamplingRate=h.sampleRate;b.channelsCount=h.channelCount;null==k&&null!==
|
|
2529
|
+
n.pts&&(k=n.pts);for(;p<m.length;)if(n=e.parseHeader(m,p)){var q=n.headerLength+n.frameLength;if(p+q<=m.length){var r=m.subarray(p+n.headerLength,p+q);g.push({data:r,size:n.frameLength,duration:e.AAC_SAMPLES_PER_FRAME,cts:0,flags:{isLeading:0,isDependedOn:0,hasRedundancy:0,degradPrio:0,dependsOn:2,isNonSync:0}})}p+=q}else p++}}if(!h||null==k){if(!a.getVideoData().length)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MEDIA,shaka.util.Error.Code.TRANSMUXING_FAILED);
|
|
2530
|
+
k=d.startTime*f;h=shaka.util.MimeUtils.splitCodecs(b.codecs);a=shaka.util.ManifestParserUtils.guessCodecsSafe(shaka.util.ManifestParserUtils.ContentType.AUDIO,h);if(!a||!b.channelsCount||!b.audioSamplingRate)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MEDIA,shaka.util.Error.Code.TRANSMUXING_FAILED);h={sampleRate:b.audioSamplingRate,channelCount:b.channelsCount,codec:a};a=e.getSilentFrame(a,b.channelsCount);if(!a)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,
|
|
2531
|
+
shaka.util.Error.Category.MEDIA,shaka.util.Error.Code.TRANSMUXING_FAILED);d=k+(d.endTime-d.startTime)*f;for(l=k;l<d;)g.push({data:a,size:a.byteLength,duration:e.AAC_SAMPLES_PER_FRAME,cts:0,flags:{isLeading:0,isDependedOn:0,hasRedundancy:0,degradPrio:0,dependsOn:2,isNonSync:0}}),l+=e.AAC_SAMPLES_PER_FRAME/h.sampleRate*f}e=h.sampleRate;f=k/f*e;return{id:b.id,type:shaka.util.ManifestParserUtils.ContentType.AUDIO,codecs:h.codec,encrypted:b.encrypted&&0<b.drmInfos.length,timescale:e,duration:c,videoNalus:[],
|
|
2532
|
+
audioConfig:new Uint8Array([]),videoConfig:new Uint8Array([]),data:{sequenceNumber:this.frameIndex_,baseMediaDecodeTime:f,samples:g},stream:b}};
|
|
2440
2533
|
shaka.transmuxer.TsTransmuxer.prototype.getAc3StreamInfo_=function(a,b,c){var d=shaka.transmuxer.Ac3,e=shaka.util.TsParser.Timescale,f=[],g=0,h=new Uint8Array([]),k=null;a=$jscomp.makeIterator(a.getAudioData());for(var l=a.next();!l.done;l=a.next()){var m=l.value;l=m.data;null==k&&null!==m.pts&&(k=m.pts);for(m=0;m<l.length;){var n=d.parseFrame(l,m);if(n){b.audioSamplingRate=n.sampleRate;b.channelsCount=n.channelCount;g=n.sampleRate;h=n.audioConfig;var p=l.subarray(m,m+n.frameLength);f.push({data:p,
|
|
2441
2534
|
size:n.frameLength,duration:d.AC3_SAMPLES_PER_FRAME,cts:0,flags:{isLeading:0,isDependedOn:0,hasRedundancy:0,degradPrio:0,dependsOn:2,isNonSync:0}});m+=n.frameLength}else m++}}if(0==g||0==h.byteLength||null==k)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MEDIA,shaka.util.Error.Code.TRANSMUXING_FAILED);d=k/e*g;return{id:b.id,type:shaka.util.ManifestParserUtils.ContentType.AUDIO,codecs:"ac-3",encrypted:b.encrypted&&0<b.drmInfos.length,timescale:g,duration:c,
|
|
2442
2535
|
videoNalus:[],audioConfig:h,videoConfig:new Uint8Array([]),data:{sequenceNumber:this.frameIndex_,baseMediaDecodeTime:d,samples:f},stream:b}};
|
|
@@ -2446,11 +2539,14 @@ videoNalus:[],audioConfig:h,videoConfig:new Uint8Array([]),data:{sequenceNumber:
|
|
|
2446
2539
|
shaka.transmuxer.TsTransmuxer.prototype.getMp3StreamInfo_=function(a,b,c){var d=shaka.transmuxer.MpegAudio,e=shaka.util.TsParser.Timescale,f=[],g,h=null;a=$jscomp.makeIterator(a.getAudioData());for(var k=a.next();!k.done;k=a.next()){var l=k.value;if(k=l.data)for(null==h&&null!==l.pts&&(h=l.pts),l=0;l<k.length;){var m=d.parseHeader(k,l);m?(g||(g=m),l+m.frameLength<=k.length&&f.push({data:k.subarray(l,l+m.frameLength),size:m.frameLength,duration:d.MPEG_AUDIO_SAMPLE_PER_FRAME,cts:0,flags:{isLeading:0,
|
|
2447
2540
|
isDependedOn:0,hasRedundancy:0,degradPrio:0,dependsOn:2,isNonSync:0}}),l+=m.frameLength):l++}}if(!g||null==h)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MEDIA,shaka.util.Error.Code.TRANSMUXING_FAILED);d=g.sampleRate;e=h/e*d;return{id:b.id,type:shaka.util.ManifestParserUtils.ContentType.AUDIO,codecs:"mp3",encrypted:b.encrypted&&0<b.drmInfos.length,timescale:d,duration:c,videoNalus:[],audioConfig:new Uint8Array([]),videoConfig:new Uint8Array([]),data:{sequenceNumber:this.frameIndex_,
|
|
2448
2541
|
baseMediaDecodeTime:e,samples:f},stream:b}};
|
|
2449
|
-
shaka.transmuxer.TsTransmuxer.prototype.getAvcStreamInfo_=function(a,b,c){for(var
|
|
2450
|
-
hasRedundancy:0,degradPrio:0,dependsOn:
|
|
2451
|
-
data:{sequenceNumber:this.frameIndex_,baseMediaDecodeTime:
|
|
2542
|
+
shaka.transmuxer.TsTransmuxer.prototype.getAvcStreamInfo_=function(a,b,c,d){for(var e=shaka.transmuxer.H264,f=shaka.util.TsParser.Timescale,g=[],h=null,k=[],l=a.getVideoData(),m=0;m<l.length;m++){var n=l[m],p=void 0;m+1<l.length&&(p=l[m+1]);p=a.parseNalus(n,p);k=k.concat(p);if(p=e.parseFrame(p))null==h&&(h=n.dts),g.push({data:p.data,size:p.data.byteLength,duration:m+1<l.length?(l[m+1].dts||0)-(n.dts||0):1<l.length?(n.dts||0)-(l[m-1].dts||0):(d.endTime-d.startTime)*f,cts:Math.round((n.pts||0)-(n.dts||
|
|
2543
|
+
0)),flags:{isLeading:0,isDependedOn:0,hasRedundancy:0,degradPrio:0,dependsOn:p.isKeyframe?2:1,isNonSync:p.isKeyframe?0:1}})}a=e.parseInfo(k);if(!a||null==h)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MEDIA,shaka.util.Error.Code.TRANSMUXING_FAILED);b.height=a.height;b.width=a.width;return{id:b.id,type:shaka.util.ManifestParserUtils.ContentType.VIDEO,codecs:"avc1",encrypted:b.encrypted&&0<b.drmInfos.length,timescale:f,duration:c,videoNalus:[],audioConfig:new Uint8Array([]),
|
|
2544
|
+
videoConfig:a.videoConfig,data:{sequenceNumber:this.frameIndex_,baseMediaDecodeTime:h,samples:g},stream:b}};
|
|
2545
|
+
shaka.transmuxer.TsTransmuxer.prototype.getHvcStreamInfo_=function(a,b,c,d){for(var e=shaka.transmuxer.H265,f=shaka.util.TsParser.Timescale,g=[],h=null,k=[],l=a.getVideoData(),m=0;m<l.length;m++){var n=l[m],p=void 0;m+1<l.length&&(p=l[m+1]);p=a.parseNalus(n,p);k=k.concat(p);if(p=e.parseFrame(p))null==h&&null!=n.dts&&(h=n.dts),g.push({data:p.data,size:p.data.byteLength,duration:m+1<l.length?(l[m+1].dts||0)-(n.dts||0):1<l.length?(n.dts||0)-(l[m-1].dts||0):(d.endTime-d.startTime)*f,cts:Math.round((n.pts||
|
|
2546
|
+
0)-(n.dts||0)),flags:{isLeading:0,isDependedOn:0,hasRedundancy:0,degradPrio:0,dependsOn:p.isKeyframe?2:1,isNonSync:p.isKeyframe?0:1}})}a=e.parseInfo(k);if(!a||null==h)throw new shaka.util.Error(shaka.util.Error.Severity.CRITICAL,shaka.util.Error.Category.MEDIA,shaka.util.Error.Code.TRANSMUXING_FAILED);b.height=a.height;b.width=a.width;return{id:b.id,type:shaka.util.ManifestParserUtils.ContentType.VIDEO,codecs:"hvc1",encrypted:b.encrypted&&0<b.drmInfos.length,timescale:f,duration:c,videoNalus:[],audioConfig:new Uint8Array([]),
|
|
2547
|
+
videoConfig:a.videoConfig,data:{sequenceNumber:this.frameIndex_,baseMediaDecodeTime:h,samples:g},stream:b}};goog.exportSymbol("shaka.transmuxer.TsTransmuxer",shaka.transmuxer.TsTransmuxer);goog.exportProperty(shaka.transmuxer.TsTransmuxer.prototype,"transmux",shaka.transmuxer.TsTransmuxer.prototype.transmux);goog.exportProperty(shaka.transmuxer.TsTransmuxer.prototype,"getOrginalMimeType",shaka.transmuxer.TsTransmuxer.prototype.getOrginalMimeType);
|
|
2452
2548
|
goog.exportProperty(shaka.transmuxer.TsTransmuxer.prototype,"convertCodecs",shaka.transmuxer.TsTransmuxer.prototype.convertCodecs);goog.exportProperty(shaka.transmuxer.TsTransmuxer.prototype,"isSupported",shaka.transmuxer.TsTransmuxer.prototype.isSupported);goog.exportProperty(shaka.transmuxer.TsTransmuxer.prototype,"destroy",shaka.transmuxer.TsTransmuxer.prototype.destroy);shaka.transmuxer.TsTransmuxer.SUPPORTED_AUDIO_CODECS_=["aac","ac-3","ec-3","mp3"];
|
|
2453
|
-
shaka.transmuxer.TsTransmuxer.SUPPORTED_VIDEO_CODECS_=["avc"];shaka.transmuxer.TransmuxerEngine.registerTransmuxer("video/mp2t",function(){return new shaka.transmuxer.TsTransmuxer("video/mp2t")},shaka.transmuxer.TransmuxerEngine.PluginPriority.PREFERRED);/*
|
|
2549
|
+
shaka.transmuxer.TsTransmuxer.SUPPORTED_VIDEO_CODECS_=["avc","hevc"];shaka.transmuxer.TransmuxerEngine.registerTransmuxer("video/mp2t",function(){return new shaka.transmuxer.TsTransmuxer("video/mp2t")},shaka.transmuxer.TransmuxerEngine.PluginPriority.PREFERRED);/*
|
|
2454
2550
|
@license
|
|
2455
2551
|
EME Encryption Scheme Polyfill
|
|
2456
2552
|
Copyright 2019 Google LLC
|