shaka-player 4.4.3 → 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.
Files changed (198) hide show
  1. package/.github/workflows/release-please.yaml +2 -27
  2. package/CHANGELOG.md +64 -45
  3. package/README.md +16 -10
  4. package/demo/asset_card.js +18 -21
  5. package/demo/cast_receiver/index.html +0 -1
  6. package/demo/close_button.js +0 -3
  7. package/demo/common/asset.js +22 -5
  8. package/demo/common/assets.js +132 -49
  9. package/demo/config.js +192 -253
  10. package/demo/custom.js +39 -98
  11. package/demo/front.js +7 -10
  12. package/demo/index.html +19 -22
  13. package/demo/input.js +6 -11
  14. package/demo/input_container.js +8 -9
  15. package/demo/main.js +51 -123
  16. package/demo/search.js +22 -34
  17. package/demo/service_worker.js +0 -3
  18. package/demo/tooltip.js +3 -5
  19. package/demo/visualizer.js +3 -5
  20. package/demo/visualizer_button.js +1 -20
  21. package/dist/demo.compiled.debug.js +152 -178
  22. package/dist/demo.compiled.debug.map +4 -4
  23. package/dist/demo.compiled.js +152 -178
  24. package/dist/demo.compiled.map +4 -4
  25. package/dist/deps.js +27 -24
  26. package/dist/locales.js +31 -31
  27. package/dist/receiver.compiled.debug.js +22 -43
  28. package/dist/receiver.compiled.debug.map +4 -4
  29. package/dist/receiver.compiled.js +22 -43
  30. package/dist/receiver.compiled.map +4 -4
  31. package/dist/shaka-player.compiled.d.ts +507 -365
  32. package/dist/shaka-player.compiled.debug.d.ts +507 -365
  33. package/dist/shaka-player.compiled.debug.externs.js +205 -51
  34. package/dist/shaka-player.compiled.debug.js +541 -450
  35. package/dist/shaka-player.compiled.debug.map +4 -4
  36. package/dist/shaka-player.compiled.externs.js +205 -51
  37. package/dist/shaka-player.compiled.js +1120 -1066
  38. package/dist/shaka-player.compiled.map +4 -4
  39. package/dist/shaka-player.ui.d.ts +562 -410
  40. package/dist/shaka-player.ui.debug.d.ts +562 -410
  41. package/dist/shaka-player.ui.debug.externs.js +226 -51
  42. package/dist/shaka-player.ui.debug.js +606 -506
  43. package/dist/shaka-player.ui.debug.map +4 -4
  44. package/dist/shaka-player.ui.externs.js +226 -51
  45. package/dist/shaka-player.ui.js +1266 -1207
  46. package/dist/shaka-player.ui.map +4 -4
  47. package/docs/design/lcevc-integration.md +14 -14
  48. package/docs/tutorials/faq.md +27 -55
  49. package/docs/tutorials/index.json +2 -1
  50. package/docs/tutorials/lcevc.md +118 -0
  51. package/docs/tutorials/ui-customization.md +4 -0
  52. package/externs/css_style_declaration.js +19 -0
  53. package/externs/lcevc.js +37 -13
  54. package/externs/media_remote.js +68 -0
  55. package/externs/mediatailor.js +193 -0
  56. package/externs/pictureinpicture.js +11 -0
  57. package/externs/shaka/ads.js +27 -0
  58. package/externs/shaka/manifest.js +10 -5
  59. package/externs/shaka/manifest_parser.js +7 -1
  60. package/externs/shaka/offline.js +4 -0
  61. package/externs/shaka/player.js +12 -1
  62. package/karma.conf.js +7 -3
  63. package/lib/abr/simple_abr_manager.js +43 -3
  64. package/lib/ads/ad_manager.js +104 -50
  65. package/lib/ads/media_tailor_ad.js +297 -0
  66. package/lib/ads/media_tailor_ad_manager.js +828 -0
  67. package/lib/cea/ts_cea_parser.js +15 -2
  68. package/lib/config/codec_switching_strategy.js +24 -0
  69. package/lib/dash/content_protection.js +120 -2
  70. package/lib/dash/dash_parser.js +75 -12
  71. package/lib/dash/mpd_utils.js +10 -6
  72. package/lib/dash/segment_base.js +13 -5
  73. package/lib/dash/segment_list.js +13 -5
  74. package/lib/dash/segment_template.js +43 -85
  75. package/lib/dependencies/all.js +8 -7
  76. package/lib/hls/hls_parser.js +44 -16
  77. package/lib/lcevc/lcevc_dec.js +220 -0
  78. package/lib/media/adaptation_set.js +22 -11
  79. package/lib/media/adaptation_set_criteria.js +25 -7
  80. package/lib/media/media_source_engine.js +215 -27
  81. package/lib/media/segment_index.js +1 -1
  82. package/lib/media/segment_reference.js +7 -7
  83. package/lib/media/streaming_engine.js +33 -18
  84. package/lib/mss/mss_parser.js +1 -0
  85. package/lib/net/networking_engine.js +1 -0
  86. package/lib/offline/indexeddb/v1_storage_cell.js +1 -0
  87. package/lib/offline/indexeddb/v2_storage_cell.js +1 -0
  88. package/lib/offline/manifest_converter.js +1 -0
  89. package/lib/offline/storage.js +3 -0
  90. package/lib/player.js +142 -72
  91. package/lib/routing/payload.js +5 -1
  92. package/lib/text/cue.js +15 -0
  93. package/lib/text/ttml_text_parser.js +17 -0
  94. package/lib/text/ui_text_displayer.js +4 -0
  95. package/lib/text/vtt_text_parser.js +33 -20
  96. package/lib/transmuxer/h265.js +862 -0
  97. package/lib/transmuxer/mpeg_ts_transmuxer.js +3 -2
  98. package/lib/transmuxer/ts_transmuxer.js +160 -15
  99. package/lib/util/error.js +28 -9
  100. package/lib/util/exp_golomb.js +30 -2
  101. package/lib/util/fake_event.js +3 -0
  102. package/lib/util/mp4_generator.js +4 -4
  103. package/lib/util/periods.js +2 -0
  104. package/lib/util/platform.js +40 -0
  105. package/lib/util/player_configuration.js +8 -0
  106. package/lib/util/state_history.js +6 -2
  107. package/lib/util/stream_utils.js +133 -217
  108. package/lib/util/ts_parser.js +226 -40
  109. package/maintained-branches.md +3 -2
  110. package/package.json +4 -6
  111. package/roadmap.md +15 -5
  112. package/shaka-player.uncompiled.js +2 -1
  113. package/support.html +0 -1
  114. package/test/cast/cast_receiver_integration.js +47 -0
  115. package/test/codec_switching/codec_switching_integration.js +181 -0
  116. package/test/dash/dash_parser_content_protection_unit.js +2 -0
  117. package/test/dash/dash_parser_integration.js +73 -0
  118. package/test/dash/dash_parser_live_unit.js +2 -0
  119. package/test/dash/dash_parser_manifest_unit.js +42 -0
  120. package/test/dash/dash_parser_segment_base_unit.js +2 -0
  121. package/test/dash/dash_parser_segment_list_unit.js +2 -0
  122. package/test/dash/dash_parser_segment_template_unit.js +2 -0
  123. package/test/demo/demo_unit.js +0 -16
  124. package/test/hls/hls_live_unit.js +2 -0
  125. package/test/hls/hls_parser_unit.js +8 -6
  126. package/test/media/adaptation_set_criteria_unit.js +118 -0
  127. package/test/media/adaptation_set_unit.js +1 -0
  128. package/test/media/media_source_engine_unit.js +165 -1
  129. package/test/media/segment_index_unit.js +4 -4
  130. package/test/media/segment_prefetch_unit.js +1 -1
  131. package/test/media/streaming_engine_unit.js +17 -17
  132. package/test/mss/mss_parser_unit.js +2 -0
  133. package/test/offline/manifest_convert_unit.js +5 -0
  134. package/test/offline/storage_integration.js +1 -4
  135. package/test/player_unit.js +102 -131
  136. package/test/routing/walker_unit.js +1 -0
  137. package/test/test/assets/dash-aes-128/Fragments(video=0,format=mpd-time-csf) +0 -0
  138. package/test/test/assets/dash-aes-128/Fragments(video=20000000,format=mpd-time-csf) +0 -0
  139. package/test/test/assets/dash-aes-128/Fragments(video=40000000,format=mpd-time-csf) +0 -0
  140. package/test/test/assets/dash-aes-128/Fragments(video=60000000,format=mpd-time-csf) +0 -0
  141. package/test/test/assets/dash-aes-128/Fragments(video=i,format=mpd-time-csf) +0 -0
  142. package/test/test/assets/dash-aes-128/dash.mpd +18 -0
  143. package/test/test/assets/dash-aes-128/license +1 -0
  144. package/test/test/assets/dash-multi-codec/audio_en_2c_128k_aac.mp4 +0 -0
  145. package/test/test/assets/dash-multi-codec/audio_es_2c_64k_opus.webm +0 -0
  146. package/test/test/assets/dash-multi-codec/dash.mpd +32 -0
  147. package/test/test/assets/dash-multi-codec/video_144p_108k_h264.mp4 +0 -0
  148. package/test/test/assets/hls-ts-h265/0.ts +0 -0
  149. package/test/test/assets/hls-ts-h265/hevc.m3u8 +6 -0
  150. package/test/test/assets/hls-ts-h265/index.m3u8 +7 -0
  151. package/test/test/assets/hls-ts-muxed-aac-h265/0.ts +0 -0
  152. package/test/test/assets/hls-ts-muxed-aac-h265/1.ts +0 -0
  153. package/test/test/assets/hls-ts-muxed-aac-h265/media.m3u8 +9 -0
  154. package/test/test/assets/hls-ts-muxed-ac3-h264/media.m3u8 +24 -0
  155. package/test/test/assets/hls-ts-muxed-ac3-h264/s_00000.ts +0 -0
  156. package/test/test/assets/hls-ts-muxed-ac3-h264/s_00001.ts +0 -0
  157. package/test/test/assets/hls-ts-muxed-ac3-h264/s_00002.ts +0 -0
  158. package/test/test/assets/hls-ts-muxed-ac3-h264/s_00003.ts +0 -0
  159. package/test/test/assets/hls-ts-muxed-ac3-h264/s_00004.ts +0 -0
  160. package/test/test/assets/hls-ts-muxed-ac3-h264/s_00005.ts +0 -0
  161. package/test/test/assets/hls-ts-muxed-ec3-h264/ChID_voices_1280x720p_25fps_h264_6ch_256kbps_ddp_sub_0000.ts +0 -0
  162. package/test/test/assets/hls-ts-muxed-ec3-h264/ChID_voices_1280x720p_25fps_h264_6ch_256kbps_ddp_sub_0001.ts +0 -0
  163. package/test/test/assets/hls-ts-muxed-ec3-h264/ChID_voices_1280x720p_25fps_h264_6ch_256kbps_ddp_sub_0002.ts +0 -0
  164. package/test/test/assets/hls-ts-muxed-ec3-h264/ChID_voices_1280x720p_25fps_h264_6ch_256kbps_ddp_sub_0003.ts +0 -0
  165. package/test/test/assets/hls-ts-muxed-ec3-h264/prog_index.m3u8 +14 -0
  166. package/test/test/assets/hls-ts-muxed-mp3-h264/index.m3u8 +23 -0
  167. package/test/test/assets/hls-ts-muxed-mp3-h264/seg-1-v1-a1.ts +0 -0
  168. package/test/test/assets/hls-ts-muxed-mp3-h264/seg-2-v1-a1.ts +0 -0
  169. package/test/test/assets/hls-ts-muxed-mp3-h264/seg-3-v1-a1.ts +0 -0
  170. package/test/test/assets/hls-ts-muxed-mp3-h264/seg-4-v1-a1.ts +0 -0
  171. package/test/test/assets/hls-ts-muxed-mp3-h264/seg-5-v1-a1.ts +0 -0
  172. package/test/test/assets/hls-ts-muxed-mp3-h264/seg-6-v1-a1.ts +0 -0
  173. package/test/test/assets/hls-ts-muxed-mp3-h264/seg-7-v1-a1.ts +0 -0
  174. package/test/test/assets/hls-ts-muxed-mp3-h264/seg-8-v1-a1.ts +0 -0
  175. package/test/test/util/dash_parser_util.js +4 -0
  176. package/test/test/util/fake_ad_manager.js +20 -0
  177. package/test/test/util/fake_media_source_engine.js +8 -2
  178. package/test/test/util/manifest_generator.js +7 -3
  179. package/test/test/util/mss_parser_util.js +4 -0
  180. package/test/test/util/offline_utils.js +1 -0
  181. package/test/test/util/streaming_engine_util.js +7 -4
  182. package/test/text/ttml_text_parser_unit.js +52 -0
  183. package/test/text/vtt_text_parser_unit.js +103 -31
  184. package/test/transmuxer/transmuxer_integration.js +117 -0
  185. package/test/ui/ui_unit.js +3 -10
  186. package/test/util/stream_utils_unit.js +208 -74
  187. package/ui/controls.js +125 -0
  188. package/ui/externs/ui.js +8 -1
  189. package/ui/pip_button.js +22 -120
  190. package/ui/remote_button.js +201 -0
  191. package/ui/ui.js +5 -2
  192. package/demo/common/message_ids.js +0 -309
  193. package/demo/locales/en.json +0 -288
  194. package/demo/locales/source.json +0 -1146
  195. package/externs/mux.js +0 -69
  196. package/lib/lcevc/lcevc_dil.js +0 -152
  197. package/lib/transmuxer/muxjs_transmuxer.js +0 -242
  198. package/test/transmuxer/muxjs_transmuxer_integration.js +0 -177
@@ -38,7 +38,7 @@ goog.global.CLOSURE_BASE_PATH;else if(goog.inHtmlDocument_()){var a=goog.global.
38
38
  goog.DebugLoader_.prototype.loadClosureDeps=function(){this.depsToLoad_.push(this.factory_.createDependency(goog.normalizePath_(goog.basePath+"deps.js"),"deps.js",[],[],{}));this.loadDeps_()},goog.DebugLoader_.prototype.requested=function(a,b){(a=this.getPathFromDeps_(a))&&(b||this.areDepsLoaded_(this.dependencies_[a].requires))&&(b=this.deferredCallbacks_[a])&&(delete this.deferredCallbacks_[a],b())},goog.DebugLoader_.prototype.setDependencyFactory=function(a){this.factory_=a},goog.DebugLoader_.prototype.load_=
39
39
  function(a){if(this.getPathFromDeps_(a)){var b=this,c=[],d=function(e){var f=b.getPathFromDeps_(e);if(!f)throw Error("Bad dependency path or symbol: "+e);if(!b.written_[f]){b.written_[f]=!0;e=b.dependencies_[f];for(f=0;f<e.requires.length;f++)goog.isProvided_(e.requires[f])||d(e.requires[f]);c.push(e)}};d(a);a=!!this.depsToLoad_.length;this.depsToLoad_=this.depsToLoad_.concat(c);this.paused_||a||this.loadDeps_()}else goog.logToConsole_("goog.require could not find: "+a)},goog.DebugLoader_.prototype.loadDeps_=
40
40
  function(){for(var a=this,b=this.paused_;this.depsToLoad_.length&&!b;)(function(){var c=!1,d=a.depsToLoad_.shift(),e=!1;a.loading_(d);var f={pause:function(){if(c)throw Error("Cannot call pause after the call to load.");b=!0},resume:function(){c?a.resume_():b=!1},loaded:function(){if(e)throw Error("Double call to loaded.");e=!0;a.loaded_(d)},pending:function(){for(var g=[],h=0;h<a.loadingDeps_.length;h++)g.push(a.loadingDeps_[h]);return g},setModuleState:function(g){goog.moduleLoaderState_={type:g,
41
- moduleName:"",declareLegacyNamespace:!1}},registerEs6ModuleExports:function(g,h,k){k&&(goog.loadedModules_[k]={exports:h,type:goog.ModuleType.ES6,moduleId:k||""})},registerGoogModuleExports:function(g,h){goog.loadedModules_[g]={exports:h,type:goog.ModuleType.GOOG,moduleId:g}},clearModuleState:function(){goog.moduleLoaderState_=null},defer:function(g){if(c)throw Error("Cannot register with defer after the call to load.");a.defer_(d,g)},areDepsLoaded:function(){return a.areDepsLoaded_(d.requires)}};
41
+ moduleName:"",declareLegacyNamespace:!1}},registerEs6ModuleExports:function(g,h,l){l&&(goog.loadedModules_[l]={exports:h,type:goog.ModuleType.ES6,moduleId:l||""})},registerGoogModuleExports:function(g,h){goog.loadedModules_[g]={exports:h,type:goog.ModuleType.GOOG,moduleId:g}},clearModuleState:function(){goog.moduleLoaderState_=null},defer:function(g){if(c)throw Error("Cannot register with defer after the call to load.");a.defer_(d,g)},areDepsLoaded:function(){return a.areDepsLoaded_(d.requires)}};
42
42
  try{d.load(f)}finally{c=!0}})();b&&this.pause_()},goog.DebugLoader_.prototype.pause_=function(){this.paused_=!0},goog.DebugLoader_.prototype.resume_=function(){this.paused_&&(this.paused_=!1,this.loadDeps_())},goog.DebugLoader_.prototype.loading_=function(a){this.loadingDeps_.push(a)},goog.DebugLoader_.prototype.loaded_=function(a){for(var b=0;b<this.loadingDeps_.length;b++)if(this.loadingDeps_[b]==a){this.loadingDeps_.splice(b,1);break}for(b=0;b<this.deferredQueue_.length;b++)if(this.deferredQueue_[b]==
43
43
  a.path){this.deferredQueue_.splice(b,1);break}if(this.loadingDeps_.length==this.deferredQueue_.length&&!this.depsToLoad_.length)for(;this.deferredQueue_.length;)this.requested(this.deferredQueue_.shift(),!0);a.loaded()},goog.DebugLoader_.prototype.areDepsLoaded_=function(a){for(var b=0;b<a.length;b++){var c=this.getPathFromDeps_(a[b]);if(!c||!(c in this.deferredCallbacks_||goog.isProvided_(a[b])))return!1}return!0},goog.DebugLoader_.prototype.getPathFromDeps_=function(a){return a in this.idToPath_?
44
44
  this.idToPath_[a]:a in this.dependencies_?a:null},goog.DebugLoader_.prototype.defer_=function(a,b){this.deferredCallbacks_[a.path]=b;this.deferredQueue_.push(a.path)},goog.LoadController=function(){},goog.LoadController.prototype.pause=function(){},goog.LoadController.prototype.resume=function(){},goog.LoadController.prototype.loaded=function(){},goog.LoadController.prototype.pending=function(){},goog.LoadController.prototype.registerEs6ModuleExports=function(a,b,c){},goog.LoadController.prototype.setModuleState=
@@ -48,14 +48,14 @@ goog.Dependency.callback_=function(a,b){if(a in goog.Dependency.callbackMap_){fo
48
48
  b.readyState&&!goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING){if(/\bdeps.js$/.test(this.path)){a.loaded();return}throw Error('Cannot write "'+this.path+'" after document load');}var c=goog.getScriptNonce_();if(!goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING&&goog.isDocumentLoading_()){var d=function(h){h.readyState&&"complete"!=h.readyState?h.onload=d:(goog.Dependency.unregisterCallback_(e),a.loaded())};var e=goog.Dependency.registerCallback_(d);c=c?' nonce="'+c+'"':"";var f='<script src="'+this.path+'"'+
49
49
  c+(goog.Dependency.defer_?" defer":"")+' id="script-'+e+'">\x3c/script>';f+="<script"+c+">";f=goog.Dependency.defer_?f+("document.getElementById('script-"+e+"').onload = function() {\n goog.Dependency.callback_('"+e+"', this);\n};\n"):f+("goog.Dependency.callback_('"+e+"', document.getElementById('script-"+e+"'));");f+="\x3c/script>";b.write(goog.TRUSTED_TYPES_POLICY_?goog.TRUSTED_TYPES_POLICY_.createHTML(f):f)}else{var g=b.createElement("script");g.defer=goog.Dependency.defer_;g.async=!1;c&&(g.nonce=
50
50
  c);g.onload=function(){g.onload=null;a.loaded()};g.src=goog.TRUSTED_TYPES_POLICY_?goog.TRUSTED_TYPES_POLICY_.createScriptURL(this.path):this.path;b.head.appendChild(g)}}else goog.logToConsole_("Cannot use default debug loader outside of HTML documents."),"deps.js"==this.relativePath?(goog.logToConsole_("Consider setting CLOSURE_IMPORT_SCRIPT before loading base.js, or setting CLOSURE_NO_DEPS to true."),a.loaded()):a.pause()},goog.Es6ModuleDependency=function(a,b,c,d,e){goog.Dependency.call(this,a,
51
- b,c,d,e)},goog.inherits(goog.Es6ModuleDependency,goog.Dependency),goog.Es6ModuleDependency.prototype.load=function(a){function b(l,m){var n="",p=goog.getScriptNonce_();p&&(n=' nonce="'+p+'"');l=m?'<script type="module" crossorigin'+n+">"+m+"\x3c/script>":'<script type="module" crossorigin src="'+l+'"'+n+">\x3c/script>";d.write(goog.TRUSTED_TYPES_POLICY_?goog.TRUSTED_TYPES_POLICY_.createHTML(l):l)}function c(l,m){var n=d.createElement("script");n.defer=!0;n.async=!1;n.type="module";n.setAttribute("crossorigin",
52
- !0);var p=goog.getScriptNonce_();p&&(n.nonce=p);m?n.text=goog.TRUSTED_TYPES_POLICY_?goog.TRUSTED_TYPES_POLICY_.createScript(m):m:n.src=goog.TRUSTED_TYPES_POLICY_?goog.TRUSTED_TYPES_POLICY_.createScriptURL(l):l;d.head.appendChild(n)}if(goog.global.CLOSURE_IMPORT_SCRIPT)goog.global.CLOSURE_IMPORT_SCRIPT(this.path)?a.loaded():a.pause();else if(goog.inHtmlDocument_()){var d=goog.global.document,e=this;if(goog.isDocumentLoading_()){var f=b;goog.Dependency.defer_=!0}else f=c;var g=goog.Dependency.registerCallback_(function(){goog.Dependency.unregisterCallback_(g);
53
- a.setModuleState(goog.ModuleType.ES6)});f(void 0,'goog.Dependency.callback_("'+g+'")');f(this.path,void 0);var h=goog.Dependency.registerCallback_(function(l){goog.Dependency.unregisterCallback_(h);a.registerEs6ModuleExports(e.path,l,goog.moduleLoaderState_.moduleName)});f(void 0,'import * as m from "'+this.path+'"; goog.Dependency.callback_("'+h+'", m)');var k=goog.Dependency.registerCallback_(function(){goog.Dependency.unregisterCallback_(k);a.clearModuleState();a.loaded()});f(void 0,'goog.Dependency.callback_("'+
54
- k+'")')}else goog.logToConsole_("Cannot use default debug loader outside of HTML documents."),a.pause()},goog.TransformedDependency=function(a,b,c,d,e){goog.Dependency.call(this,a,b,c,d,e);this.contents_=null;this.lazyFetch_=!goog.inHtmlDocument_()||!("noModule"in goog.global.document.createElement("script"))},goog.inherits(goog.TransformedDependency,goog.Dependency),goog.TransformedDependency.prototype.load=function(a){function b(){e.contents_=goog.loadFileSync_(e.path);e.contents_&&(e.contents_=
55
- e.transform(e.contents_),e.contents_&&(e.contents_+="\n//# sourceURL="+e.path))}function c(){e.lazyFetch_&&b();if(e.contents_){f&&a.setModuleState(goog.ModuleType.ES6);try{var l=e.contents_;e.contents_=null;goog.globalEval(goog.CLOSURE_EVAL_PREFILTER_.createScript(l));if(f)var m=goog.moduleLoaderState_.moduleName}finally{f&&a.clearModuleState()}f&&goog.global.$jscomp.require.ensure([e.getPathName()],function(){a.registerEs6ModuleExports(e.path,goog.global.$jscomp.require(e.getPathName()),m)});a.loaded()}}
56
- function d(){var l=goog.global.document,m=goog.Dependency.registerCallback_(function(){goog.Dependency.unregisterCallback_(m);c()}),n=goog.getScriptNonce_();n="<script"+(n?' nonce="'+n+'"':"")+">"+goog.protectScriptTag_('goog.Dependency.callback_("'+m+'");')+"\x3c/script>";l.write(goog.TRUSTED_TYPES_POLICY_?goog.TRUSTED_TYPES_POLICY_.createHTML(n):n)}var e=this;if(goog.global.CLOSURE_IMPORT_SCRIPT)b(),this.contents_&&goog.global.CLOSURE_IMPORT_SCRIPT("",this.contents_)?(this.contents_=null,a.loaded()):
57
- a.pause();else{var f=this.loadFlags.module==goog.ModuleType.ES6;this.lazyFetch_||b();var g=1<a.pending().length;if(goog.Dependency.defer_&&(g||goog.isDocumentLoading_()))a.defer(function(){c()});else{var h=goog.global.document;g=goog.inHtmlDocument_()&&("ActiveXObject"in goog.global||goog.isEdge_());if(f&&goog.inHtmlDocument_()&&goog.isDocumentLoading_()&&!g){goog.Dependency.defer_=!0;a.pause();var k=h.onreadystatechange;h.onreadystatechange=function(){"interactive"==h.readyState&&(h.onreadystatechange=
58
- k,c(),a.resume());"function"===typeof k&&k.apply(void 0,arguments)}}else goog.inHtmlDocument_()&&goog.isDocumentLoading_()?d():c()}}},goog.TransformedDependency.prototype.transform=function(a){},goog.PreTranspiledEs6ModuleDependency=function(a,b,c,d,e){goog.TransformedDependency.call(this,a,b,c,d,e)},goog.inherits(goog.PreTranspiledEs6ModuleDependency,goog.TransformedDependency),goog.PreTranspiledEs6ModuleDependency.prototype.transform=function(a){return a},goog.GoogModuleDependency=function(a,b,
51
+ b,c,d,e)},goog.inherits(goog.Es6ModuleDependency,goog.Dependency),goog.Es6ModuleDependency.prototype.load=function(a){function b(p,k){var m="",n=goog.getScriptNonce_();n&&(m=' nonce="'+n+'"');p=k?'<script type="module" crossorigin'+m+">"+k+"\x3c/script>":'<script type="module" crossorigin src="'+p+'"'+m+">\x3c/script>";d.write(goog.TRUSTED_TYPES_POLICY_?goog.TRUSTED_TYPES_POLICY_.createHTML(p):p)}function c(p,k){var m=d.createElement("script");m.defer=!0;m.async=!1;m.type="module";m.setAttribute("crossorigin",
52
+ !0);var n=goog.getScriptNonce_();n&&(m.nonce=n);k?m.text=goog.TRUSTED_TYPES_POLICY_?goog.TRUSTED_TYPES_POLICY_.createScript(k):k:m.src=goog.TRUSTED_TYPES_POLICY_?goog.TRUSTED_TYPES_POLICY_.createScriptURL(p):p;d.head.appendChild(m)}if(goog.global.CLOSURE_IMPORT_SCRIPT)goog.global.CLOSURE_IMPORT_SCRIPT(this.path)?a.loaded():a.pause();else if(goog.inHtmlDocument_()){var d=goog.global.document,e=this;if(goog.isDocumentLoading_()){var f=b;goog.Dependency.defer_=!0}else f=c;var g=goog.Dependency.registerCallback_(function(){goog.Dependency.unregisterCallback_(g);
53
+ a.setModuleState(goog.ModuleType.ES6)});f(void 0,'goog.Dependency.callback_("'+g+'")');f(this.path,void 0);var h=goog.Dependency.registerCallback_(function(p){goog.Dependency.unregisterCallback_(h);a.registerEs6ModuleExports(e.path,p,goog.moduleLoaderState_.moduleName)});f(void 0,'import * as m from "'+this.path+'"; goog.Dependency.callback_("'+h+'", m)');var l=goog.Dependency.registerCallback_(function(){goog.Dependency.unregisterCallback_(l);a.clearModuleState();a.loaded()});f(void 0,'goog.Dependency.callback_("'+
54
+ l+'")')}else goog.logToConsole_("Cannot use default debug loader outside of HTML documents."),a.pause()},goog.TransformedDependency=function(a,b,c,d,e){goog.Dependency.call(this,a,b,c,d,e);this.contents_=null;this.lazyFetch_=!goog.inHtmlDocument_()||!("noModule"in goog.global.document.createElement("script"))},goog.inherits(goog.TransformedDependency,goog.Dependency),goog.TransformedDependency.prototype.load=function(a){function b(){e.contents_=goog.loadFileSync_(e.path);e.contents_&&(e.contents_=
55
+ e.transform(e.contents_),e.contents_&&(e.contents_+="\n//# sourceURL="+e.path))}function c(){e.lazyFetch_&&b();if(e.contents_){f&&a.setModuleState(goog.ModuleType.ES6);try{var p=e.contents_;e.contents_=null;goog.globalEval(goog.CLOSURE_EVAL_PREFILTER_.createScript(p));if(f)var k=goog.moduleLoaderState_.moduleName}finally{f&&a.clearModuleState()}f&&goog.global.$jscomp.require.ensure([e.getPathName()],function(){a.registerEs6ModuleExports(e.path,goog.global.$jscomp.require(e.getPathName()),k)});a.loaded()}}
56
+ function d(){var p=goog.global.document,k=goog.Dependency.registerCallback_(function(){goog.Dependency.unregisterCallback_(k);c()}),m=goog.getScriptNonce_();m="<script"+(m?' nonce="'+m+'"':"")+">"+goog.protectScriptTag_('goog.Dependency.callback_("'+k+'");')+"\x3c/script>";p.write(goog.TRUSTED_TYPES_POLICY_?goog.TRUSTED_TYPES_POLICY_.createHTML(m):m)}var e=this;if(goog.global.CLOSURE_IMPORT_SCRIPT)b(),this.contents_&&goog.global.CLOSURE_IMPORT_SCRIPT("",this.contents_)?(this.contents_=null,a.loaded()):
57
+ a.pause();else{var f=this.loadFlags.module==goog.ModuleType.ES6;this.lazyFetch_||b();var g=1<a.pending().length;if(goog.Dependency.defer_&&(g||goog.isDocumentLoading_()))a.defer(function(){c()});else{var h=goog.global.document;g=goog.inHtmlDocument_()&&("ActiveXObject"in goog.global||goog.isEdge_());if(f&&goog.inHtmlDocument_()&&goog.isDocumentLoading_()&&!g){goog.Dependency.defer_=!0;a.pause();var l=h.onreadystatechange;h.onreadystatechange=function(){"interactive"==h.readyState&&(h.onreadystatechange=
58
+ l,c(),a.resume());"function"===typeof l&&l.apply(void 0,arguments)}}else goog.inHtmlDocument_()&&goog.isDocumentLoading_()?d():c()}}},goog.TransformedDependency.prototype.transform=function(a){},goog.PreTranspiledEs6ModuleDependency=function(a,b,c,d,e){goog.TransformedDependency.call(this,a,b,c,d,e)},goog.inherits(goog.PreTranspiledEs6ModuleDependency,goog.TransformedDependency),goog.PreTranspiledEs6ModuleDependency.prototype.transform=function(a){return a},goog.GoogModuleDependency=function(a,b,
59
59
  c,d,e){goog.TransformedDependency.call(this,a,b,c,d,e)},goog.inherits(goog.GoogModuleDependency,goog.TransformedDependency),goog.GoogModuleDependency.prototype.transform=function(a){return goog.LOAD_MODULE_USING_EVAL&&void 0!==goog.global.JSON?"goog.loadModule("+goog.global.JSON.stringify(a+"\n//# sourceURL="+this.path+"\n")+");":'goog.loadModule(function(exports) {"use strict";'+a+"\n;return exports});\n//# sourceURL="+this.path+"\n"},goog.DebugLoader_.prototype.addDependency=function(a,b,c,d){b=
60
60
  b||[];a=a.replace(/\\/g,"/");var e=goog.normalizePath_(goog.basePath+a);d&&"boolean"!==typeof d||(d=d?{module:goog.ModuleType.GOOG}:{});c=this.factory_.createDependency(e,a,b,c,d);this.dependencies_[e]=c;for(c=0;c<b.length;c++)this.idToPath_[b[c]]=e;this.idToPath_[a]=e},goog.DependencyFactory=function(){},goog.DependencyFactory.prototype.createDependency=function(a,b,c,d,e){return e.module==goog.ModuleType.GOOG?new goog.GoogModuleDependency(a,b,c,d,e):e.module==goog.ModuleType.ES6?goog.ASSUME_ES_MODULES_TRANSPILED?
61
61
  new goog.PreTranspiledEs6ModuleDependency(a,b,c,d,e):new goog.Es6ModuleDependency(a,b,c,d,e):new goog.Dependency(a,b,c,d,e)},goog.debugLoader_=new goog.DebugLoader_,goog.loadClosureDeps=function(){goog.debugLoader_.loadClosureDeps()},goog.setDependencyFactory=function(a){goog.debugLoader_.setDependencyFactory(a)},goog.TRUSTED_TYPES_POLICY_=goog.TRUSTED_TYPES_POLICY_NAME?goog.createTrustedTypesPolicy(goog.TRUSTED_TYPES_POLICY_NAME+"#base"):null,goog.global.CLOSURE_NO_DEPS||goog.debugLoader_.loadClosureDeps(),
@@ -65,46 +65,20 @@ goog.bootstrap=function(a,b){goog.debugLoader_.bootstrap(a,b)});if(!COMPILED){va
65
65
  Copyright 2016 Google LLC
66
66
  SPDX-License-Identifier: Apache-2.0
67
67
  */
68
- goog.asserts=class{static assert(a,b){}};goog.asserts.ENABLE_ASSERTS=goog.DEBUG;goog.asserts.ENABLE_ASSERTS&&console.assert&&console.assert.bind&&(goog.asserts.assert=console.assert.bind(console));var shakaDemo={MessageIds:{ADS:"DEMO_ADS",AUDIO_ONLY:"DEMO_AUDIO_ONLY",CAPTIONS:"DEMO_CAPTIONS",CONTAINERLESS:"DEMO_CONTAINERLESS",DASH:"DEMO_DASH",HIGH_DEFINITION:"DEMO_HIGH_DEFINITION",HLS:"DEMO_HLS",LCEVC:"DEMO_LCEVC",LIVE:"DEMO_LIVE",MP2TS:"DEMO_MP2TS",MP4:"DEMO_MP4",MSS:"DEMO_MSS",MULTIPLE_LANGUAGES:"DEMO_MULTIPLE_LANGUAGES",OFFLINE:"DEMO_OFFLINE",STORED:"DEMO_STORED",SUBTITLES:"DEMO_SUBTITLES",SURROUND:"DEMO_SURROUND",THUMBNAILS:"DEMO_THUMBNAILS",TRICK_MODE:"DEMO_TRICK_MODE",ULTRA_HIGH_DEFINITION:"DEMO_ULTRA_HIGH_DEFINITION",
69
- VOD:"DEMO_VOD",WEBM:"DEMO_WEBM",XLINK:"DEMO_XLINK",AES128:"DEMO_AES128",CLEAR:"DEMO_CLEAR",CLEAR_KEY:"DEMO_CLEAR_KEY",FAIRPLAY:"DEMO_FAIRPLAY",PLAYREADY:"DEMO_PLAYREADY",WIDEVINE:"DEMO_WIDEVINE",APPLE:"DEMO_APPLE",AXINOM:"DEMO_AXINOM",AZURE_MEDIA_SERVICES:"DEMO_AZURE_MEDIA_SERVICES",BITCODIN:"DEMO_BITCODIN",CUSTOM:"DEMO_CUSTOM",DASH_IF:"DEMO_DASH_IF",GPAC:"DEMO_GPAC",IRT:"DEMO_IRT",METACDN:"DEMO_METACDN",MICROSOFT:"DEMO_MICROSOFT",NIMBLE_STREAMER:"DEMO_NIMBLE_STREAMER",SHAKA:"DEMO_SHAKA",UNIFIED_STREAMING:"DEMO_UNIFIED_STREAMING",
70
- UPLYNK:"DEMO_UPLYNK",ALL_CONTENT:"DEMO_ALL_CONTENT",CDN_HEADER:"DEMO_CDN_HEADER",COMPILED_DEBUG:"DEMO_COMPILED_DEBUG",COMPILED_RELEASE:"DEMO_COMPILED_RELEASE",CONFIG:"DEMO_CONFIG",CUSTOM_CONTENT:"DEMO_CUSTOM_CONTENT",DEMO_MODE_HEADER:"DEMO_DEMO_MODE_HEADER",DOCUMENTATION:"DEMO_DOCUMENTATION",HOME:"DEMO_HOME",JSDELIVR:"DEMO_JSDELIVR",LIBRARIES:"DEMO_LIBRARIES",LICENSE:"DEMO_LICENSE",NPM:"DEMO_NPM",PROJECT_LINKS_HEADER:"DEMO_PROJECT_LINKS_HEADER",REPORT_BUG:"DEMO_REPORT_BUG",SOURCE:"DEMO_SOURCE",SUPPORT:"DEMO_SUPPORT",
71
- UNCOMPILED:"DEMO_UNCOMPILED",FAILURE_MISC:"DEMO_FAILURE_MISC",FAILURE_NO_BROWSER_SUPPORT:"DEMO_FAILURE_NO_BROWSER_SUPPORT",PLAY:"DEMO_PLAY",PROMPT_NO:"DEMO_PROMPT_NO",PROMPT_YES:"DEMO_PROMPT_YES",UNSUPPORTED_DISABLED:"DEMO_UNSUPPORTED_DISABLED",UNSUPPORTED_NO_DASH_SUPPORT:"DEMO_UNSUPPORTED_NO_DASH_SUPPORT",UNSUPPORTED_NO_DOWNLOAD:"DEMO_UNSUPPORTED_NO_DOWNLOAD",UNSUPPORTED_NO_FORMAT_SUPPORT:"DEMO_UNSUPPORTED_NO_FORMAT_SUPPORT",UNSUPPORTED_NO_HLS_SUPPORT:"DEMO_UNSUPPORTED_NO_HLS_SUPPORT",UNSUPPORTED_NO_OFFLINE:"DEMO_UNSUPPORTED_NO_OFFLINE",
72
- UNSUPPORTED_NO_KEY_SUPPORT:"DEMO_UNSUPPORTED_NO_KEY_SUPPORT",UNSUPPORTED_NO_LICENSE_SUPPORT:"DEMO_UNSUPPORTED_NO_LICENSE_SUPPORT",UNSUPPORTED_NO_MSS_SUPPORT:"DEMO_UNSUPPORTED_NO_MSS_SUPPORT",VISUALIZER_AUTO_SCREENSHOT_TOGGLE:"DEMO_VISUALIZER_AUTO_SCREENSHOT_TOGGLE",VISUALIZER_BUTTON:"DEMO_VISUALIZER_BUTTON",VISUALIZER_SCREENSHOT_BUTTON:"DEMO_VISUALIZER_SCREENSHOT_BUTTON",DELETE_STORED_PROMPT:"DEMO_DELETE_STORED_PROMPT",UNSUPPORTED:"DEMO_UNSUPPORTED",FRONT_INTRO_DISMISS:"DEMO_FRONT_INTRO_DISMISS",
73
- FRONT_INTRO_ONE:"DEMO_FRONT_INTRO_ONE",FRONT_INTRO_TWO:"DEMO_FRONT_INTRO_TWO",AD_TAG_URL:"DEMO_AD_TAG_URL",ADS_TAB:"DEMO_ADS_TAB",IMA_ASSET_KEY:"DEMO_IMA_ASSET_KEY",IMA_CONTENT_SRC_ID:"DEMO_IMA_CONTENT_SRC_ID",IMA_MANIFEST_TYPE:"DEMO_IMA_MANIFEST_TYPE",IMA_VIDEO_ID:"DEMO_IMA_VIDEO_ID",CANCEL_BUTTON:"DEMO_CANCEL_BUTTON",CUSTOM_INTRO_ONE:"DEMO_CUSTOM_INTRO_ONE",CUSTOM_INTRO_TWO:"DEMO_CUSTOM_INTRO_TWO",CUSTOM_INTRO_THREE:"DEMO_CUSTOM_INTRO_THREE",DELETE_CUSTOM:"DEMO_DELETE_CUSTOM",DELETE_CUSTOM_PROMPT:"DEMO_DELETE_CUSTOM_PROMPT",
74
- DRM_SYSTEM:"DEMO_DRM_SYSTEM",DRM_TAB:"DEMO_DRM_TAB",EDIT_CUSTOM:"DEMO_EDIT_CUSTOM",HLS_FULL_MIME_TYPE:"DEMO_HLS_FULL_MIME_TYPE",HLS_TAB:"DEMO_HLS_TAB",HEADERS_TAB:"DEMO_HEADERS_TAB",ICON_URL:"DEMO_ICON_URL",LICENSE_CERTIFICATE_URL:"DEMO_LICENSE_CERTIFICATE_URL",LICENSE_HEADER_NAME:"DEMO_LICENSE_HEADER_NAME",LICENSE_HEADER_TITLE:"DEMO_LICENSE_HEADER_TITLE",LICENSE_HEADER_VALUE:"DEMO_LICENSE_HEADER_VALUE",LICENSE_SERVER_URL:"DEMO_LICENSE_SERVER_URL",MAIN_TAB:"DEMO_MAIN_TAB",MANIFEST_URL:"DEMO_MANIFEST_URL",
75
- MANIFEST_URL_ERROR:"DEMO_MANIFEST_URL_ERROR",NAME:"DEMO_NAME",NAME_ERROR:"DEMO_NAME_ERROR",EXTRA_SHAKA_PLAYER_CONFIG:"DEMO_EXTRA_SHAKA_PLAYER_CONFIG",EXTRA_TAB:"DEMO_EXTRA_TAB",INVALID_JSON_CONFIG_ERROR:"DEMO_INVALID_JSON_CONFIG_ERROR",MIME_TYPE:"DEMO_MIME_TYPE",SAVE_BUTTON:"DEMO_SAVE_BUTTON",AD_SEARCH:"DEMO_AD_SEARCH",AUDIO_ONLY_SEARCH:"DEMO_AUDIO_ONLY_SEARCH",CONTAINER_SEARCH:"DEMO_CONTAINER_SEARCH",DRM_SEARCH:"DEMO_DRM_SEARCH",HIGH_DEFINITION_SEARCH:"DEMO_HIGH_DEFINITION_SEARCH",LIVE_SEARCH:"DEMO_LIVE_SEARCH",
76
- MANIFEST_SEARCH:"DEMO_MANIFEST_SEARCH",OFFLINE_SEARCH:"DEMO_OFFLINE_SEARCH",STORED_SEARCH:"DEMO_STORED_SEARCH",SUBTITLES_SEARCH:"DEMO_SUBTITLES_SEARCH",SURROUND_SEARCH:"DEMO_SURROUND_SEARCH",SOURCE_SEARCH:"DEMO_SOURCE_SEARCH",TRICK_MODE_SEARCH:"DEMO_TRICK_MODE_SEARCH",XLINK_SEARCH:"DEMO_XLINK_SEARCH",ADAPTATION_RESTRICTIONS_SECTION_HEADER:"DEMO_ADAPTATION_RESTRICTIONS_SECTION_HEADER",ADAPTATION_SECTION_HEADER:"DEMO_ADAPTATION_SECTION_HEADER",ADS_SECTION_HEADER:"DEMO_ADS_SECTION_HEADER",ALWAYS_STREAM_TEXT:"DEMO_ALWAYS_STREAM_TEXT",
77
- ALWAYS_STREAM_TEXT_WARNING:"DEMO_ALWAYS_STREAM_TEXT_WARNING",AUDIO_CHANNEL_COUNT:"DEMO_AUDIO_CHANNEL_COUNT",AUDIO_LANGUAGE:"DEMO_AUDIO_LANGUAGE",AUDIO_LABEL:"DEMO_AUDIO_LABEL",AUDIO_ROBUSTNESS:"DEMO_AUDIO_ROBUSTNESS",AUTO_CORRECT_DASH_DRIFT:"DEMO_AUTO_CORRECT_DASH_DRIFT",AUTO_LOW_LATENCY:"DEMO_AUTO_LOW_LATENCY",AUTO_SHOW_TEXT:"DEMO_AUTO_SHOW_TEXT",AUTO_SHOW_TEXT_NEVER:"DEMO_AUTO_SHOW_TEXT_NEVER",AUTO_SHOW_TEXT_ALWAYS:"DEMO_AUTO_SHOW_TEXT_ALWAYS",AUTO_SHOW_TEXT_IF_PREFERRED_TEXT_LANGUAGE:"DEMO_AUTO_SHOW_TEXT_IF_PREFERRED_TEXT_LANGUAGE",
78
- AUTO_SHOW_TEXT_IF_SUBTITLES_MAY_BE_NEEDED:"DEMO_AUTO_SHOW_TEXT_IF_SUBTITLES_MAY_BE_NEEDED",AVAILABILITY_WINDOW_OVERRIDE:"DEMO_AVAILABILITY_WINDOW_OVERRIDE",BACKOFF_FACTOR:"DEMO_BACKOFF_FACTOR",BASE_DELAY:"DEMO_BASE_DELAY",BANDWIDTH_DOWNGRADE:"DEMO_BANDWIDTH_DOWNGRADE",BANDWIDTH_ESTIMATE:"DEMO_BANDWIDTH_ESTIMATE",BANDWIDTH_UPGRADE:"DEMO_BANDWIDTH_UPGRADE",BUFFER_BEHIND:"DEMO_BUFFER_BEHIND",BUFFERING_GOAL:"DEMO_BUFFERING_GOAL",CLEAR_BUFFER_SWITCH:"DEMO_CLEAR_BUFFER_SWITCH",CLOCK_SYNC_URI:"DEMO_CLOCK_SYNC_URI",
79
- CMCD_SECTION_HEADER:"DEMO_CMCD_SECTION_HEADER",CONNECTION_TIMEOUT:"DEMO_CONNECTION_TIMEOUT",CONTENT_ID:"DEMO_CONTENT_ID",CUSTOM_PLAYHEAD_TRACKER:"DEMO_CUSTOM_PLAYHEAD_TRACKER",DASH_SEQUENCE_MODE:"DEMO_DASH_SEQUENCE_MODE",DEFAULT_AUDIO_CODEC:"DEMO_DEFAULT_AUDIO_CODEC",DEFAULT_PRESENTATION_DELAY:"DEMO_DEFAULT_PRESENTATION_DELAY",DEFAULT_VIDEO_CODEC:"DEMO_DEFAULT_VIDEO_CODEC",DELAY_LICENSE:"DEMO_DELAY_LICENSE",DISABLE_AUDIO:"DEMO_DISABLE_AUDIO",DISABLE_TEXT:"DEMO_DISABLE_TEXT",DISABLE_THUMBNAILS:"DEMO_DISABLE_THUMBNAILS",
80
- DISABLE_VIDEO:"DEMO_DISABLE_VIDEO",DISABLE_XLINK_PROCESSING:"DEMO_DISABLE_XLINK_PROCESSING",DISPATCH_ALL_EMSG_BOXES:"DEMO_DISPATCH_ALL_EMSG_BOXES",OBSERVE_QUALITY_CHANGES:"DEMO_OBSERVE_QUALITY_CHANGES",DRM_RETRY_SECTION_HEADER:"DEMO_DRM_RETRY_SECTION_HEADER",DRM_SECTION_HEADER:"DEMO_DRM_SECTION_HEADER",DRM_SESSION_TYPE:"DEMO_DRM_SESSION_TYPE",DURATION_BACKOFF:"DEMO_DURATION_BACKOFF",ENABLED:"DEMO_ENABLED",FAST_HALF_LIFE:"DEMO_FAST_HALF_LIFE",FORCE_HTTPS:"DEMO_FORCE_HTTPS",FORCE_TRANSMUX:"DEMO_FORCE_TRANSMUX",
81
- INSERT_FAKE_ENCRYPTION_IN_INIT:"DEMO_INSERT_FAKE_ENCRYPTION_IN_INIT",FUZZ_FACTOR:"DEMO_FUZZ_FACTOR",GAP_DETECTION_THRESHOLD:"DEMO_GAP_DETECTION_THRESHOLD",GAP_JUMP_TIMER_TIME:"DEMO_GAP_JUMP_TIMER_TIME",HDR_LEVEL:"DEMO_HDR_LEVEL",HDR_LEVEL_AUTO:"DEMO_HDR_LEVEL_AUTO",HDR_LEVEL_HLG:"DEMO_HDR_LEVEL_HLG",HDR_LEVEL_NONE:"DEMO_HDR_LEVEL_NONE",HDR_LEVEL_PQ:"DEMO_HDR_LEVEL_PQ",HDR_LEVEL_SDR:"DEMO_HDR_LEVEL_SDR",HLS_SEQUENCE_MODE:"DEMO_HLS_SEQUENCE_MODE",IGNORE_DASH_EMPTY_ADAPTATION_SET:"DEMO_IGNORE_DASH_EMPTY_ADAPTATION_SET",
82
- IGNORE_DASH_DRM:"DEMO_IGNORE_DASH_DRM",IGNORE_DASH_MAX_SEGMENT_DURATION:"DEMO_IGNORE_DASH_MAX_SEGMENT_DURATION",IGNORE_DASH_SUGGESTED_PRESENTATION_DELAY:"DEMO_IGNORE_DASH_SUGGESTED_PRESENTATION_DELAY",IGNORE_DEVICE_PIXEL_RATIO:"DEMO_IGNORE_DEVICE_PIXEL_RATIO",IGNORE_HLS_IMAGE_FAILURES:"DEMO_IGNORE_HLS_IMAGE_FAILURES",IGNORE_HLS_TEXT_FAILURES:"DEMO_IGNORE_HLS_TEXT_FAILURES",IGNORE_MANIFEST_PROGRAM_DATE_TIME:"DEMO_IGNORE_MANIFEST_PROGRAM_DATE_TIME",IGNORE_MANIFEST_TIMESTAMPS_IN_SEGMENTS_MODE:"DEMO_IGNORE_MANIFEST_TIMESTAMPS_IN_SEGMENTS_MODE",
83
- IGNORE_MIN_BUFFER_TIME:"DEMO_IGNORE_MIN_BUFFER_TIME",IGNORE_TEXT_FAILURES:"DEMO_IGNORE_TEXT_FAILURES",INACCURATE_MANIFEST_TOLERANCE:"DEMO_INACCURATE_MANIFEST_TOLERANCE",INITIAL_SEGMENT_LIMIT:"DEMO_INITIAL_SEGMENT_LIMIT",LANGUAGE_SECTION_HEADER:"DEMO_LANGUAGE_SECTION_HEADER",LCEVC_DRAW_LOGO:"DEMO_LCEVC_DRAW_LOGO",LCEVC_DYNAMIC_PERFORMANCE_SCALING:"DEMO_LCEVC_DYNAMIC_PERFORMANCE_SCALING",LCEVC_LOG_LEVEL:"DEMO_LCEVC_LOG_LEVEL",LCEVC_SECTION_HEADER:"DEMO_LCEVC_SECTION_HEADER",LIVE_SEGMENTS_DELAY:"DEMO_LIVE_SEGMENTS_DELAY",
84
- LIVE_SYNC:"DEMO_LIVE_SYNC",LIVE_SYNC_MAX_LATENCY:"DEMO_LIVE_SYNC_MAX_LATENCY",LIVE_SYNC_PLAYBACK_RATE:"DEMO_LIVE_SYNC_PLAYBACK_RATE",LOG_LEVEL:"DEMO_LOG_LEVEL",LOG_LEVEL_DEBUG:"DEMO_LOG_LEVEL_DEBUG",LOG_LEVEL_INFO:"DEMO_LOG_LEVEL_INFO",LOG_LEVEL_V:"DEMO_LOG_LEVEL_V",LOG_LEVEL_VV:"DEMO_LOG_LEVEL_VV",LOG_LICENSE_EXCHANGE:"DEMO_LOG_LICENSE_EXCHANGE",LOW_LATENCY:"DEMO_LOW_LATENCY",MANIFEST_RETRY_SECTION_HEADER:"DEMO_MANIFEST_RETRY_SECTION_HEADER",MANIFEST_SECTION_HEADER:"DEMO_MANIFEST_SECTION_HEADER",
85
- MAX_ATTEMPTS:"DEMO_MAX_ATTEMPTS",MAX_BANDWIDTH:"DEMO_MAX_BANDWIDTH",MAX_DISABLED_TIME:"DEMO_MAX_DISABLED_TIME",MAX_FRAMERATE:"DEMO_MAX_FRAMERATE",MAX_HEIGHT:"DEMO_MAX_HEIGHT",MAX_PIXELS:"DEMO_MAX_PIXELS",MAX_WIDTH:"DEMO_MAX_WIDTH",MEDIA_SOURCE_SECTION_HEADER:"DEMO_MEDIA_SOURCE_SECTION_HEADER",MIN_BANDWIDTH:"DEMO_MIN_BANDWIDTH",MIN_BYTES:"DEMO_MIN_BYTES",MIN_HDCP_VERSION:"DEMO_MIN_HDCP_VERSION",MIN_FRAMERATE:"DEMO_MIN_FRAMERATE",MIN_HEIGHT:"DEMO_MIN_HEIGHT",MIN_PIXELS:"DEMO_MIN_PIXELS",MIN_TOTAL_BYTES:"DEMO_MIN_TOTAL_BYTES",
86
- MIN_WIDTH:"DEMO_MIN_WIDTH",MSS_SEQUENCE_MODE:"DEMO_MSS_SEQUENCE_MODE",NETWORK_INFORMATION:"DEMO_NETWORK_INFORMATION",NUMBER_DECIMAL_WARNING:"DEMO_NUMBER_DECIMAL_WARNING",NUMBER_INTEGER_WARNING:"DEMO_NUMBER_INTEGER_WARNING",NUMBER_NONZERO_DECIMAL_WARNING:"DEMO_NUMBER_NONZERO_DECIMAL_WARNING",NUMBER_NONZERO_INTEGER_WARNING:"DEMO_NUMBER_NONZERO_INTEGER_WARNING",NUMBER_OF_PARALLEL_DOWNLOADS:"DEMO_NUMBER_OF_PARALLEL_DOWNLOADS",OFFLINE_SECTION_HEADER:"DEMO_OFFLINE_SECTION_HEADER",PARSE_INBAND_PSSH_ENABLED:"DEMO_PARSE_INBAND_PSSH_ENABLED",
87
- PREFER_FORCED_SUBS:"DEMO_PREFER_FORCED_SUBS",PREFER_NATIVE_HLS:"DEMO_PREFER_NATIVE_HLS",REBUFFERING_GOAL:"DEMO_REBUFFERING_GOAL",RESTRICT_TO_ELEMENT_SIZE:"DEMO_RESTRICT_TO_ELEMENT_SIZE",RESTRICT_TO_SCREEN_SIZE:"DEMO_RESTRICT_TO_SCREEN_SIZE",RESTRICTIONS_SECTION_HEADER:"DEMO_RESTRICTIONS_SECTION_HEADER",SAFE_MARGIN_SWITCH:"DEMO_SAFE_MARGIN_SWITCH",SAFE_SEEK_OFFSET:"DEMO_SAFE_SEEK_OFFSET",SAFE_SKIP_DISTANCE:"DEMO_SAFE_SKIP_DISTANCE",SEGMENT_RELATIVE_VTT_TIMING:"DEMO_SEGMENT_RELATIVE_VTT_TIMING",SESSION_ID:"DEMO_SESSION_ID",
88
- SHAKA_CONTROLS:"DEMO_SHAKA_CONTROLS",SLOW_HALF_LIFE:"DEMO_SLOW_HALF_LIFE",SOURCE_BUFFER_EXTRA_FEATURES:"DEMO_SOURCE_BUFFER_EXTRA_FEATURES",STALL_DETECTOR_ENABLED:"DEMO_STALL_DETECTOR_ENABLED",STALL_THRESHOLD:"DEMO_STALL_THRESHOLD",STALL_TIMEOUT:"DEMO_STALL_TIMEOUT",START_AT_SEGMENT_BOUNDARY:"DEMO_START_AT_SEGMENT_BOUNDARY",STREAMING_RETRY_SECTION_HEADER:"DEMO_STREAMING_RETRY_SECTION_HEADER",STREAMING_SECTION_HEADER:"DEMO_STREAMING_SECTION_HEADER",SWITCH_INTERVAL:"DEMO_SWITCH_INTERVAL",TEXT_LANGUAGE:"DEMO_TEXT_LANGUAGE",
89
- TEXT_ROLE:"DEMO_TEXT_ROLE",TIMEOUT:"DEMO_TIMEOUT",TRICK_PLAY_CONTROLS:"DEMO_TRICK_PLAY_CONTROLS",TRICK_PLAY_CONTROLS_WARNING:"DEMO_TRICK_PLAY_CONTROLS_WARNING",UI_LOCALE:"DEMO_UI_LOCALE",UPDATE_EXPIRATION_TIME:"DEMO_UPDATE_EXPIRATION_TIME",UPDATE_INTERVAL_SECONDS:"DEMO_UPDATE_INTERVAL_SECONDS",USE_HEADERS:"DEMO_USE_HEADERS",USE_NATIVE_HLS_SAFARI:"DEMO_USE_NATIVE_HLS_SAFARI",USE_PERSISTENT_LICENSES:"DEMO_USE_PERSISTENT_LICENSES",USE_SAFARI_BEHAVIOR_FOR_LIVE:"DEMO_USE_SAFARI_BEHAVIOR_FOR_LIVE",VIDEO_ROBUSTNESS:"DEMO_VIDEO_ROBUSTNESS",
90
- VNOVA:"DEMO_VNOVA",XLINK_FAIL_GRACEFULLY:"DEMO_XLINK_FAIL_GRACEFULLY",SEGMENT_PREFETCH_LIMIT:"DEMO_SEGMENT_PREFETCH_LIMIT"}};const ShakaDemoAssetInfo=class{constructor(a,b,c,d){this.name=a;this.shortName="";this.iconUri=b;this.manifestUri=c;this.source=d;this.disabled=this.focus=!1;this.extraText=[];this.extraThumbnail=[];this.description=this.certificateUri=null;this.isFeatured=!1;this.drm=[shakaAssets.KeySystem.CLEAR];this.features=[shakaAssets.Feature.VOD];this.licenseServers=new Map;this.licenseRequestHeaders=new Map;this.responseFilter=this.requestFilter=null;this.clearKeys=new Map;this.mediaPlaylistFullMimeType=this.mimeType=
91
- this.imaManifestType=this.imaContentSrcId=this.imaAssetKey=this.imaVideoId=this.adTagUri=this.extraConfig=null;this.storedProgress=1}addDescription(a){this.description=a;return this}addCertificateUri(a){this.certificateUri=a;return this}static caseLessAlphaComparator_(a,b){return a.toLowerCase()<b.toLowerCase()?-1:a.toLowerCase()>b.toLowerCase()?1:0}addFeature(a){const b=shakaAssets.Feature;a==b.LIVE&&(this.features=this.features.filter(c=>c!=b.VOD));this.features.push(a);this.features.sort(ShakaDemoAssetInfo.caseLessAlphaComparator_);
92
- return this}addKeySystem(a){this.isClear()&&(this.drm=[]);this.drm.push(a);this.drm.sort(ShakaDemoAssetInfo.caseLessAlphaComparator_);return this}isClear(){return 1==this.drm.length&&this.drm[0]==shakaAssets.KeySystem.CLEAR}isAes128(){return 1==this.drm.length&&this.drm[0]==shakaAssets.KeySystem.AES128}setMediaPlaylistFullMimeType(a){this.mediaPlaylistFullMimeType=a;return this}setExtraConfig(a){this.extraConfig=a;return this}setMimeType(a){this.mimeType=a;return this}setRequestFilter(a){this.requestFilter=
93
- a;return this}setResponseFilter(a){this.responseFilter=a;return this}addLicenseServer(a,b){this.licenseServers.set(a,b);return this}setAdTagUri(a){this.adTagUri=a;this.addFeature(shakaAssets.Feature.ADS);return this}setIMAContentSourceId(a){this.imaContentSrcId=a;this.features.includes(shakaAssets.Feature.ADS)||this.addFeature(shakaAssets.Feature.ADS);return this}setIMAVideoId(a){this.imaVideoId=a;this.features.includes(shakaAssets.Feature.ADS)||this.addFeature(shakaAssets.Feature.ADS);return this}setIMAAssetKey(a){this.imaAssetKey=
94
- a;this.features.includes(shakaAssets.Feature.ADS)||this.addFeature(shakaAssets.Feature.ADS);return this}setIMAManifestType(a){this.imaManifestType=a;this.features.includes(shakaAssets.Feature.ADS)||this.addFeature(shakaAssets.Feature.ADS);return this}addLicenseRequestHeader(a,b){this.licenseRequestHeaders.set(a,b);return this}addExtraText(a){this.extraText.push(a);return this}addExtraThumbnail(a){this.extraThumbnail.push(a);return this}markAsFocused(){this.focus=!0;return this}markAsFeatured(a){this.isFeatured=
95
- !0;this.shortName=a||this.shortName;return this}markAsDisabled(){this.disabled=!0;return this}toJSON(){const a={};for(const b in this){const c=this[b];if(c instanceof Map){const d={__type__:"map"};for(const e of c.entries())d[e[0]]=e[1];a[b]=d}else a[b]=c}return a}applyFilters(a){a.clearAllRequestFilters();a.clearAllResponseFilters();this.licenseRequestHeaders.size&&a.registerRequestFilter((b,c,d)=>this.addLicenseRequestHeaders_(this.licenseRequestHeaders,b,c));this.requestFilter&&a.registerRequestFilter(this.requestFilter);
96
- this.responseFilter&&a.registerResponseFilter(this.responseFilter)}getConfiguration(){const a={drm:{advanced:{}},manifest:{dash:{},hls:{}}};if(this.extraConfig)for(const b in this.extraConfig)a[b]=this.extraConfig[b];this.mediaPlaylistFullMimeType&&(a.manifest.hls.mediaPlaylistFullMimeType=this.mediaPlaylistFullMimeType);this.licenseServers.size&&(a.drm.servers=a.drm.servers||{},this.licenseServers.forEach((b,c)=>{a.drm.servers[c]=b}));this.clearKeys.size&&(a.drm.clearKeys=a.drm.clearKeys||{},this.clearKeys.forEach((b,
97
- c)=>{a.drm.clearKeys[c]=b}));return a}addLicenseRequestHeaders_(a,b,c){b==shaka.net.NetworkingEngine.RequestType.LICENSE&&a.forEach((d,e)=>{c.headers[e]=d})}isStored(){return null!=this.storedContent}static makeBlankAsset(){return new ShakaDemoAssetInfo("","","",shakaAssets.Source.CUSTOM)}static fromJSON(a){const b={};for(const c in a){const d=a[c];if(d&&"object"==typeof d&&"map"==d.__type__){const e=new Map;for(const f in d)"__type__"!=f&&e.set(f,d[f]);b[c]=e}else b[c]=d}a=ShakaDemoAssetInfo.makeBlankAsset();
98
- Object.assign(a,b);return a}};const shakaAssets={};
99
- shakaAssets.Source={CUSTOM:shakaDemo.MessageIds.CUSTOM,SHAKA:shakaDemo.MessageIds.SHAKA,AXINOM:shakaDemo.MessageIds.AXINOM,UNIFIED_STREAMING:shakaDemo.MessageIds.UNIFIED_STREAMING,DASH_IF:shakaDemo.MessageIds.DASH_IF,BITCODIN:shakaDemo.MessageIds.BITCODIN,METACDN:shakaDemo.MessageIds.METACDN,NIMBLE_STREAMER:shakaDemo.MessageIds.NIMBLE_STREAMER,AZURE_MEDIA_SERVICES:shakaDemo.MessageIds.AZURE_MEDIA_SERVICES,GPAC:shakaDemo.MessageIds.GPAC,UPLYNK:shakaDemo.MessageIds.UPLYNK,APPLE:shakaDemo.MessageIds.APPLE,IRT:shakaDemo.MessageIds.IRT,
100
- MICROSOFT:shakaDemo.MessageIds.MICROSOFT,VNOVA:shakaDemo.MessageIds.VNOVA};shakaAssets.KeySystem={CLEAR_KEY:shakaDemo.MessageIds.CLEAR_KEY,FAIRPLAY:shakaDemo.MessageIds.FAIRPLAY,PLAYREADY:shakaDemo.MessageIds.PLAYREADY,WIDEVINE:shakaDemo.MessageIds.WIDEVINE,AES128:shakaDemo.MessageIds.AES128,CLEAR:shakaDemo.MessageIds.CLEAR};
101
- shakaAssets.AdTag={SINGLE_LINEAR_AD:"https://pubads.g.doubleclick.net/gampad/ads?sz=640x480&iu=/124319096/external/single_ad_samples&ciu_szs=300x250&impl=s&gdfp_req=1&env=vp&output=vast&unviewed_position_start=1&cust_params=deployment%3Ddevsite%26sample_ct%3Dlinear&correlator=",SINGLE_NON_LINEAR_AD:"https://pubads.g.doubleclick.net/gampad/ads?sz=480x70&iu=/124319096/external/single_ad_samples&ciu_szs=300x250 &impl=s&gdfp_req=1&env=vp&output=vast&unviewed_position_start=1&cust_params=deployment%3Ddevsite%26sample_ct%3Dnonlinear&correlator=",
102
- SINGLE_SKIPPABLE_AD:"https://pubads.g.doubleclick.net/gampad/ads?sz=640x480&iu=/124319096/external/single_ad_samples&ciu_szs=300x250&impl=s&gdfp_req=1&env=vp&output=vast&unviewed_position_start=1&cust_params=deployment%3Ddevsite%26sample_ct%3Dskippablelinear&correlator=",AD_POD_PREROLL_MIDROLL_POSTROLL:"https://pubads.g.doubleclick.net/gampad/ads?sz=640x480&iu=/124319096/external/ad_rule_samples&ciu_szs=300x250&ad_rule=1&impl=s&gdfp_req=1&env=vp&output=vmap&unviewed_position_start=1&cust_params=deployment%3Ddevsite%26sample_ar%3Dpremidpostpod&cmsid=496&vid=short_onecue&correlator="};
103
- shakaAssets.identifierForKeySystem=a=>{const b=shakaAssets.KeySystem;switch(a){case b.CLEAR_KEY:return"org.w3.clearkey";case b.FAIRPLAY:return"com.apple.fps";case b.PLAYREADY:return"com.microsoft.playready";case b.WIDEVINE:return"com.widevine.alpha";case b.AES128:return"aes128";default:return"no drm protection"}};
104
- shakaAssets.Feature={TRICK_MODE:shakaDemo.MessageIds.TRICK_MODE,XLINK:shakaDemo.MessageIds.XLINK,SUBTITLES:shakaDemo.MessageIds.SUBTITLES,CAPTIONS:shakaDemo.MessageIds.CAPTIONS,MULTIPLE_LANGUAGES:shakaDemo.MessageIds.MULTIPLE_LANGUAGES,AUDIO_ONLY:shakaDemo.MessageIds.AUDIO_ONLY,OFFLINE:shakaDemo.MessageIds.OFFLINE,STORED:shakaDemo.MessageIds.STORED,ADS:shakaDemo.MessageIds.ADS,LIVE:shakaDemo.MessageIds.LIVE,VOD:shakaDemo.MessageIds.VOD,WEBM:shakaDemo.MessageIds.WEBM,MP4:shakaDemo.MessageIds.MP4,MP2TS:shakaDemo.MessageIds.MP2TS,
105
- CONTAINERLESS:shakaDemo.MessageIds.CONTAINERLESS,HIGH_DEFINITION:shakaDemo.MessageIds.HIGH_DEFINITION,ULTRA_HIGH_DEFINITION:shakaDemo.MessageIds.ULTRA_HIGH_DEFINITION,SURROUND:shakaDemo.MessageIds.SURROUND,DASH:shakaDemo.MessageIds.DASH,HLS:shakaDemo.MessageIds.HLS,MSS:shakaDemo.MessageIds.MSS,THUMBNAILS:shakaDemo.MessageIds.THUMBNAILS,LCEVC:shakaDemo.MessageIds.LCEVC,LOW_LATENCY:shakaDemo.MessageIds.LOW_LATENCY};shakaAssets.lastUplynkPrefix="";
106
- shakaAssets.UplynkResponseFilter=(a,b)=>{a==shaka.net.NetworkingEngine.RequestType.MANIFEST&&(shakaAssets.lastUplynkPrefix=b.headers["x-uplynk-prefix"]?b.headers["x-uplynk-prefix"]:"")};
107
- shakaAssets.UplynkRequestFilter=(a,b)=>{a==shaka.net.NetworkingEngine.RequestType.LICENSE&&(b.uris[0].includes("wv")&&shakaAssets.lastUplynkPrefix?b.uris[0]=shakaAssets.lastUplynkPrefix.concat("/wv"):b.uris[0].includes("ck")&&shakaAssets.lastUplynkPrefix?b.uris[0]=shakaAssets.lastUplynkPrefix.concat("/ck"):b.uris[0].includes("pr")&&shakaAssets.lastUplynkPrefix&&(b.uris[0]=shakaAssets.lastUplynkPrefix.concat("/pr")))};
68
+ goog.asserts=class{static assert(a,b){}};goog.asserts.ENABLE_ASSERTS=goog.DEBUG;goog.asserts.ENABLE_ASSERTS&&console.assert&&console.assert.bind&&(goog.asserts.assert=console.assert.bind(console));const ShakaDemoAssetInfo=class{constructor(a,b,c,d){this.name=a;this.shortName="";this.iconUri=b;this.manifestUri=c;this.source=d;this.disabled=this.focus=!1;this.extraText=[];this.extraThumbnail=[];this.description=this.certificateUri=null;this.isFeatured=!1;this.drm=[shakaAssets.KeySystem.CLEAR];this.features=[shakaAssets.Feature.VOD];this.licenseServers=new Map;this.licenseRequestHeaders=new Map;this.responseFilter=this.requestFilter=null;this.clearKeys=new Map;this.mediaPlaylistFullMimeType=this.mimeType=
69
+ this.mediaTailorAdsParams=this.mediaTailorUrl=this.imaManifestType=this.imaContentSrcId=this.imaAssetKey=this.imaVideoId=this.adTagUri=this.extraConfig=null;this.storedProgress=1}addDescription(a){this.description=a;return this}addCertificateUri(a){this.certificateUri=a;return this}static caseLessAlphaComparator_(a,b){return a.toLowerCase()<b.toLowerCase()?-1:a.toLowerCase()>b.toLowerCase()?1:0}addFeature(a){const b=shakaAssets.Feature;a==b.LIVE&&(this.features=this.features.filter(c=>c!=b.VOD));
70
+ this.features.push(a);this.features.sort(ShakaDemoAssetInfo.caseLessAlphaComparator_);return this}addKeySystem(a){this.isClear()&&(this.drm=[]);this.drm.push(a);this.drm.sort(ShakaDemoAssetInfo.caseLessAlphaComparator_);return this}isClear(){return 1==this.drm.length&&this.drm[0]==shakaAssets.KeySystem.CLEAR}isAes128(){return 1==this.drm.length&&this.drm[0]==shakaAssets.KeySystem.AES128}setMediaPlaylistFullMimeType(a){this.mediaPlaylistFullMimeType=a;return this}setExtraConfig(a){this.extraConfig=
71
+ a;return this}setMimeType(a){this.mimeType=a;return this}setRequestFilter(a){this.requestFilter=a;return this}setResponseFilter(a){this.responseFilter=a;return this}addLicenseServer(a,b){this.licenseServers.set(a,b);return this}setAdTagUri(a){this.adTagUri=a;this.addFeature(shakaAssets.Feature.ADS);return this}setIMAContentSourceId(a){this.imaContentSrcId=a;this.features.includes(shakaAssets.Feature.ADS)||this.addFeature(shakaAssets.Feature.ADS);return this}setIMAVideoId(a){this.imaVideoId=a;this.features.includes(shakaAssets.Feature.ADS)||
72
+ this.addFeature(shakaAssets.Feature.ADS);return this}setIMAAssetKey(a){this.imaAssetKey=a;this.features.includes(shakaAssets.Feature.ADS)||this.addFeature(shakaAssets.Feature.ADS);return this}setIMAManifestType(a){this.imaManifestType=a;this.features.includes(shakaAssets.Feature.ADS)||this.addFeature(shakaAssets.Feature.ADS);return this}setMediaTailor(a,b=null){this.mediaTailorUrl=a;this.mediaTailorAdsParams=b;this.features.includes(shakaAssets.Feature.ADS)||this.addFeature(shakaAssets.Feature.ADS);
73
+ return this}addLicenseRequestHeader(a,b){this.licenseRequestHeaders.set(a,b);return this}addExtraText(a){this.extraText.push(a);return this}addExtraThumbnail(a){this.extraThumbnail.push(a);return this}markAsFocused(){this.focus=!0;return this}markAsFeatured(a){this.isFeatured=!0;this.shortName=a||this.shortName;return this}markAsDisabled(){this.disabled=!0;return this}toJSON(){const a={};for(const b in this){const c=this[b];if(c instanceof Map){const d={__type__:"map"};for(const e of c.entries())d[e[0]]=
74
+ e[1];a[b]=d}else a[b]=c}return a}applyFilters(a){a.clearAllRequestFilters();a.clearAllResponseFilters();this.licenseRequestHeaders.size&&a.registerRequestFilter((b,c,d)=>this.addLicenseRequestHeaders_(this.licenseRequestHeaders,b,c));this.requestFilter&&a.registerRequestFilter(this.requestFilter);this.responseFilter&&a.registerResponseFilter(this.responseFilter)}getConfiguration(){const a={drm:{advanced:{}},manifest:{dash:{},hls:{}}};if(this.extraConfig)for(const b in this.extraConfig)a[b]=this.extraConfig[b];
75
+ this.mediaPlaylistFullMimeType&&(a.manifest.hls.mediaPlaylistFullMimeType=this.mediaPlaylistFullMimeType);this.licenseServers.size&&(a.drm.servers=a.drm.servers||{},this.licenseServers.forEach((b,c)=>{a.drm.servers[c]=b}));this.clearKeys.size&&(a.drm.clearKeys=a.drm.clearKeys||{},this.clearKeys.forEach((b,c)=>{a.drm.clearKeys[c]=b}));return a}addLicenseRequestHeaders_(a,b,c){b==shaka.net.NetworkingEngine.RequestType.LICENSE&&a.forEach((d,e)=>{c.headers[e]=d})}isStored(){return null!=this.storedContent}static makeBlankAsset(){return new ShakaDemoAssetInfo("",
76
+ "","",shakaAssets.Source.CUSTOM)}static fromJSON(a){const b={};for(const c in a){const d=a[c];if(d&&"object"==typeof d&&"map"==d.__type__){const e=new Map;for(const f in d)"__type__"!=f&&e.set(f,d[f]);b[c]=e}else b[c]=d}a=ShakaDemoAssetInfo.makeBlankAsset();Object.assign(a,b);return a}};const shakaAssets={Source:{CUSTOM:"Custom",SHAKA:"Shaka",AXINOM:"Axinom",UNIFIED_STREAMING:"Unified Streaming",DASH_IF:"DASH-IF",BITCODIN:"Bitcodin",METACDN:"MetaCDN",NIMBLE_STREAMER:"Nimble Streamer",AZURE_MEDIA_SERVICES:"Azure Media Services",GPAC:"GPAC",UPLYNK:"Verizon Digital Media Services",APPLE:"Apple",IRT:"IRT",MICROSOFT:"Microsoft",VNOVA:"V-Nova",AWS:"AWS"},KeySystem:{CLEAR_KEY:"Clear Key DRM",FAIRPLAY:"Fairplay DRM",PLAYREADY:"PlayReady DRM",WIDEVINE:"Widevine DRM",AES128:"AES-128 protection",
77
+ CLEAR:"No DRM protection"},AdTag:{SINGLE_LINEAR_AD:"https://pubads.g.doubleclick.net/gampad/ads?sz=640x480&iu=/124319096/external/single_ad_samples&ciu_szs=300x250&impl=s&gdfp_req=1&env=vp&output=vast&unviewed_position_start=1&cust_params=deployment%3Ddevsite%26sample_ct%3Dlinear&correlator=",SINGLE_NON_LINEAR_AD:"https://pubads.g.doubleclick.net/gampad/ads?sz=480x70&iu=/124319096/external/single_ad_samples&ciu_szs=300x250 &impl=s&gdfp_req=1&env=vp&output=vast&unviewed_position_start=1&cust_params=deployment%3Ddevsite%26sample_ct%3Dnonlinear&correlator=",
78
+ SINGLE_SKIPPABLE_AD:"https://pubads.g.doubleclick.net/gampad/ads?sz=640x480&iu=/124319096/external/single_ad_samples&ciu_szs=300x250&impl=s&gdfp_req=1&env=vp&output=vast&unviewed_position_start=1&cust_params=deployment%3Ddevsite%26sample_ct%3Dskippablelinear&correlator=",AD_POD_PREROLL_MIDROLL_POSTROLL:"https://pubads.g.doubleclick.net/gampad/ads?sz=640x480&iu=/124319096/external/ad_rule_samples&ciu_szs=300x250&ad_rule=1&impl=s&gdfp_req=1&env=vp&output=vmap&unviewed_position_start=1&cust_params=deployment%3Ddevsite%26sample_ar%3Dpremidpostpod&cmsid=496&vid=short_onecue&correlator="},
79
+ identifierForKeySystem:a=>{const b=shakaAssets.KeySystem;switch(a){case b.CLEAR_KEY:return"org.w3.clearkey";case b.FAIRPLAY:return"com.apple.fps";case b.PLAYREADY:return"com.microsoft.playready";case b.WIDEVINE:return"com.widevine.alpha";case b.AES128:return"aes128";default:return"no drm protection"}},Feature:{TRICK_MODE:"Special trick mode track",XLINK:"XLink",SUBTITLES:"Subtitles",CAPTIONS:"Captions",MULTIPLE_LANGUAGES:"Multiple languages",AUDIO_ONLY:"Audio only",OFFLINE:"Downloadable",STORED:"Downloaded",
80
+ ADS:"Ads",LIVE:"Live",VOD:"VOD",WEBM:"WebM",MP4:"MP4",MP2TS:"MPEG-2 TS",CONTAINERLESS:"Containerless",HIGH_DEFINITION:"High definition",ULTRA_HIGH_DEFINITION:"Ultra-high definition",SURROUND:"Surround sound",DASH:"DASH",HLS:"HLS",MSS:"MSS",THUMBNAILS:"Thumbnails",LCEVC:"LCEVC",LOW_LATENCY:"Low Latency"},lastUplynkPrefix:"",UplynkResponseFilter:(a,b)=>{a==shaka.net.NetworkingEngine.RequestType.MANIFEST&&(shakaAssets.lastUplynkPrefix=b.headers["x-uplynk-prefix"]?b.headers["x-uplynk-prefix"]:"")},UplynkRequestFilter:(a,
81
+ b)=>{a==shaka.net.NetworkingEngine.RequestType.LICENSE&&(b.uris[0].includes("wv")&&shakaAssets.lastUplynkPrefix?b.uris[0]=shakaAssets.lastUplynkPrefix.concat("/wv"):b.uris[0].includes("ck")&&shakaAssets.lastUplynkPrefix?b.uris[0]=shakaAssets.lastUplynkPrefix.concat("/ck"):b.uris[0].includes("pr")&&shakaAssets.lastUplynkPrefix&&(b.uris[0]=shakaAssets.lastUplynkPrefix.concat("/pr")))}};
108
82
  shakaAssets.testAssets=[(new ShakaDemoAssetInfo("Big Buck Bunny: the Dark Truths of a Video Dev Cartoon (DASH)","https://storage.googleapis.com/shaka-asset-icons/dark_truth.png","https://storage.googleapis.com/shaka-demo-assets/bbb-dark-truths/dash.mpd",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.WEBM).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Big Buck Bunny: the Dark Truths of a Video Dev Cartoon (HLS)",
109
83
  "https://storage.googleapis.com/shaka-asset-icons/dark_truth.png","https://storage.googleapis.com/shaka-demo-assets/bbb-dark-truths-hls/hls.m3u8",shakaAssets.Source.SHAKA)).addDescription("A serious documentary about a problem plaguing video developers.").markAsFeatured("Big Buck Bunny: the Dark Truths").addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Angel One (multicodec, multilingual)",
110
84
  "https://storage.googleapis.com/shaka-asset-icons/angel_one.png","https://storage.googleapis.com/shaka-demo-assets/angel-one/dash.mpd",shakaAssets.Source.SHAKA)).addDescription("A clip from a classic Star Trek TNG episode, presented in MPEG-DASH.").markAsFeatured("Angel One").addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.MULTIPLE_LANGUAGES).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.WEBM).addFeature(shakaAssets.Feature.OFFLINE),
@@ -189,131 +163,129 @@ shakaAssets.Source.APPLE)).addFeature(shakaAssets.Feature.HLS).addFeature(shakaA
189
163
  "https://irtdashreference-i.akamaihd.net/dash/live/901161/keepixo1/playlistBR2.m3u8",shakaAssets.Source.IRT)).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.LIVE),(new ShakaDemoAssetInfo("Big Buck Bunny: the Dark Truths of a Video Dev Cartoon (HLS - PlayReady)","https://storage.googleapis.com/shaka-asset-icons/dark_truth.png","https://test.playready.microsoft.com/media/dash/APPLEENC_CBCS_BBB_1080p/1080p_alternate.m3u8",
190
164
  shakaAssets.Source.MICROSOFT)).addKeySystem(shakaAssets.KeySystem.PLAYREADY).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addLicenseServer("com.microsoft.playready","http://test.playready.microsoft.com/service/rightsmanager.asmx?cfg=(persist:false,ck:W31bfVt9W31bfVt9W31bfQ==,ckt:aescbc)"),(new ShakaDemoAssetInfo("Super Speedway Trailer (MSS - Clear)","https://reference.dashif.org/dash.js/latest/samples/lib/img/mss-1.jpg","https://playready.directtaps.net/smoothstreaming/SSWSS720H264/SuperSpeedway_720.ism/Manifest",
191
165
  shakaAssets.Source.MICROSOFT)).addFeature(shakaAssets.Feature.MSS).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4),(new ShakaDemoAssetInfo("Super Speedway Trailer (MSS - PlayReady)","https://reference.dashif.org/dash.js/latest/samples/lib/img/mss-1.jpg","https://test.playready.microsoft.com/smoothstreaming/SSWSS720H264PR/SuperSpeedway_720.ism/Manifest",shakaAssets.Source.MICROSOFT)).addFeature(shakaAssets.Feature.MSS).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addLicenseServer("com.microsoft.playready",
192
- "https://test.playready.microsoft.com/service/rightsmanager.asmx?cfg=(persist:false,sl:150)"),(new ShakaDemoAssetInfo("Big Buck Bunny LCEVC H264 (DASH, MP4)","https://storage.googleapis.com/shaka-asset-icons/big_buck_bunny.png","https://d3mfda3gpj3dw1.cloudfront.net/vn9s0p86SVbJorX6/master.mpd",shakaAssets.Source.VNOVA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.OFFLINE).addFeature(shakaAssets.Feature.LCEVC).setExtraConfig({lcevc:{enabled:!0,
166
+ "https://test.playready.microsoft.com/service/rightsmanager.asmx?cfg=(persist:false,sl:150)"),(new ShakaDemoAssetInfo("Big Buck Bunny LCEVC H264 (DASH, MP4)","https://storage.googleapis.com/shaka-asset-icons/big_buck_bunny.png","https://d3mfda3gpj3dw1.cloudfront.net/vn9s0p86SVbJorX6/master.mpd",shakaAssets.Source.VNOVA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP2TS).addFeature(shakaAssets.Feature.OFFLINE).addFeature(shakaAssets.Feature.LCEVC).addDescription("LCEVC Enhanced eSports content selection.").setExtraConfig({streaming:{useNativeHlsOnSafari:!1},
167
+ mediaSource:{forceTransmux:!0},lcevc:{enabled:!0,dynamicPerformanceScaling:!0,logLevel:0,drawLogo:!1}}),(new ShakaDemoAssetInfo("Tears of Steel LCEVC H264 (HLS, MP4)","https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png","https://d3mfda3gpj3dw1.cloudfront.net/vn2LvEps745ShGtQ/master.m3u8",shakaAssets.Source.VNOVA)).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.OFFLINE).addFeature(shakaAssets.Feature.LCEVC).setExtraConfig({lcevc:{enabled:!0,
193
168
  dynamicPerformanceScaling:!0,logLevel:0,drawLogo:!1}}),(new ShakaDemoAssetInfo("eSports LCEVC H264 (HLS, TS)","https://storage.googleapis.com/shaka-asset-icons/shaka.png","https://d3mfda3gpj3dw1.cloudfront.net/vnmITf0oAwlErGf9/master.m3u8",shakaAssets.Source.VNOVA)).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP2TS).addFeature(shakaAssets.Feature.OFFLINE).addFeature(shakaAssets.Feature.LCEVC).setExtraConfig({streaming:{useNativeHlsOnSafari:!1},
194
169
  mediaSource:{forceTransmux:!0},lcevc:{enabled:!0,dynamicPerformanceScaling:!0,logLevel:0,drawLogo:!1}}),(new ShakaDemoAssetInfo("Tears of Steel LCEVC H264 (HLS, MP4)","https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png","https://d3mfda3gpj3dw1.cloudfront.net/vn2LvEps745ShGtQ/master.m3u8",shakaAssets.Source.VNOVA)).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.OFFLINE).addFeature(shakaAssets.Feature.LCEVC).setExtraConfig({streaming:{useNativeHlsOnSafari:!1},
195
170
  mediaSource:{forceTransmux:!0},lcevc:{enabled:!0,dynamicPerformanceScaling:!0,logLevel:0,drawLogo:!1}}),(new ShakaDemoAssetInfo(" eSports LCEVC HEVC (DASH, MP4)","https://storage.googleapis.com/shaka-asset-icons/shaka.png","https://d3mfda3gpj3dw1.cloudfront.net/vnCTVqNpUs9400xP/master.mpd",shakaAssets.Source.VNOVA)).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.OFFLINE).addFeature(shakaAssets.Feature.LCEVC).setExtraConfig({lcevc:{enabled:!0,
196
- dynamicPerformanceScaling:!0,logLevel:0,drawLogo:!1}})];shakaDemo.Tooltips=class{static make(a,b){tippy(a,{content:shakaDemoMain.getLocalizedString(b),placement:"bottom",arrow:!0,animation:"scale",size:"large"})}};shakaDemo.AssetCard=class{constructor(a,b,c,d){this.card_=document.createElement("div");this.asset_=b;this.actions_=document.createElement("div");this.featureIconsContainer_=document.createElement("div");this.progressCircle_=document.createElement("div");this.progressCircleSvg_=document.createElementNS("http://www.w3.org/2000/svg","svg");this.progressCircleBack_=document.createElementNS("http://www.w3.org/2000/svg","circle");this.progressCircleBar_=document.createElementNS("http://www.w3.org/2000/svg",
171
+ dynamicPerformanceScaling:!0,logLevel:0,drawLogo:!1}}),(new ShakaDemoAssetInfo("Media Tailor HLS","https://storage.googleapis.com/shaka-asset-icons/sing.png","https://ad391cc0d55b44c6a86d232548adc225.mediatailor.us-east-1.amazonaws.com/v1/session/d02fedbbc5a68596164208dd24e9b48aa60dadc7/singssai/master.m3u8",shakaAssets.Source.AWS)).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP2TS).setMediaTailor("https://ad391cc0d55b44c6a86d232548adc225.mediatailor.us-east-1.amazonaws.com/v1/session/d02fedbbc5a68596164208dd24e9b48aa60dadc7/singssai/master.m3u8"),
172
+ (new ShakaDemoAssetInfo("Media Tailor Live HLS","https://storage.googleapis.com/shaka-asset-icons/big_buck_bunny.png","https://d305rncpy6ne2q.cloudfront.net/v1/session/94063eadf7d8c56e9e2edd84fdf897826a70d0df/SFP-MediaTailor-Live-HLS-DASH/channel/sfp-channel1/hls.m3u8",shakaAssets.Source.AWS)).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP2TS).addFeature(shakaAssets.Feature.LIVE).setMediaTailor("https://d305rncpy6ne2q.cloudfront.net/v1/session/94063eadf7d8c56e9e2edd84fdf897826a70d0df/SFP-MediaTailor-Live-HLS-DASH/channel/sfp-channel1/hls.m3u8"),
173
+ (new ShakaDemoAssetInfo("Media Tailor DASH","https://storage.googleapis.com/shaka-asset-icons/big_buck_bunny.png","https://d305rncpy6ne2q.cloudfront.net/v1/session/94063eadf7d8c56e9e2edd84fdf897826a70d0df/SFP-MediaTailor-VOD-HLS-DASH/out/v1/b94f3611978f419985a18335bac9d9cb/ddb73bf548a44551a0059c346226445a/eaa5485198bf497284559efb8172425e/index.mpd",shakaAssets.Source.AWS)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).setMediaTailor("https://d305rncpy6ne2q.cloudfront.net/v1/session/94063eadf7d8c56e9e2edd84fdf897826a70d0df/SFP-MediaTailor-VOD-HLS-DASH/out/v1/b94f3611978f419985a18335bac9d9cb/ddb73bf548a44551a0059c346226445a/eaa5485198bf497284559efb8172425e/index.mpd",
174
+ {adsParams:{assetid:"test2",podduration:"15"}}),(new ShakaDemoAssetInfo("Media Tailor Live DASH","https://storage.googleapis.com/shaka-asset-icons/big_buck_bunny.png","https://d305rncpy6ne2q.cloudfront.net/v1/session/94063eadf7d8c56e9e2edd84fdf897826a70d0df/SFP-MediaTailor-Live-HLS-DASH/channel/sfp-channel1/dash.mpd",shakaAssets.Source.AWS)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.LIVE).setMediaTailor("https://d305rncpy6ne2q.cloudfront.net/v1/session/94063eadf7d8c56e9e2edd84fdf897826a70d0df/SFP-MediaTailor-Live-HLS-DASH/channel/sfp-channel1/dash.mpd"),
175
+ (new ShakaDemoAssetInfo("Media Tailor Live HLS with overlays","https://storage.googleapis.com/shaka-asset-icons/re_mars.png","https://d305rncpy6ne2q.cloudfront.net/v1/session/94063eadf7d8c56e9e2edd84fdf897826a70d0df/SFP-MediaTailor-Live-HLS-Overlays/channel/sfp-channel2/hls.m3u8",shakaAssets.Source.AWS)).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP2TS).addFeature(shakaAssets.Feature.LIVE).setMediaTailor("https://d305rncpy6ne2q.cloudfront.net/v1/session/94063eadf7d8c56e9e2edd84fdf897826a70d0df/SFP-MediaTailor-Live-HLS-Overlays/channel/sfp-channel2/hls.m3u8")];var shakaDemo={Tooltips:class{static make(a,b){tippy(a,{content:b,placement:"bottom",arrow:!0,animation:"scale",size:"large"})}}};shakaDemo.AssetCard=class{constructor(a,b,c,d){this.card_=document.createElement("div");this.asset_=b;this.actions_=document.createElement("div");this.featureIconsContainer_=document.createElement("div");this.progressCircle_=document.createElement("div");this.progressCircleSvg_=document.createElementNS("http://www.w3.org/2000/svg","svg");this.progressCircleBack_=document.createElementNS("http://www.w3.org/2000/svg","circle");this.progressCircleBar_=document.createElementNS("http://www.w3.org/2000/svg",
197
176
  "circle");this.remakeButtonsFn_=d;this.card_.classList.add("mdl-card-wide");this.card_.classList.add("mdl-card");this.card_.classList.add("mdl-shadow--2dp");this.card_.classList.add("asset-card");d=document.createElement("div");d.classList.add("mdl-card__title");this.card_.appendChild(d);var e=document.createElement("h2");e.classList.add("mdl-card__title-text");e.textContent=c?b.shortName||b.name:b.name;d.appendChild(e);if(b.iconUri){d=document.createElement("picture");e=document.createElement("source");
198
177
  e.srcset=b.iconUri.replace(/.png$/,".webp");e.type="image/webp";const f=document.createElement("source");f.srcset=b.iconUri;f.type="image/png";const g=document.createElement("img");g.src=b.iconUri;g.alt="";d.appendChild(e);d.appendChild(f);d.appendChild(g);this.card_.appendChild(d)}b.description&&c&&(c=document.createElement("div"),c.classList.add("mdl-card__supporting-text"),c.textContent=b.description,this.card_.appendChild(c));this.card_.appendChild(this.featureIconsContainer_);this.addFeatureIcons_(b);
199
178
  this.actions_.classList.add("mdl-card__actions");this.actions_.classList.add("mdl-card--border");this.card_.appendChild(this.actions_);this.progressCircle_.classList.add("hidden");this.progressCircle_.classList.add("progress-circle");this.card_.appendChild(this.progressCircle_);this.progressCircleSvg_.appendChild(this.progressCircleBack_);this.progressCircleSvg_.appendChild(this.progressCircleBar_);this.progressCircle_.appendChild(this.progressCircleSvg_);this.progressCircleSvg_.classList.add("progress-circle-svg");
200
179
  this.progressCircleBack_.classList.add("progress-circle-back");this.progressCircleBar_.classList.add("progress-circle-bar");a.appendChild(this.card_);this.remakeButtons()}styleProgressCircle_(a){const b=this.progressCircleBar_,c=40*Math.PI;this.progressCircleSvg_.setAttribute("viewBox","0 0 45 45");b.setAttribute("stroke-dasharray",c);b.setAttribute("stroke-dashoffset",c*(1-a))}addFeatureIcon_(a,b){const c=document.createElement("div");c.classList.add("feature-icon");c.setAttribute("icon",a);this.featureIconsContainer_.appendChild(c);
201
180
  shakaDemo.Tooltips.make(c,b)}addFeatureIcons_(a){var b=shakaAssets.Feature;const c=shakaAssets.KeySystem;b=(new Map).set(b.SUBTITLES,"subtitles").set(b.CAPTIONS,"closed_caption").set(b.LIVE,"live").set(b.TRICK_MODE,"trick_mode").set(b.HIGH_DEFINITION,"high_definition").set(b.ULTRA_HIGH_DEFINITION,"ultra_high_definition").set(b.SURROUND,"surround_sound").set(b.MULTIPLE_LANGUAGES,"multiple_languages").set(b.ADS,"ad").set(b.AUDIO_ONLY,"audio_only");for(const d of a.features){const e=b.get(d);e&&this.addFeatureIcon_(e,
202
- d)}for(const d of a.drm)switch(d){case c.WIDEVINE:this.addFeatureIcon_("widevine",d);break;case c.CLEAR_KEY:this.addFeatureIcon_("clear_key",d);break;case c.PLAYREADY:this.addFeatureIcon_("playready",d)}}markAsUnsupported(a){this.card_.classList.add("asset-card-unsupported");this.makeUnsupportedButton_(shakaDemo.MessageIds.UNSUPPORTED,a)}makeUnsupportedButton_(a,b){a=this.addButton(a,()=>{});a.setAttribute("disabled","");const c=document.createElement("div");a.parentElement&&a.parentElement.removeChild(a);
203
- c.classList.add("tooltip-attach-point");c.appendChild(a);this.actions_.appendChild(c);shakaDemo.Tooltips.make(c,b);return a}selectByAsset(a){this.card_.classList.remove("selected");this.asset_==a&&this.card_.classList.add("selected")}remakeButtons(){shaka.util.Dom.removeAllChildren(this.actions_);this.remakeButtonsFn_(this)}addStoreButton(){const a=(c,d,e)=>{d.classList.add("asset-card-corner-button");d=document.createElement("i");d.textContent=e;d.classList.add("material-icons-round");c.appendChild(d)};
204
- var b=shakaDemoMain.getAssetUnsupportedReason(this.asset_,!0);b||goog.asserts.assert(this.asset_.storeCallback,"A storage callback is expected for all supported assets!");if(b)b=this.makeUnsupportedButton_(null,b),a(b,b.parentElement||b,"get_app");else if(this.asset_.isStored()){const c=this.addButton(null,()=>{this.attachDeleteDialog_(c)});a(c,c,"offline_pin")}else{const c=this.addButton(null,async()=>{c.disabled=!0;await this.asset_.storeCallback();this.remakeButtons()});a(c,c,"get_app")}}attachDeleteDialog_(a){const b=
205
- this.card_.parentElement;b&&this.makeYesNoDialogue_(b,shakaDemo.MessageIds.DELETE_STORED_PROMPT,async()=>{a.disabled=!0;await this.asset_.unstoreCallback()})}makeYesNoDialogue_(a,b,c){const d=document.createElement("dialog");d.classList.add("mdl-dialog");a.appendChild(d);d.showModal||dialogPolyfill.registerDialog(d);a=document.createElement("h2");a.classList.add("mdl-typography--title");a.textContent=shakaDemoMain.getLocalizedString(b);d.appendChild(a);const e=document.createElement("div");d.appendChild(e);
206
- b=(f,g)=>{const h=document.createElement("button");h.textContent=shakaDemoMain.getLocalizedString(f);h.classList.add("mdl-button");h.classList.add("mdl-button--colored");h.classList.add("mdl-js-button");h.classList.add("mdl-js-ripple-effect");h.addEventListener("click",()=>{g()});e.appendChild(h);h.blur()};b(shakaDemo.MessageIds.PROMPT_YES,async()=>{d.close();await c();this.remakeButtons()});b(shakaDemo.MessageIds.PROMPT_NO,()=>{d.close()});d.showModal()}updateProgress(){if(1>this.asset_.storedProgress){this.progressCircle_.classList.remove("hidden");
207
- for(const a of this.actions_.childNodes)a instanceof HTMLButtonElement&&(a.disabled=!0)}else{this.progressCircle_.classList.add("hidden");for(const a of this.actions_.childNodes)a instanceof HTMLButtonElement&&(a.disabled=!1)}this.styleProgressCircle_(this.asset_.storedProgress)}addButton(a,b,c){const d=document.createElement("button");d.classList.add("mdl-button");d.classList.add("mdl-button--colored");d.classList.add("mdl-js-button");d.classList.add("mdl-js-ripple-effect");d.textContent=a?shakaDemoMain.getLocalizedString(a):
208
- "";d.addEventListener("click",()=>{d.hasAttribute("disabled")||(c?this.makeYesNoDialogue_(this.actions_,c,b):b())});this.actions_.appendChild(d);return d}};shakaDemo.CloseButton=class extends shaka.ui.Element{constructor(a,b){super(a,b);this.button_=document.createElement("button");this.button_.classList.add("material-icons-round");this.button_.classList.add("close-button");this.button_.textContent="close";this.parent.appendChild(this.button_);this.button_.addEventListener("click",()=>{shakaDemoMain.unload()});"documentPictureInPicture"in window&&this.eventManager.listen(window.documentPictureInPicture,"enter",()=>{this.button_.style.display="none";
181
+ d)}for(const d of a.drm)switch(d){case c.WIDEVINE:this.addFeatureIcon_("widevine",d);break;case c.CLEAR_KEY:this.addFeatureIcon_("clear_key",d);break;case c.PLAYREADY:this.addFeatureIcon_("playready",d)}}markAsUnsupported(a){this.card_.classList.add("asset-card-unsupported");this.makeUnsupportedButton_("Not Available",a)}makeUnsupportedButton_(a,b){a=this.addButton(a,()=>{});a.setAttribute("disabled","");const c=document.createElement("div");a.parentElement&&a.parentElement.removeChild(a);c.classList.add("tooltip-attach-point");
182
+ c.appendChild(a);this.actions_.appendChild(c);shakaDemo.Tooltips.make(c,b);return a}selectByAsset(a){this.card_.classList.remove("selected");this.asset_==a&&this.card_.classList.add("selected")}remakeButtons(){shaka.util.Dom.removeAllChildren(this.actions_);this.remakeButtonsFn_(this)}addStoreButton(){const a=(c,d,e)=>{d.classList.add("asset-card-corner-button");d=document.createElement("i");d.textContent=e;d.classList.add("material-icons-round");c.appendChild(d)};var b=shakaDemoMain.getAssetUnsupportedReason(this.asset_,
183
+ !0);b||goog.asserts.assert(this.asset_.storeCallback,"A storage callback is expected for all supported assets!");if(b)b=this.makeUnsupportedButton_(null,b),a(b,b.parentElement||b,"get_app");else if(this.asset_.isStored()){const c=this.addButton(null,()=>{this.attachDeleteDialog_(c)});a(c,c,"offline_pin")}else{const c=this.addButton(null,async()=>{c.disabled=!0;await this.asset_.storeCallback();this.remakeButtons()});a(c,c,"get_app")}}attachDeleteDialog_(a){const b=this.card_.parentElement;b&&this.makeYesNoDialogue_(b,
184
+ "Delete the offline copy?",async()=>{a.disabled=!0;await this.asset_.unstoreCallback()})}makeYesNoDialogue_(a,b,c){const d=document.createElement("dialog");d.classList.add("mdl-dialog");a.appendChild(d);d.showModal||dialogPolyfill.registerDialog(d);a=document.createElement("h2");a.classList.add("mdl-typography--title");a.textContent=b;d.appendChild(a);const e=document.createElement("div");d.appendChild(e);b=(f,g)=>{const h=document.createElement("button");h.textContent=f;h.classList.add("mdl-button");
185
+ h.classList.add("mdl-button--colored");h.classList.add("mdl-js-button");h.classList.add("mdl-js-ripple-effect");h.addEventListener("click",()=>{g()});e.appendChild(h);h.blur()};b("Yes",async()=>{d.close();await c();this.remakeButtons()});b("No",()=>{d.close()});d.showModal()}updateProgress(){if(1>this.asset_.storedProgress){this.progressCircle_.classList.remove("hidden");for(const a of this.actions_.childNodes)a instanceof HTMLButtonElement&&(a.disabled=!0)}else{this.progressCircle_.classList.add("hidden");
186
+ for(const a of this.actions_.childNodes)a instanceof HTMLButtonElement&&(a.disabled=!1)}this.styleProgressCircle_(this.asset_.storedProgress)}addButton(a,b,c){const d=document.createElement("button");d.classList.add("mdl-button");d.classList.add("mdl-button--colored");d.classList.add("mdl-js-button");d.classList.add("mdl-js-ripple-effect");d.textContent=a||"";d.addEventListener("click",()=>{d.hasAttribute("disabled")||(c?this.makeYesNoDialogue_(this.actions_,c,b):b())});this.actions_.appendChild(d);
187
+ return d}};shakaDemo.CloseButton=class extends shaka.ui.Element{constructor(a,b){super(a,b);this.button_=document.createElement("button");this.button_.classList.add("material-icons-round");this.button_.classList.add("close-button");this.button_.textContent="close";this.parent.appendChild(this.button_);this.button_.addEventListener("click",()=>{shakaDemoMain.unload()});"documentPictureInPicture"in window&&this.eventManager.listen(window.documentPictureInPicture,"enter",()=>{this.button_.style.display="none";
209
188
  this.eventManager.listen(window.documentPictureInPicture.window,"pagehide",()=>{this.button_.style.display="block"})})}};shakaDemo.CloseButton.Factory=class{create(a,b){return new shakaDemo.CloseButton(a,b)}};shakaDemo.Input=class{constructor(a,b,c,d,e){this.container_=document.createElement(c);a.latestElementContainer.appendChild(this.container_);this.input_=document.createElement(b);this.input_.onchange=()=>{e(this.input_,this)};"textarea"==b&&(this.input_.oninput=()=>{e(this.input_,this)});this.input_.id=shakaDemo.Input.generateNewId_("input");this.container_.appendChild(this.input_);a.latestTooltip&&(b=document.createElement("span"),b.textContent=a.latestTooltip,b.classList.add("hidden"),b.id=shakaDemo.Input.generateNewId_("extra-info"),
210
189
  this.container_.appendChild(b),this.input_.setAttribute("aria-describedby",b.id));this.extra_=null;d&&(this.extra_=document.createElement(d),this.container_.appendChild(this.extra_))}input(){return this.input_}container(){return this.container_}extra(){return this.extra_}setValid(a){a?(this.input_.setCustomValidity(""),this.container_.classList.remove("is-invalid")):(this.input_.setCustomValidity("invalid"),this.container_.parentElement.classList.add("is-invalid"))}static generateNewId_(a){const b=
211
190
  shakaDemo.Input.lastId_;shakaDemo.Input.lastId_+=1;return a+"-labeled-"+b}};shakaDemo.Input.lastId_=0;
212
- shakaDemo.SelectInput=class extends shakaDemo.Input{constructor(a,b,c,d){super(a,"select","div","label",c);this.container_.classList.add("mdl-textfield");this.container_.classList.add("mdl-js-textfield");this.container_.classList.add("mdl-textfield--floating-label");this.input_.classList.add("mdl-textfield__input");this.extra_.classList.add("mdl-textfield__label");this.extra_.setAttribute("for",this.input_.id);b&&(this.extra_.textContent=shakaDemoMain.getLocalizedString(b));for(const e of Object.keys(d))a=
213
- document.createElement("option"),a.textContent=d[e],a.value=e,this.input_.appendChild(a)}};shakaDemo.BoolInput=class extends shakaDemo.Input{constructor(a,b,c){super(a,"input","label","span",c);this.input_.type="checkbox";this.container_.classList.add("mdl-switch");this.container_.classList.add("mdl-js-switch");this.container_.classList.add("mdl-js-ripple-effect");this.container_.setAttribute("for",this.input_.id);this.input_.classList.add("mdl-switch__input");this.extra_.classList.add("mdl-switch__label")}};
191
+ shakaDemo.SelectInput=class extends shakaDemo.Input{constructor(a,b,c,d){super(a,"select","div","label",c);this.container_.classList.add("mdl-textfield");this.container_.classList.add("mdl-js-textfield");this.container_.classList.add("mdl-textfield--floating-label");this.input_.classList.add("mdl-textfield__input");this.extra_.classList.add("mdl-textfield__label");this.extra_.setAttribute("for",this.input_.id);b&&(this.extra_.textContent=b);for(const e of Object.keys(d))a=document.createElement("option"),
192
+ a.textContent=d[e],a.value=e,this.input_.appendChild(a)}};shakaDemo.BoolInput=class extends shakaDemo.Input{constructor(a,b,c){super(a,"input","label","span",c);this.input_.type="checkbox";this.container_.classList.add("mdl-switch");this.container_.classList.add("mdl-js-switch");this.container_.classList.add("mdl-js-ripple-effect");this.container_.setAttribute("for",this.input_.id);this.input_.classList.add("mdl-switch__input");this.extra_.classList.add("mdl-switch__label")}};
214
193
  shakaDemo.TextInput=class extends shakaDemo.Input{constructor(a,b,c,d){super(a,d?"textarea":"input","div","label",c);this.container_.classList.add("mdl-textfield");this.container_.classList.add("mdl-js-textfield");this.container_.classList.add("mdl-textfield--floating-label");this.input_.classList.add("mdl-textfield__input");this.extra_.classList.add("mdl-textfield__label");this.extra_.setAttribute("for",this.input_.id)}};
215
194
  shakaDemo.DatalistInput=class extends shakaDemo.TextInput{constructor(a,b,c,d){super(a,b,c,!1);const e=new Awesomplete(this.input_);e.list=d.slice();e.minChars=0;this.input_.addEventListener("focus",()=>{e.evaluate()});this.input_.addEventListener("awesomplete-selectcomplete",()=>{c(this.input_,this)})}};
216
- shakaDemo.NumberInput=class extends shakaDemo.TextInput{constructor(a,b,c,d,e,f){super(a,b,c,!1);a=document.createElement("span");a.classList.add("mdl-textfield__error");this.container_.appendChild(a);b=shakaDemo.MessageIds;a.textContent=e&&d?shakaDemoMain.getLocalizedString(b.NUMBER_DECIMAL_WARNING):e?shakaDemoMain.getLocalizedString(b.NUMBER_INTEGER_WARNING):d?shakaDemoMain.getLocalizedString(b.NUMBER_NONZERO_DECIMAL_WARNING):shakaDemoMain.getLocalizedString(b.NUMBER_NONZERO_INTEGER_WARNING);this.input_.pattern=
217
- "(Infinity|";this.input_.pattern=e?this.input_.pattern+"[0-9]*":this.input_.pattern+"[0-9]*[1-9][0-9]*";d&&(this.input_.pattern+="(.[0-9]+)?");this.input_.pattern+=")";f&&(this.input_.pattern+="?")}};shakaDemo.InputContainer=class{constructor(a,b,c,d){this.style_=c;this.table_=document.createElement("div");this.defaultRowClass_=null;this.numRows_=0;b&&this.createHeader_(a,b);this.table_.classList.add(c);c==shakaDemo.InputContainer.Style.ACCORDION&&this.table_.classList.add("hidden");a.appendChild(this.table_);d&&this.addDocLink_(this.table_,d)}getIsOpen(){return this.style_==shakaDemo.InputContainer.Style.ACCORDION?this.table_.classList.contains("show"):!1}open(){!this.style_!=shakaDemo.InputContainer.Style.ACCORDION&&
195
+ shakaDemo.NumberInput=class extends shakaDemo.TextInput{constructor(a,b,c,d,e,f){super(a,b,c,!1);a=document.createElement("span");a.classList.add("mdl-textfield__error");this.container_.appendChild(a);a.textContent=e&&d?"Must be a positive number.":e?"Must be a positive integer.":d?"Must be a positive, nonzero number.":"Must be a positive, nonzero integer.";this.input_.pattern="(Infinity|";this.input_.pattern=e?this.input_.pattern+"[0-9]*":this.input_.pattern+"[0-9]*[1-9][0-9]*";d&&(this.input_.pattern+=
196
+ "(.[0-9]+)?");this.input_.pattern+=")";f&&(this.input_.pattern+="?")}};shakaDemo.InputContainer=class{constructor(a,b,c,d){this.style_=c;this.table_=document.createElement("div");this.defaultRowClass_=null;this.numRows_=0;b&&this.createHeader_(a,b);this.table_.classList.add(c);c==shakaDemo.InputContainer.Style.ACCORDION&&this.table_.classList.add("hidden");a.appendChild(this.table_);d&&this.addDocLink_(this.table_,d)}getIsOpen(){return this.style_==shakaDemo.InputContainer.Style.ACCORDION?this.table_.classList.contains("show"):!1}open(){!this.style_!=shakaDemo.InputContainer.Style.ACCORDION&&
218
197
  (this.table_.classList.remove("hidden"),setTimeout(()=>{this.table_.classList.add("show")},20),this.header_.classList.add("mdl-button--colored"))}close(){this.style_==shakaDemo.InputContainer.Style.ACCORDION&&(this.table_.classList.remove("show"),this.table_.addEventListener("transitionend",a=>{this.table_.classList.add("hidden")},{once:!0}),this.header_.classList.remove("mdl-button--colored"))}createHeader_(a,b){this.style_==shakaDemo.InputContainer.Style.ACCORDION?(this.header_=document.createElement("button"),
219
- this.header_.classList.add("mdl-button--raised"),this.header_.classList.add("mdl-button"),this.header_.classList.add("mdl-js-button"),this.header_.classList.add("mdl-js-ripple-effect"),this.header_.addEventListener("click",()=>{this.getIsOpen()?this.close():this.open()})):(this.header_=document.createElement("div"),this.header_.classList.add("input-header"));this.header_.textContent=shakaDemoMain.getLocalizedString(b);a.appendChild(this.header_)}addDocLink_(a,b){const c=document.createElement("a");
220
- c.href=b;c.target="_blank";c.classList.add("mdl-button");c.classList.add("mdl-js-button");c.classList.add("mdl-js-ripple-effect");c.classList.add("mdl-button--colored");b=document.createElement("i");b.classList.add("material-icons-round");b.textContent="help";c.appendChild(b);a.appendChild(c)}setDefaultRowClass(a){this.defaultRowClass_=a}getClassList(){return this.table_.classList}addRow(a,b,c){c=c||this.defaultRowClass_||"";this.latestRow_=document.createElement("div");c&&this.latestRow_.classList.add(c);
221
- this.table_.appendChild(this.latestRow_);c="input-container-row-"+this.numRows_;this.numRows_+=1;if(a){const d=document.createElement("label");d.setAttribute("for",c);d.classList.add("input-container-label");const e=document.createElement("b");e.textContent=shakaDemoMain.getLocalizedString(a);d.appendChild(e);this.latestRow_.appendChild(d)}this.latestElementContainer=document.createElement("div");this.latestRow_.appendChild(this.latestElementContainer);this.latestElementContainer.classList.add("input-container-row");
222
- this.latestElementContainer.id=c;if(this.latestTooltip=b)shakaDemo.Tooltips.make(this.latestRow_,b),this.latestRow_.setAttribute("tabindex",-1),this.latestRow_.classList.add("borderless")}};shakaDemo.InputContainer.Style={VERTICAL:"input-container-style-vertical",ACCORDION:"input-container-style-accordion",FLEX:"input-container-style-flex"};let shakaDemoConfig;
223
- shakaDemo.Config=class{static init(){const a=shakaDemoMain.getHamburgerMenu();shakaDemoConfig=new shakaDemo.Config(a)}constructor(a){this.container_=a;this.sections_=[];this.latestInput_=null;this.reload_();document.addEventListener("shaka-main-config-change",()=>{this.reloadAndSaveState_()});document.addEventListener("shaka-main-locale-changed",()=>{this.reloadAndSaveState_()});document.addEventListener("shaka-main-drawer-state-change",()=>{this.setContentAvailability_(shakaDemoMain.getIsDrawerOpen())});this.setContentAvailability_(shakaDemoMain.getIsDrawerOpen())}setContentAvailability_(a){a?
224
- this.container_.classList.remove("hidden"):this.container_.classList.add("hidden")}reload_(){shaka.util.Dom.removeAllChildren(this.container_);this.sections_=[];this.addMetaSection_();this.addLanguageSection_();this.addAbrSection_();this.addOfflineSection_();this.addDrmSection_();this.addStreamingSection_();this.addMediaSourceSection_();this.addManifestSection_();this.addRetrictionsSection_("",shakaDemo.MessageIds.RESTRICTIONS_SECTION_HEADER);this.addCmcdSection_();this.addLcevcSection_();this.addAdsSection_()}reloadAndSaveState_(){const a=
225
- this.sections_.map(b=>b.getIsOpen());this.reload_();for(let b=0;b<a.length;b++){const c=this.sections_[b];a[b]&&c.open()}componentHandler.upgradeDom()}addDrmSection_(){const a=shakaDemo.MessageIds;var b=this.resolveExternLink_(".DrmConfiguration");this.addSection_(a.DRM_SECTION_HEADER,b).addBoolInput_(a.DELAY_LICENSE,"drm.delayLicenseRequestUntilPlayed").addBoolInput_(a.LOG_LICENSE_EXCHANGE,"drm.logLicenseExchange").addNumberInput_(a.UPDATE_EXPIRATION_TIME,"drm.updateExpirationTime",!0,!1,!0).addBoolInput_(a.PARSE_INBAND_PSSH_ENABLED,
226
- "drm.parseInbandPsshEnabled").addTextInput_(a.MIN_HDCP_VERSION,"drm.minHdcpVersion");const c=shakaDemoMain.getConfiguration().drm.advanced||{};b=(e,f,g)=>{this.addDatalistInput_(e,g,h=>{for(const k of shakaDemo.Main.commonDrmSystems)k in c||(c[k]=shakaDemo.Main.defaultAdvancedDrmConfig());for(const k in c)c[k][f]=h.value;shakaDemoMain.configure("drm.advanced",c);shakaDemoMain.remakeHash()});if(e=Object.keys(c)[0])e=c[e][f],this.latestInput_.input().value=e};const d="SW_SECURE_CRYPTO SW_SECURE_DECODE HW_SECURE_CRYPTO HW_SECURE_DECODE HW_SECURE_ALL 150 2000 3000".split(" ");
227
- b(a.VIDEO_ROBUSTNESS,"videoRobustness",d);b(a.AUDIO_ROBUSTNESS,"audioRobustness",d);b(a.DRM_SESSION_TYPE,"sessionType",["temporary","persistent-license"]);this.addRetrySection_("drm",a.DRM_RETRY_SECTION_HEADER)}addManifestSection_(){const a=shakaDemo.MessageIds,b=this.resolveExternLink_(".ManifestConfiguration");this.addSection_(a.MANIFEST_SECTION_HEADER,b).addBoolInput_(a.IGNORE_DASH_DRM,"manifest.dash.ignoreDrmInfo").addBoolInput_(a.AUTO_CORRECT_DASH_DRIFT,"manifest.dash.autoCorrectDrift").addBoolInput_(a.DISABLE_XLINK_PROCESSING,
228
- "manifest.dash.disableXlinkProcessing").addBoolInput_(a.XLINK_FAIL_GRACEFULLY,"manifest.dash.xlinkFailGracefully").addBoolInput_(a.IGNORE_DASH_SUGGESTED_PRESENTATION_DELAY,"manifest.dash.ignoreSuggestedPresentationDelay").addBoolInput_(a.IGNORE_DASH_EMPTY_ADAPTATION_SET,"manifest.dash.ignoreEmptyAdaptationSet").addBoolInput_(a.IGNORE_DASH_MAX_SEGMENT_DURATION,"manifest.dash.ignoreMaxSegmentDuration").addBoolInput_(a.IGNORE_HLS_TEXT_FAILURES,"manifest.hls.ignoreTextStreamFailures").addBoolInput_(a.IGNORE_HLS_IMAGE_FAILURES,
229
- "manifest.hls.ignoreImageStreamFailures").addTextInput_(a.DEFAULT_AUDIO_CODEC,"manifest.hls.defaultAudioCodec").addTextInput_(a.DEFAULT_VIDEO_CODEC,"manifest.hls.defaultVideoCodec").addBoolInput_(a.IGNORE_MANIFEST_PROGRAM_DATE_TIME,"manifest.hls.ignoreManifestProgramDateTime").addBoolInput_(a.USE_SAFARI_BEHAVIOR_FOR_LIVE,"manifest.hls.useSafariBehaviorForLive").addNumberInput_(a.LIVE_SEGMENTS_DELAY,"manifest.hls.liveSegmentsDelay").addBoolInput_(a.HLS_SEQUENCE_MODE,"manifest.hls.sequenceMode").addBoolInput_(a.IGNORE_MANIFEST_TIMESTAMPS_IN_SEGMENTS_MODE,
230
- "manifest.hls.ignoreManifestTimestampsInSegmentsMode").addNumberInput_(a.AVAILABILITY_WINDOW_OVERRIDE,"manifest.availabilityWindowOverride",!0,!1,!0).addTextInput_(a.CLOCK_SYNC_URI,"manifest.dash.clockSyncUri").addNumberInput_(a.DEFAULT_PRESENTATION_DELAY,"manifest.defaultPresentationDelay").addBoolInput_(a.IGNORE_MIN_BUFFER_TIME,"manifest.dash.ignoreMinBufferTime").addNumberInput_(a.INITIAL_SEGMENT_LIMIT,"manifest.dash.initialSegmentLimit",!1,!1,!0).addBoolInput_(a.DASH_SEQUENCE_MODE,"manifest.dash.sequenceMode").addBoolInput_(a.DISABLE_AUDIO,
231
- "manifest.disableAudio").addBoolInput_(a.DISABLE_VIDEO,"manifest.disableVideo").addBoolInput_(a.DISABLE_TEXT,"manifest.disableText").addBoolInput_(a.DISABLE_THUMBNAILS,"manifest.disableThumbnails").addBoolInput_(a.SEGMENT_RELATIVE_VTT_TIMING,"manifest.segmentRelativeVttTiming").addBoolInput_(a.MSS_SEQUENCE_MODE,"manifest.mss.sequenceMode");this.addRetrySection_("manifest",a.MANIFEST_RETRY_SECTION_HEADER)}addAbrSection_(){const a=shakaDemo.MessageIds,b=this.resolveExternLink_(".AbrConfiguration");
232
- this.addSection_(a.ADAPTATION_SECTION_HEADER,b).addBoolInput_(a.ENABLED,"abr.enabled").addBoolInput_(a.NETWORK_INFORMATION,"abr.useNetworkInformation").addNumberInput_(a.BANDWIDTH_ESTIMATE,"abr.defaultBandwidthEstimate").addNumberInput_(a.BANDWIDTH_DOWNGRADE,"abr.bandwidthDowngradeTarget",!0).addNumberInput_(a.BANDWIDTH_UPGRADE,"abr.bandwidthUpgradeTarget",!0).addNumberInput_(a.SWITCH_INTERVAL,"abr.switchInterval",!0).addNumberInput_(a.MIN_TOTAL_BYTES,"abr.advanced.minTotalBytes").addNumberInput_(a.MIN_BYTES,
233
- "abr.advanced.minBytes").addNumberInput_(a.FAST_HALF_LIFE,"abr.advanced.fastHalfLife",!0).addNumberInput_(a.SLOW_HALF_LIFE,"abr.advanced.slowHalfLife",!0).addBoolInput_(a.RESTRICT_TO_ELEMENT_SIZE,"abr.restrictToElementSize").addBoolInput_(a.RESTRICT_TO_SCREEN_SIZE,"abr.restrictToScreenSize").addBoolInput_(a.IGNORE_DEVICE_PIXEL_RATIO,"abr.ignoreDevicePixelRatio").addBoolInput_(a.CLEAR_BUFFER_SWITCH,"abr.clearBufferSwitch").addNumberInput_(a.SAFE_MARGIN_SWITCH,"abr.safeMarginSwitch",!0);this.addRetrictionsSection_("abr",
234
- a.ADAPTATION_RESTRICTIONS_SECTION_HEADER)}addCmcdSection_(){const a=shakaDemo.MessageIds,b=this.resolveExternLink_(".CmcdConfiguration");this.addSection_(a.CMCD_SECTION_HEADER,b).addBoolInput_(a.ENABLED,"cmcd.enabled").addTextInput_(a.SESSION_ID,"cmcd.sessionId").addTextInput_(a.CONTENT_ID,"cmcd.contentId").addBoolInput_(a.USE_HEADERS,"cmcd.useHeaders")}addLcevcSection_(){const a=shakaDemo.MessageIds,b=this.resolveExternLink_(".LcevcConfiguration");this.addSection_(a.LCEVC_SECTION_HEADER,b).addBoolInput_(a.ENABLED,
235
- "lcevc.enabled").addBoolInput_(a.LCEVC_DYNAMIC_PERFORMANCE_SCALING,"lcevc.dynamicPerformanceScaling").addNumberInput_(a.LCEVC_LOG_LEVEL,"lcevc.logLevel").addBoolInput_(a.LCEVC_DRAW_LOGO,"lcevc.drawLogo")}addAdsSection_(){const a=shakaDemo.MessageIds,b=this.resolveExternLink_(".AdsConfiguration");this.addSection_(a.ADS_SECTION_HEADER,b).addBoolInput_(a.CUSTOM_PLAYHEAD_TRACKER,"ads.customPlayheadTracker")}addRetrictionsSection_(a,b){const c=shakaDemo.MessageIds;a=(a?a+".":"")+"restrictions.";const d=
236
- this.resolveExternLink_(".Restrictions");this.addSection_(b,d).addNumberInput_(c.MIN_WIDTH,a+"minWidth").addNumberInput_(c.MAX_WIDTH,a+"maxWidth").addNumberInput_(c.MIN_HEIGHT,a+"minHeight").addNumberInput_(c.MAX_HEIGHT,a+"maxHeight").addNumberInput_(c.MIN_PIXELS,a+"minPixels").addNumberInput_(c.MAX_PIXELS,a+"maxPixels").addNumberInput_(c.MIN_FRAMERATE,a+"minFrameRate").addNumberInput_(c.MAX_FRAMERATE,a+"maxFrameRate").addNumberInput_(c.MIN_BANDWIDTH,a+"minBandwidth").addNumberInput_(c.MAX_BANDWIDTH,
237
- a+"maxBandwidth")}addRetrySection_(a,b){const c=shakaDemo.MessageIds;a+=".retryParameters.";const d=this.resolveExternLink_(".RetryParameters");this.addSection_(b,d).addNumberInput_(c.MAX_ATTEMPTS,a+"maxAttempts").addNumberInput_(c.BASE_DELAY,a+"baseDelay",!0).addNumberInput_(c.BACKOFF_FACTOR,a+"backoffFactor",!0).addNumberInput_(c.FUZZ_FACTOR,a+"fuzzFactor",!0).addNumberInput_(c.TIMEOUT,a+"timeout",!0).addNumberInput_(c.STALL_TIMEOUT,a+"stallTimeout",!0).addNumberInput_(c.CONNECTION_TIMEOUT,a+"connectionTimeout",
238
- !0)}addOfflineSection_(){const a=shakaDemo.MessageIds,b=this.resolveExternLink_(".OfflineConfiguration");this.addSection_(a.OFFLINE_SECTION_HEADER,b).addBoolInput_(a.USE_PERSISTENT_LICENSES,"offline.usePersistentLicense").addNumberInput_(a.NUMBER_OF_PARALLEL_DOWNLOADS,"offline.numberOfParallelDownloads")}addStreamingSection_(){const a=shakaDemo.MessageIds;var b=this.resolveExternLink_(".StreamingConfiguration");this.addSection_(a.STREAMING_SECTION_HEADER,b).addNumberInput_(a.GAP_DETECTION_THRESHOLD,
239
- "streaming.gapDetectionThreshold",!0).addNumberInput_(a.GAP_JUMP_TIMER_TIME,"streaming.gapJumpTimerTime",!0).addNumberInput_(a.BUFFERING_GOAL,"streaming.bufferingGoal",!0).addNumberInput_(a.DURATION_BACKOFF,"streaming.durationBackoff",!0).addNumberInput_(a.REBUFFERING_GOAL,"streaming.rebufferingGoal",!0).addNumberInput_(a.BUFFER_BEHIND,"streaming.bufferBehind",!0).addNumberInput_(a.SAFE_SEEK_OFFSET,"streaming.safeSeekOffset",!0).addNumberInput_(a.STALL_THRESHOLD,"streaming.stallThreshold",!0).addNumberInput_(a.SAFE_SKIP_DISTANCE,
240
- "streaming.stallSkip",!0).addNumberInput_(a.INACCURATE_MANIFEST_TOLERANCE,"streaming.inaccurateManifestTolerance",!0).addBoolInput_(a.LOW_LATENCY,"streaming.lowLatencyMode").addBoolInput_(a.AUTO_LOW_LATENCY,"streaming.autoLowLatencyMode").addBoolInput_(a.FORCE_HTTPS,"streaming.forceHTTPS").addBoolInput_(a.PREFER_NATIVE_HLS,"streaming.preferNativeHls").addNumberInput_(a.UPDATE_INTERVAL_SECONDS,"streaming.updateIntervalSeconds",!0).addBoolInput_(a.DISPATCH_ALL_EMSG_BOXES,"streaming.dispatchAllEmsgBoxes").addBoolInput_(a.OBSERVE_QUALITY_CHANGES,
241
- "streaming.observeQualityChanges").addNumberInput_(a.MAX_DISABLED_TIME,"streaming.maxDisabledTime").addNumberInput_(a.SEGMENT_PREFETCH_LIMIT,"streaming.segmentPrefetchLimit").addBoolInput_(a.LIVE_SYNC,"streaming.liveSync").addNumberInput_(a.LIVE_SYNC_MAX_LATENCY,"streaming.liveSyncMaxLatency",!0,!0).addNumberInput_(a.LIVE_SYNC_PLAYBACK_RATE,"streaming.liveSyncPlaybackRate",!0,!1);shakaDemoMain.getNativeControlsEnabled()?(this.addCustomBoolInput_(a.ALWAYS_STREAM_TEXT,c=>{},a.ALWAYS_STREAM_TEXT_WARNING),
242
- this.latestInput_.input().disabled=!0,this.latestInput_.input().checked=!0):this.addBoolInput_(a.ALWAYS_STREAM_TEXT,"streaming.alwaysStreamText");b={AUTO:shakaDemoMain.getLocalizedString(a.HDR_LEVEL_AUTO),SDR:shakaDemoMain.getLocalizedString(a.HDR_LEVEL_SDR),PQ:shakaDemoMain.getLocalizedString(a.HDR_LEVEL_PQ),HLG:shakaDemoMain.getLocalizedString(a.HDR_LEVEL_HLG),"":shakaDemoMain.getLocalizedString(a.HDR_LEVEL_NONE)};this.addSelectInput_(a.HDR_LEVEL,"preferredVideoHdrLevel",{"":"",AUTO:"AUTO",SDR:"SDR",
243
- PQ:"PQ",HLG:"HLG"},b);this.addBoolInput_(a.START_AT_SEGMENT_BOUNDARY,"streaming.startAtSegmentBoundary").addBoolInput_(a.IGNORE_TEXT_FAILURES,"streaming.ignoreTextStreamFailures").addBoolInput_(a.STALL_DETECTOR_ENABLED,"streaming.stallEnabled").addBoolInput_(a.USE_NATIVE_HLS_SAFARI,"streaming.useNativeHlsOnSafari");this.addRetrySection_("streaming",a.STREAMING_RETRY_SECTION_HEADER)}addMediaSourceSection_(){const a=shakaDemo.MessageIds,b=this.resolveExternLink_(".MediaSourceConfiguration");this.addSection_(a.MEDIA_SOURCE_SECTION_HEADER,
244
- b).addTextInput_(a.SOURCE_BUFFER_EXTRA_FEATURES,"mediaSource.sourceBufferExtraFeatures").addBoolInput_(a.FORCE_TRANSMUX,"mediaSource.forceTransmux").addBoolInput_(a.INSERT_FAKE_ENCRYPTION_IN_INIT,"mediaSource.insertFakeEncryptionInInit")}addLanguageSection_(){const a=shakaDemo.MessageIds,b=this.resolveExternLink_(".PlayerConfiguration"),c=shaka.config.AutoShowText,d={NEVER:shakaDemoMain.getLocalizedString(a.AUTO_SHOW_TEXT_NEVER),ALWAYS:shakaDemoMain.getLocalizedString(a.AUTO_SHOW_TEXT_ALWAYS),IF_PREFERRED_TEXT_LANGUAGE:shakaDemoMain.getLocalizedString(a.AUTO_SHOW_TEXT_IF_PREFERRED_TEXT_LANGUAGE),
245
- IF_SUBTITLES_MAY_BE_NEEDED:shakaDemoMain.getLocalizedString(a.AUTO_SHOW_TEXT_IF_SUBTITLES_MAY_BE_NEEDED)};this.addSection_(a.LANGUAGE_SECTION_HEADER,b).addTextInput_(a.AUDIO_LANGUAGE,"preferredAudioLanguage").addTextInput_(a.AUDIO_LABEL,"preferredAudioLabel").addTextInput_(a.TEXT_LANGUAGE,"preferredTextLanguage").addTextInput_(a.TEXT_ROLE,"preferredTextRole").addSelectInput_(a.AUTO_SHOW_TEXT,"autoShowText",c,d);this.addCustomTextInput_(a.UI_LOCALE,e=>{shakaDemoMain.setUILocale(e.value);shakaDemoMain.remakeHash()});
246
- this.latestInput_.input().value=shakaDemoMain.getUILocale();this.addNumberInput_(a.AUDIO_CHANNEL_COUNT,"preferredAudioChannelCount");this.addBoolInput_(a.PREFER_FORCED_SUBS,"preferForcedSubs")}addMetaSection_(){var a=shakaDemo.MessageIds;this.addSection_(null,null);this.addCustomBoolInput_(a.SHAKA_CONTROLS,e=>{shakaDemoMain.setNativeControlsEnabled(!e.checked);e.checked&&(shakaDemoMain.configure("streaming.alwaysStreamText",!0),shakaDemoMain.remakeHash());this.reloadAndSaveState_()});shakaDemoMain.getNativeControlsEnabled()||
247
- (this.latestInput_.input().checked=!0);shakaDemoMain.getNativeControlsEnabled()?(this.addCustomBoolInput_(a.TRICK_PLAY_CONTROLS,e=>{},a.TRICK_PLAY_CONTROLS_WARNING),this.latestInput_.input().disabled=!0,this.latestInput_.input().checked=!1):(this.addCustomBoolInput_(a.TRICK_PLAY_CONTROLS,e=>{shakaDemoMain.setTrickPlayControlsEnabled(e.checked)}),shakaDemoMain.getTrickPlayControlsEnabled()&&(this.latestInput_.input().checked=!0));if(shaka.log){var b=shaka.log.Level,c=shaka.log.setLevel,d={info:shakaDemoMain.getLocalizedString(a.LOG_LEVEL_INFO),
248
- debug:shakaDemoMain.getLocalizedString(a.LOG_LEVEL_DEBUG),v:shakaDemoMain.getLocalizedString(a.LOG_LEVEL_V),vv:shakaDemoMain.getLocalizedString(a.LOG_LEVEL_VV)};this.addCustomSelectInput_(a.LOG_LEVEL,d,e=>{switch(e.value){case "info":c(b.INFO);break;case "debug":c(b.DEBUG);break;case "vv":c(b.V2);break;case "v":c(b.V1)}shakaDemoMain.remakeHash()});a=this.latestInput_.input();switch(shaka.log.currentLevel){case b.DEBUG:a.value="debug";break;case b.V2:a.value="vv";break;case b.V1:a.value="v";break;
249
- default:a.value="info"}}}resolveExternLink_(a){return"../docs/api/shaka.extern.html#"+a}addSection_(a,b){this.sections_.push(new shakaDemo.InputContainer(this.container_,a,a?shakaDemo.InputContainer.Style.ACCORDION:shakaDemo.InputContainer.Style.VERTICAL,b));return this}addBoolInput_(a,b,c){this.addCustomBoolInput_(a,d=>{shakaDemoMain.configure(b,d.checked);shakaDemoMain.remakeHash()},c);shakaDemoMain.getCurrentConfigValue(b)&&(this.latestInput_.input().checked=!0);return this}addCustomBoolInput_(a,
250
- b,c){this.createRow_(a,c);a=shakaDemoMain.getLocalizedString(a);this.latestInput_=new shakaDemo.BoolInput(this.getLatestSection_(),a,b);return this}addTextInput_(a,b,c){this.addCustomTextInput_(a,d=>{shakaDemoMain.configure(b,d.value);shakaDemoMain.remakeHash()},c);this.latestInput_.input().value=shakaDemoMain.getCurrentConfigValue(b);return this}addCustomTextInput_(a,b,c){this.createRow_(a,c);a=shakaDemoMain.getLocalizedString(a);this.latestInput_=new shakaDemo.TextInput(this.getLatestSection_(),
251
- a,b);return this}addNumberInput_(a,b,c=!1,d=!0,e=!1,f){this.createRow_(a,f);a=shakaDemoMain.getLocalizedString(a);this.latestInput_=new shakaDemo.NumberInput(this.getLatestSection_(),a,g=>{shakaDemoMain.resetConfiguration(b);shakaDemoMain.remakeHash();"Infinity"==g.value?(shakaDemoMain.configure(b,Infinity),shakaDemoMain.remakeHash()):""==g.value&&e||(g=Number(g.value),0==g&&!d||isNaN(g)||Math.floor(g)!=g&&!c||(shakaDemoMain.configure(b,g),shakaDemoMain.remakeHash()))},c,d,e);this.latestInput_.input().value=
252
- shakaDemoMain.getCurrentConfigValue(b);isNaN(Number(this.latestInput_.input().value))&&e&&(this.latestInput_.input().value="");return this}addDatalistInput_(a,b,c,d){this.createRow_(a,d);a=shakaDemoMain.getLocalizedString(a);this.latestInput_=new shakaDemo.DatalistInput(this.getLatestSection_(),a,c,b);return this}addCustomSelectInput_(a,b,c,d){this.createRow_(a,d);this.latestInput_=new shakaDemo.SelectInput(this.getLatestSection_(),null,c,b);return this}addSelectInput_(a,b,c,d,e){for(const f in c)f in
198
+ this.header_.classList.add("mdl-button--raised"),this.header_.classList.add("mdl-button"),this.header_.classList.add("mdl-js-button"),this.header_.classList.add("mdl-js-ripple-effect"),this.header_.addEventListener("click",()=>{this.getIsOpen()?this.close():this.open()})):(this.header_=document.createElement("div"),this.header_.classList.add("input-header"));this.header_.textContent=b;a.appendChild(this.header_)}addDocLink_(a,b){const c=document.createElement("a");c.href=b;c.target="_blank";c.classList.add("mdl-button");
199
+ c.classList.add("mdl-js-button");c.classList.add("mdl-js-ripple-effect");c.classList.add("mdl-button--colored");b=document.createElement("i");b.classList.add("material-icons-round");b.textContent="help";c.appendChild(b);a.appendChild(c)}setDefaultRowClass(a){this.defaultRowClass_=a}getClassList(){return this.table_.classList}addRow(a,b,c){c=c||this.defaultRowClass_||"";this.latestRow_=document.createElement("div");c&&this.latestRow_.classList.add(c);this.table_.appendChild(this.latestRow_);c="input-container-row-"+
200
+ this.numRows_;this.numRows_+=1;if(a){const d=document.createElement("label");d.setAttribute("for",c);d.classList.add("input-container-label");const e=document.createElement("b");e.textContent=a;d.appendChild(e);this.latestRow_.appendChild(d)}this.latestElementContainer=document.createElement("div");this.latestRow_.appendChild(this.latestElementContainer);this.latestElementContainer.classList.add("input-container-row");this.latestElementContainer.id=c;if(this.latestTooltip=b)shakaDemo.Tooltips.make(this.latestRow_,
201
+ b),this.latestRow_.setAttribute("tabindex",-1),this.latestRow_.classList.add("borderless")}};shakaDemo.InputContainer.Style={VERTICAL:"input-container-style-vertical",ACCORDION:"input-container-style-accordion",FLEX:"input-container-style-flex"};let shakaDemoConfig;
202
+ shakaDemo.Config=class{static init(){const a=shakaDemoMain.getHamburgerMenu();shakaDemoConfig=new shakaDemo.Config(a)}constructor(a){this.container_=a;this.sections_=[];this.latestInput_=null;this.reload_();document.addEventListener("shaka-main-config-change",()=>{this.reloadAndSaveState_()});document.addEventListener("shaka-main-drawer-state-change",()=>{this.setContentAvailability_(shakaDemoMain.getIsDrawerOpen())});this.setContentAvailability_(shakaDemoMain.getIsDrawerOpen())}setContentAvailability_(a){a?this.container_.classList.remove("hidden"):
203
+ this.container_.classList.add("hidden")}reload_(){shaka.util.Dom.removeAllChildren(this.container_);this.sections_=[];this.addMetaSection_();this.addLanguageSection_();this.addAbrSection_();this.addOfflineSection_();this.addDrmSection_();this.addStreamingSection_();this.addMediaSourceSection_();this.addManifestSection_();this.addRetrictionsSection_("","Restrictions");this.addCmcdSection_();this.addLcevcSection_();this.addAdsSection_()}reloadAndSaveState_(){const a=this.sections_.map(b=>b.getIsOpen());
204
+ this.reload_();for(let b=0;b<a.length;b++){const c=this.sections_[b];a[b]&&c.open()}componentHandler.upgradeDom()}addDrmSection_(){var a=this.resolveExternLink_(".DrmConfiguration");this.addSection_("DRM",a).addBoolInput_("Delay License Request Until Played","drm.delayLicenseRequestUntilPlayed").addBoolInput_("Log license exchange data","drm.logLicenseExchange").addNumberInput_("Update expiration time","drm.updateExpirationTime",!0,!1,!0).addBoolInput_('Parse inband "pssh" from media segments',"drm.parseInbandPsshEnabled").addTextInput_("Min HDCP version",
205
+ "drm.minHdcpVersion");const b=shakaDemoMain.getConfiguration().drm.advanced||{};a=(d,e,f)=>{this.addDatalistInput_(d,f,g=>{for(const h of shakaDemo.Main.commonDrmSystems)h in b||(b[h]=shakaDemo.Main.defaultAdvancedDrmConfig());for(const h in b)b[h][e]=g.value;shakaDemoMain.configure("drm.advanced",b);shakaDemoMain.remakeHash()});if(d=Object.keys(b)[0])d=b[d][e],this.latestInput_.input().value=d};const c="SW_SECURE_CRYPTO SW_SECURE_DECODE HW_SECURE_CRYPTO HW_SECURE_DECODE HW_SECURE_ALL 150 2000 3000".split(" ");
206
+ a("Video Robustness","videoRobustness",c);a("Audio Robustness","audioRobustness",c);a("Session Type","sessionType",["temporary","persistent-license"]);this.addRetrySection_("drm","DRM Retry Parameters")}addManifestSection_(){const a=this.resolveExternLink_(".ManifestConfiguration");this.addSection_("Manifest",a).addBoolInput_("Ignore DASH DRM Info","manifest.dash.ignoreDrmInfo").addBoolInput_("Auto-Correct DASH Drift","manifest.dash.autoCorrectDrift").addBoolInput_("Disable Xlink processing","manifest.dash.disableXlinkProcessing").addBoolInput_("Xlink Should Fail Gracefully",
207
+ "manifest.dash.xlinkFailGracefully").addBoolInput_("Ignore DASH suggestedPresentationDelay","manifest.dash.ignoreSuggestedPresentationDelay").addBoolInput_("Ignore empty DASH AdaptationSets","manifest.dash.ignoreEmptyAdaptationSet").addBoolInput_("Ignore DASH maxSegmentDuration","manifest.dash.ignoreMaxSegmentDuration").addBoolInput_("Ignore HLS Text Stream Failures","manifest.hls.ignoreTextStreamFailures").addBoolInput_("Ignore HLS Image Stream Failures","manifest.hls.ignoreImageStreamFailures").addTextInput_("Default Audio Codec",
208
+ "manifest.hls.defaultAudioCodec").addTextInput_("Default Video Codec","manifest.hls.defaultVideoCodec").addBoolInput_("Ignore Program Date Time from manifest","manifest.hls.ignoreManifestProgramDateTime").addBoolInput_("Use Safari behavior for live","manifest.hls.useSafariBehaviorForLive").addNumberInput_("Live segments delay","manifest.hls.liveSegmentsDelay").addBoolInput_("Enable HLS sequence mode","manifest.hls.sequenceMode").addBoolInput_("Ignore Manifest Timestamps in Segments Mode","manifest.hls.ignoreManifestTimestampsInSegmentsMode").addNumberInput_("Availability Window Override",
209
+ "manifest.availabilityWindowOverride",!0,!1,!0).addTextInput_("Clock Sync URI","manifest.dash.clockSyncUri").addNumberInput_("Default Presentation Delay","manifest.defaultPresentationDelay").addBoolInput_("Enable Audio Groups","manifest.dash.enableAudioGroups").addBoolInput_("Ignore Min Buffer Time","manifest.dash.ignoreMinBufferTime").addNumberInput_("Initial Segment Limit","manifest.dash.initialSegmentLimit",!1,!1,!0).addBoolInput_("Enable DASH sequence mode","manifest.dash.sequenceMode").addBoolInput_("Disable Audio",
210
+ "manifest.disableAudio").addBoolInput_("Disable Video","manifest.disableVideo").addBoolInput_("Disable Text","manifest.disableText").addBoolInput_("Disable Thumbnails","manifest.disableThumbnails").addBoolInput_("Enable segment-relative VTT Timing","manifest.segmentRelativeVttTiming").addBoolInput_("Enable MSS sequence mode","manifest.mss.sequenceMode");this.addRetrySection_("manifest","Manifest Retry Parameters")}addAbrSection_(){const a=this.resolveExternLink_(".AbrConfiguration");this.addSection_("Adaptation",
211
+ a).addBoolInput_("Enabled","abr.enabled").addBoolInput_("Use Network Information API","abr.useNetworkInformation").addNumberInput_("Default Bandwidth EstimatZ","abr.defaultBandwidthEstimate").addNumberInput_("Bandwidth Downgrade Target","abr.bandwidthDowngradeTarget",!0).addNumberInput_("Bandwidth Upgrade Target","abr.bandwidthUpgradeTarget",!0).addNumberInput_("Switch Interval","abr.switchInterval",!0).addNumberInput_("Min total Bytes","abr.advanced.minTotalBytes").addNumberInput_("Min Bytes","abr.advanced.minBytes").addNumberInput_("Fast half life",
212
+ "abr.advanced.fastHalfLife",!0).addNumberInput_("Slow half life","abr.advanced.slowHalfLife",!0).addBoolInput_("Restrict to element size","abr.restrictToElementSize").addBoolInput_("Restrict to screen size","abr.restrictToScreenSize").addBoolInput_("Ignore device pixel ratio","abr.ignoreDevicePixelRatio").addBoolInput_("Clear video buffer on abr rendition switch","abr.clearBufferSwitch").addNumberInput_("Safe margin on abr switch rendition","abr.safeMarginSwitch",!0);this.addRetrictionsSection_("abr",
213
+ "Adaptation Restrictions")}addCmcdSection_(){const a=this.resolveExternLink_(".CmcdConfiguration");this.addSection_("CMCD",a).addBoolInput_("Enabled","cmcd.enabled").addTextInput_("Session ID","cmcd.sessionId").addTextInput_("Content ID","cmcd.contentId").addBoolInput_("Use Headers","cmcd.useHeaders")}addLcevcSection_(){const a=this.resolveExternLink_(".LcevcConfiguration");this.addSection_("MPEG-5 Part-2 LCEVC",a).addBoolInput_("Enabled","lcevc.enabled").addBoolInput_("LCEVC Dynamic Performance scaling",
214
+ "lcevc.dynamicPerformanceScaling").addNumberInput_("LCEVC Log Level","lcevc.logLevel").addBoolInput_("Draw LCEVC Logo","lcevc.drawLogo")}addAdsSection_(){const a=this.resolveExternLink_(".AdsConfiguration");this.addSection_("Ads",a).addBoolInput_("Custom playhead tracker","ads.customPlayheadTracker")}addRetrictionsSection_(a,b){a=(a?a+".":"")+"restrictions.";const c=this.resolveExternLink_(".Restrictions");this.addSection_(b,c).addNumberInput_("Min Width",a+"minWidth").addNumberInput_("Max Width",
215
+ a+"maxWidth").addNumberInput_("Min Height",a+"minHeight").addNumberInput_("Max Height",a+"maxHeight").addNumberInput_("Min Pixels",a+"minPixels").addNumberInput_("Max Pixels",a+"maxPixels").addNumberInput_("Min Framerate",a+"minFrameRate").addNumberInput_("Max Framerate",a+"maxFrameRate").addNumberInput_("Min Bandwidth",a+"minBandwidth").addNumberInput_("Max Bandwidth",a+"maxBandwidth")}addRetrySection_(a,b){a+=".retryParameters.";const c=this.resolveExternLink_(".RetryParameters");this.addSection_(b,
216
+ c).addNumberInput_("Max Attempts",a+"maxAttempts").addNumberInput_("Base Delay",a+"baseDelay",!0).addNumberInput_("Backoff Factor",a+"backoffFactor",!0).addNumberInput_("Fuzz Factor",a+"fuzzFactor",!0).addNumberInput_("Timeout Factor",a+"timeout",!0).addNumberInput_("Stall Timeout",a+"stallTimeout",!0).addNumberInput_("Connection Timeout",a+"connectionTimeout",!0)}addOfflineSection_(){const a=this.resolveExternLink_(".OfflineConfiguration");this.addSection_("Offline",a).addBoolInput_("Use Persistent Licenses",
217
+ "offline.usePersistentLicense").addNumberInput_("Number of Parallel Downloads","offline.numberOfParallelDownloads")}addStreamingSection_(){const a=this.resolveExternLink_(".StreamingConfiguration");this.addSection_("Streaming",a).addNumberInput_("Gap detection threshold","streaming.gapDetectionThreshold",!0).addNumberInput_("Gap Jump Timer Time","streaming.gapJumpTimerTime",!0).addNumberInput_("Buffering Goal","streaming.bufferingGoal",!0).addNumberInput_("Duration Backoff","streaming.durationBackoff",
218
+ !0).addNumberInput_("Rebuffering Goal","streaming.rebufferingGoal",!0).addNumberInput_("Buffer Behind","streaming.bufferBehind",!0).addNumberInput_("Safe Seek Offset","streaming.safeSeekOffset",!0).addNumberInput_("Stall Threshold","streaming.stallThreshold",!0).addNumberInput_("Safe Skip Distance","streaming.stallSkip",!0).addNumberInput_("Inaccurate Manifest Tolerance","streaming.inaccurateManifestTolerance",!0).addBoolInput_("Low Latency Mode","streaming.lowLatencyMode").addBoolInput_("Auto Low Latency Mode",
219
+ "streaming.autoLowLatencyMode").addBoolInput_("Force HTTPS","streaming.forceHTTPS").addBoolInput_("Prefer native HLS playback when available","streaming.preferNativeHls").addNumberInput_("Update interval seconds","streaming.updateIntervalSeconds",!0).addBoolInput_("Dispatch all emsg boxes","streaming.dispatchAllEmsgBoxes").addBoolInput_("Observe media quality changes","streaming.observeQualityChanges").addNumberInput_("Max Variant Disabled Time","streaming.maxDisabledTime").addNumberInput_("Segment Prefetch Limit",
220
+ "streaming.segmentPrefetchLimit").addBoolInput_("Live Sync","streaming.liveSync").addNumberInput_("Max latency for live sync","streaming.liveSyncMaxLatency",!0,!0).addNumberInput_("Playback rate for live sync","streaming.liveSyncPlaybackRate",!0,!1);shakaDemoMain.getNativeControlsEnabled()?(this.addCustomBoolInput_("Always Stream Text",b=>{},"Text must always be streamed while native controls are enabled, for captions to work."),this.latestInput_.input().disabled=!0,this.latestInput_.input().checked=
221
+ !0):this.addBoolInput_("Always Stream Text","streaming.alwaysStreamText");this.addSelectInput_("Preferred HDR Level","preferredVideoHdrLevel",{"":"",AUTO:"AUTO",SDR:"SDR",PQ:"PQ",HLG:"HLG"},{AUTO:"Auto Detect",SDR:"SDR",PQ:"PQ",HLG:"HLG","":"No Preference"});this.addBoolInput_("Start At Segment Boundary","streaming.startAtSegmentBoundary").addBoolInput_("Ignore Text Stream Failures","streaming.ignoreTextStreamFailures").addBoolInput_("Stall Detector Enabled","streaming.stallEnabled").addBoolInput_("Use native HLS on Safari",
222
+ "streaming.useNativeHlsOnSafari");this.addRetrySection_("streaming","Streaming Retry Parameters")}addMediaSourceSection_(){const a=shaka.config.CodecSwitchingStrategy,b=this.resolveExternLink_(".MediaSourceConfiguration");this.addSection_("Media source",b).addTextInput_("Source buffer extra features","mediaSource.sourceBufferExtraFeatures").addBoolInput_("Force Transmux","mediaSource.forceTransmux").addBoolInput_("Insert fake encryption in init segments when needed by the platform.","mediaSource.insertFakeEncryptionInInit").addSelectInput_("Codec Switching Strategy",
223
+ "mediaSource.codecSwitchingStrategy",a,{RELOAD:"reload",SMOOTH:"smooth"})}addLanguageSection_(){const a=this.resolveExternLink_(".PlayerConfiguration"),b=shaka.config.AutoShowText;this.addSection_("Language",a).addTextInput_("Preferred Audio Language","preferredAudioLanguage").addTextInput_("Preferred Audio Label","preferredAudioLabel").addTextInput_("Preferred Text Language","preferredTextLanguage").addTextInput_("Preferred Text Role","preferredTextRole").addSelectInput_("Auto-Show Text","autoShowText",
224
+ b,{NEVER:"Never",ALWAYS:"Always",IF_PREFERRED_TEXT_LANGUAGE:"If preferred text language",IF_SUBTITLES_MAY_BE_NEEDED:"If subtitles may be needed"});this.addCustomTextInput_("Preferred UI Locale",c=>{shakaDemoMain.setUILocale(c.value);shakaDemoMain.remakeHash()});this.latestInput_.input().value=shakaDemoMain.getUILocale();this.addNumberInput_("Preferred Audio Channel Count","preferredAudioChannelCount");this.addBoolInput_("Prefer Forced Subs","preferForcedSubs")}addMetaSection_(){this.addSection_(null,
225
+ null);this.addCustomBoolInput_("Shaka Controls",d=>{shakaDemoMain.setNativeControlsEnabled(!d.checked);d.checked&&(shakaDemoMain.configure("streaming.alwaysStreamText",!0),shakaDemoMain.remakeHash());this.reloadAndSaveState_()});shakaDemoMain.getNativeControlsEnabled()||(this.latestInput_.input().checked=!0);shakaDemoMain.getNativeControlsEnabled()?(this.addCustomBoolInput_("Enabled Trick Play Controls",d=>{},"Trick Play controls require the Shaka UI."),this.latestInput_.input().disabled=!0,this.latestInput_.input().checked=
226
+ !1):(this.addCustomBoolInput_("Enabled Trick Play Controls",d=>{shakaDemoMain.setTrickPlayControlsEnabled(d.checked)}),shakaDemoMain.getTrickPlayControlsEnabled()&&(this.latestInput_.input().checked=!0));if(shaka.log){var a=shaka.log.Level,b=shaka.log.setLevel;this.addCustomSelectInput_("Log Level",{info:"Info",debug:"Debug",v:"Verbose",vv:"Very Verbose"},d=>{switch(d.value){case "info":b(a.INFO);break;case "debug":b(a.DEBUG);break;case "vv":b(a.V2);break;case "v":b(a.V1)}shakaDemoMain.remakeHash()});
227
+ var c=this.latestInput_.input();switch(shaka.log.currentLevel){case a.DEBUG:c.value="debug";break;case a.V2:c.value="vv";break;case a.V1:c.value="v";break;default:c.value="info"}}}resolveExternLink_(a){return"../docs/api/shaka.extern.html#"+a}addSection_(a,b){this.sections_.push(new shakaDemo.InputContainer(this.container_,a,a?shakaDemo.InputContainer.Style.ACCORDION:shakaDemo.InputContainer.Style.VERTICAL,b));return this}addBoolInput_(a,b,c){this.addCustomBoolInput_(a,d=>{shakaDemoMain.configure(b,
228
+ d.checked);shakaDemoMain.remakeHash()},c);shakaDemoMain.getCurrentConfigValue(b)&&(this.latestInput_.input().checked=!0);return this}addCustomBoolInput_(a,b,c){this.createRow_(a,c);this.latestInput_=new shakaDemo.BoolInput(this.getLatestSection_(),a,b);return this}addTextInput_(a,b,c){this.addCustomTextInput_(a,d=>{shakaDemoMain.configure(b,d.value);shakaDemoMain.remakeHash()},c);this.latestInput_.input().value=shakaDemoMain.getCurrentConfigValue(b);return this}addCustomTextInput_(a,b,c){this.createRow_(a,
229
+ c);this.latestInput_=new shakaDemo.TextInput(this.getLatestSection_(),a,b);return this}addNumberInput_(a,b,c=!1,d=!0,e=!1,f){this.createRow_(a,f);this.latestInput_=new shakaDemo.NumberInput(this.getLatestSection_(),a,g=>{shakaDemoMain.resetConfiguration(b);shakaDemoMain.remakeHash();"Infinity"==g.value?(shakaDemoMain.configure(b,Infinity),shakaDemoMain.remakeHash()):""==g.value&&e||(g=Number(g.value),0==g&&!d||isNaN(g)||Math.floor(g)!=g&&!c||(shakaDemoMain.configure(b,g),shakaDemoMain.remakeHash()))},
230
+ c,d,e);this.latestInput_.input().value=shakaDemoMain.getCurrentConfigValue(b);isNaN(Number(this.latestInput_.input().value))&&e&&(this.latestInput_.input().value="");return this}addDatalistInput_(a,b,c,d){this.createRow_(a,d);this.latestInput_=new shakaDemo.DatalistInput(this.getLatestSection_(),a,c,b);return this}addCustomSelectInput_(a,b,c,d){this.createRow_(a,d);this.latestInput_=new shakaDemo.SelectInput(this.getLatestSection_(),null,c,b);return this}addSelectInput_(a,b,c,d,e){for(const f in c)f in
253
231
  d||(d[f]=f);this.addCustomSelectInput_(a,d,f=>{shakaDemoMain.configure(b,c[f.value]);shakaDemoMain.remakeHash()},e);a=shakaDemoMain.getCurrentConfigValue(b);for(const f in c)c[f]==a&&(this.latestInput_.input().value=f);return this}createRow_(a,b){this.getLatestSection_().addRow(a,b||null)}getLatestSection_(){goog.asserts.assert(0<this.sections_.length,"Must have at least one section.");return this.sections_[this.sections_.length-1]}};document.addEventListener("shaka-main-loaded",shakaDemo.Config.init);
254
232
  document.addEventListener("shaka-main-cleanup",()=>{shakaDemoConfig=null});let shakaDemoCustom;
255
233
  shakaDemo.Custom=class{static init(){const a=shakaDemoMain.addNavButton("custom");shakaDemoCustom=new shakaDemo.Custom(a.container)}constructor(a){this.dialog_=document.createElement("dialog");this.dialog_.classList.add("mdl-dialog");a.appendChild(this.dialog_);this.dialog_.showModal||dialogPolyfill.registerDialog(this.dialog_);this.assets_=this.loadAssetInfos_();this.assetCards_=[];this.savedList_=document.createElement("div");a.appendChild(this.savedList_);const b=document.createElement("div");b.classList.add("add-button-container");
256
- a.appendChild(b);const c=this.makeButton_("add",shakaDemo.Custom.ButtonStyle_.FAB,()=>{this.showAssetDialog_(ShakaDemoAssetInfo.makeBlankAsset())});b.appendChild(c);document.addEventListener("shaka-main-selected-asset-changed",()=>{this.updateSelected_()});document.addEventListener("shaka-main-offline-progress",()=>{this.updateOfflineProgress_()});document.addEventListener("shaka-main-locale-changed",()=>{this.remakeSavedList_()});document.addEventListener("shaka-main-page-changed",()=>{this.savedList_.childNodes.length||
257
- a.classList.contains("hidden")||this.remakeSavedList_()})}assets(){return Array.from(this.assets_)}updateOfflineProgress_(){for(const a of this.assetCards_)a.updateProgress()}makeField_(a,b,c,d,e){a.addRow(null,null);a=new shakaDemo.TextInput(a,b,d,e);a.extra().textContent=b;c(a.input(),a.container())}makeAssetDialogContentsHeaders_(a,b){const c=document.createElement("div"),d=[],e=(f,g)=>{const h=document.createElement("div");c.appendChild(h);const k=new shakaDemo.InputContainer(h,shakaDemo.MessageIds.LICENSE_HEADER_TITLE,
258
- shakaDemo.InputContainer.Style.VERTICAL,null),l={headerName:f,div:h};d.push(l);let m=!f;const n=(q,r)=>{f&&a.licenseRequestHeaders.delete(f);f=q;l.headerName=q;g=r;if(f&&g){m&&(m=!1,e(null,null),componentHandler.upgradeDom());a.addLicenseRequestHeader(f,g);for(const t of d)if(t!=l&&f==t.headerName){q=d.indexOf(t);d.splice(q,1);c.removeChild(t.div);break}}else m||c.removeChild(h)};var p=shakaDemoMain.getLocalizedString(shakaDemo.MessageIds.LICENSE_HEADER_NAME);this.makeField_(k,p,(q,r)=>{f&&(q.value=
259
- f)},q=>{n(q.value,g)});p=shakaDemoMain.getLocalizedString(shakaDemo.MessageIds.LICENSE_HEADER_VALUE);this.makeField_(k,p,(q,r)=>{g&&(q.value=g)},q=>{n(f,q.value)})};if(0!=a.licenseRequestHeaders.size)for(const f of a.licenseRequestHeaders.keys())e(f,a.licenseRequestHeaders.get(f));e(null,null);return c}makeAssetDialogContentsHLS_(a,b){b=document.createElement("div");const c=new shakaDemo.InputContainer(b,null,shakaDemo.InputContainer.Style.FLEX,null);c.getClassList().add("wide-input");c.setDefaultRowClass("wide-input");
260
- const d=shakaDemoMain.getLocalizedString(shakaDemo.MessageIds.HLS_FULL_MIME_TYPE);this.makeField_(c,d,(e,f)=>{a.mediaPlaylistFullMimeType&&(e.value=a.mediaPlaylistFullMimeType);f=shaka.util.PlayerConfiguration.createDefault();e.placeholder=f.manifest.hls.mediaPlaylistFullMimeType},e=>{a.setMediaPlaylistFullMimeType(e.value)});return b}makeAssetDialogContentsAds_(a,b){b=document.createElement("div");const c=new shakaDemo.InputContainer(b,null,shakaDemo.InputContainer.Style.VERTICAL,null);var d=shakaDemoMain.getLocalizedString(shakaDemo.MessageIds.AD_TAG_URL);
261
- this.makeField_(c,d,(e,f)=>{a.adTagUri&&(e.value=a.adTagUri)},e=>{a.adTagUri=e.value});d=shakaDemoMain.getLocalizedString(shakaDemo.MessageIds.IMA_CONTENT_SRC_ID);this.makeField_(c,d,(e,f)=>{a.imaContentSrcId&&(e.value=a.imaContentSrcId);this.manifestField_.required=this.checkManifestRequired_(a)},e=>{a.imaContentSrcId=e.value;this.manifestField_.required=this.checkManifestRequired_(a)});d=shakaDemoMain.getLocalizedString(shakaDemo.MessageIds.IMA_VIDEO_ID);this.makeField_(c,d,(e,f)=>{a.imaVideoId&&
262
- (e.value=a.imaVideoId);this.manifestField_.required=this.checkManifestRequired_(a)},e=>{a.imaVideoId=e.value;this.manifestField_.required=this.checkManifestRequired_(a)});d=shakaDemoMain.getLocalizedString(shakaDemo.MessageIds.IMA_ASSET_KEY);this.makeField_(c,d,(e,f)=>{a.imaAssetKey&&(e.value=a.imaAssetKey);this.manifestField_.required=this.checkManifestRequired_(a)},e=>{a.imaAssetKey=e.value;this.manifestField_.required=this.checkManifestRequired_(a)});d=shakaDemoMain.getLocalizedString(shakaDemo.MessageIds.IMA_MANIFEST_TYPE);
263
- this.makeField_(c,d,(e,f)=>{a.imaManifestType&&(e.value=a.imaManifestType);this.manifestField_.required=this.checkManifestRequired_(a)},e=>{a.imaManifestType=e.value;this.manifestField_.required=this.checkManifestRequired_(a)});return b}makeAssetDialogContentsDrm_(a,b){b=document.createElement("div");const c=new shakaDemo.InputContainer(b,null,shakaDemo.InputContainer.Style.VERTICAL,null);let d,e;const f=()=>{const h=d.value,k=e.value;if(h)if(a.licenseServers.clear(),k)a.licenseServers.set(k,h);else for(const l of shakaDemo.Main.commonDrmSystems)a.licenseServers.set(l,
264
- h);else a.licenseServers.clear()};var g=shakaDemoMain.getLocalizedString(shakaDemo.MessageIds.LICENSE_SERVER_URL);this.makeField_(c,g,(h,k)=>{d=h;(k=a.licenseServers.keys().next())&&k.value&&(h.value=a.licenseServers.get(k.value))},h=>{f()});g=shakaDemoMain.getLocalizedString(shakaDemo.MessageIds.LICENSE_CERTIFICATE_URL);this.makeField_(c,g,(h,k)=>{a.certificateUri&&(h.value=a.certificateUri)},h=>{a.certificateUri=h.value});g=shakaDemoMain.getLocalizedString(shakaDemo.MessageIds.DRM_SYSTEM);this.makeField_(c,
265
- g,(h,k)=>{e=h;k=a.licenseServers.keys();for(const l of k)if(!shakaDemo.Main.commonDrmSystems.includes(l)){h.value=l;break}},h=>{f()});return b}makeAssetDialogContentsExtra_(a,b){const c=document.createElement("div"),d=new shakaDemo.InputContainer(c,null,shakaDemo.InputContainer.Style.FLEX,null);d.getClassList().add("wide-input");d.setDefaultRowClass("wide-input");const e=shakaDemoMain.getLocalizedString(shakaDemo.MessageIds.EXTRA_SHAKA_PLAYER_CONFIG);this.makeField_(d,e,(f,g)=>{f.setAttribute("rows",
266
- 10);a.extraConfig&&(f.value=JSON.stringify(a.extraConfig,null,2));b.push(f);f=document.createElement("span");f.classList.add("mdl-textfield__error");f.textContent=shakaDemoMain.getLocalizedString(shakaDemo.MessageIds.INVALID_JSON_CONFIG_ERROR);g.appendChild(f)},(f,g)=>{try{if(f.value){const h=JSON.parse(f.value);a.extraConfig=h}else a.extraConfig=null;g.setValid(!0)}catch(h){g.setValid(!1)}},!0);return c}makeAssetDialogContentsMain_(a,b,c){const d=document.createElement("div"),e=new shakaDemo.InputContainer(d,
267
- null,shakaDemo.InputContainer.Style.VERTICAL,null);var f=shakaDemoMain.getLocalizedString(shakaDemo.MessageIds.MANIFEST_URL);this.makeField_(e,f,(g,h)=>{g.value=a.manifestUri;b.push(g);const k=document.createElement("span");k.classList.add("mdl-textfield__error");k.textContent=shakaDemoMain.getLocalizedString(shakaDemo.MessageIds.MANIFEST_URL_ERROR);h.appendChild(k);g.required=this.checkManifestRequired_(a);g.pattern="^(?!([\r\n\t\f\v ]+)$).*$";this.manifestField_=g},g=>{a.manifestUri=g.value.trim()});
268
- f=shakaDemoMain.getLocalizedString(shakaDemo.MessageIds.NAME);this.makeField_(e,f,(g,h)=>{g.value=a.name;b.push(g);const k=document.createElement("span");k.classList.add("mdl-textfield__error");k.textContent=shakaDemoMain.getLocalizedString(shakaDemo.MessageIds.NAME_ERROR);h.appendChild(k);g.required=!0;g.pattern="^(?!( *";for(const l of this.assets_)l!=a&&(g.pattern+="|"+l.name.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"));g.pattern+=")$).*$"},g=>{a.name=g.value});f=shakaDemoMain.getLocalizedString(shakaDemo.MessageIds.ICON_URL);
269
- this.makeField_(e,f,(g,h)=>{a.iconUri&&(g.value=a.iconUri,h=document.createElement("img"),h.src=g.value,h.alt="",c.appendChild(h))},g=>{shaka.util.Dom.removeAllChildren(c);if(a.iconUri=g.value){const h=document.createElement("img");h.src=g.value;h.alt="";c.appendChild(h)}});f=shakaDemoMain.getLocalizedString(shakaDemo.MessageIds.MIME_TYPE);this.makeField_(e,f,(g,h)=>{a.mimeType&&(g.value=a.mimeType)},g=>{a.mimeType=g.value||null});return d}checkManifestRequired_(a){return!(a.imaContentSrcId&&a.imaVideoId||
270
- null!=a.imaAssetKey)}makeAssetDialogContentsFinish_(a,b){const c=document.createElement("tr"),d=shakaDemo.Custom.ButtonStyle_.RAISED;var e=shakaDemoMain.getLocalizedString(shakaDemo.MessageIds.SAVE_BUTTON);c.appendChild(this.makeButton_(e,d,()=>{for(const f of b)if(!f.validity.valid)return;shakaDemoMain.setupOfflineSupport(a);this.assets_.add(a);this.saveAssetInfos_(this.assets_);this.remakeSavedList_();this.dialog_.close()}));e=shakaDemoMain.getLocalizedString(shakaDemo.MessageIds.CANCEL_BUTTON);
271
- c.appendChild(this.makeButton_(e,d,()=>{this.dialog_.close()}));return c}showAssetDialog_(a){shaka.util.Dom.removeAllChildren(this.dialog_);var b=[];const c=document.createElement("div"),d=this.makeAssetDialogContentsMain_(a,b,c),e=this.makeAssetDialogContentsDrm_(a,b),f=this.makeAssetDialogContentsHeaders_(a,b),g=this.makeAssetDialogContentsAds_(a,b),h=this.makeAssetDialogContentsHLS_(a,b),k=this.makeAssetDialogContentsExtra_(a,b);a=this.makeAssetDialogContentsFinish_(a,b);const l=document.createElement("tr"),
272
- m=[],n=[];b=(p,q,r)=>{const t=shakaDemo.Custom.ButtonStyle_.PLAIN;p=shakaDemoMain.getLocalizedString(p);const u=this.makeButton_(p,t,()=>{for(const v of m)v.classList.add("hidden");q.classList.remove("hidden");for(const v of n)v.classList.remove("mdl-button--accent");u.classList.add("mdl-button--accent")});l.appendChild(u);m.push(q);n.push(u);r?u.classList.add("mdl-button--accent"):q.classList.add("hidden")};b(shakaDemo.MessageIds.MAIN_TAB,d,!0);b(shakaDemo.MessageIds.DRM_TAB,e,!1);b(shakaDemo.MessageIds.HEADERS_TAB,
273
- f,!1);b(shakaDemo.MessageIds.ADS_TAB,g,!1);b(shakaDemo.MessageIds.HLS_TAB,h,!1);b(shakaDemo.MessageIds.EXTRA_TAB,k,!1);this.dialog_.appendChild(l);this.dialog_.appendChild(d);this.dialog_.appendChild(e);this.dialog_.appendChild(f);this.dialog_.appendChild(g);this.dialog_.appendChild(h);this.dialog_.appendChild(k);this.dialog_.appendChild(a);this.dialog_.appendChild(c);componentHandler.upgradeDom();this.dialog_.showModal()}loadAssetInfos_(){var a=window.localStorage.getItem(shakaDemo.Custom.saveId_);
274
- return a?(a=JSON.parse(a),new Set(a.map(b=>{b=ShakaDemoAssetInfo.fromJSON(b);shakaDemoMain.setupOfflineSupport(b);return b}))):new Set}saveAssetInfos_(a){const b=shakaDemo.Custom.saveId_;a=Array.from(a);window.localStorage.setItem(b,JSON.stringify(a))}makeButton_(a,b,c){const d=document.createElement("button");switch(b){case shakaDemo.Custom.ButtonStyle_.FAB:d.classList.add("mdl-button--fab");d.classList.add("mdl-button--colored");b=document.createElement("i");b.classList.add("material-icons-round");
275
- b.textContent=a;d.appendChild(b);break;case shakaDemo.Custom.ButtonStyle_.RAISED:d.textContent=a;d.classList.add("mdl-button--raised");break;case shakaDemo.Custom.ButtonStyle_.PLAIN:d.textContent=a}d.addEventListener("click",c);d.classList.add("mdl-button");d.classList.add("mdl-js-button");d.classList.add("mdl-js-ripple-effect");return d}createAssetCardFor_(a){return new shakaDemo.AssetCard(this.savedList_,a,!1,b=>{b.addButton(shakaDemo.MessageIds.PLAY,()=>{shakaDemoMain.loadAsset(a);this.updateSelected_()});
276
- b.addButton(shakaDemo.MessageIds.EDIT_CUSTOM,async()=>{a.unstoreCallback&&await a.unstoreCallback();this.showAssetDialog_(a)});b.addButton(shakaDemo.MessageIds.DELETE_CUSTOM,async()=>{this.assets_.delete(a);a.unstoreCallback&&await a.unstoreCallback();this.saveAssetInfos_(this.assets_);this.remakeSavedList_()},shakaDemo.MessageIds.DELETE_CUSTOM);b.addStoreButton()})}updateSelected_(){for(const a of this.assetCards_)a.selectByAsset(shakaDemoMain.selectedAsset)}remakeSavedList_(){shaka.util.Dom.removeAllChildren(this.savedList_);
277
- if(0==this.assets_.size){const a=(b,c)=>{const d=document.createElement("h2");d.classList.add("mdl-typography--"+b);d.textContent=c;this.savedList_.appendChild(d)};a("title",shakaDemoMain.getLocalizedString(shakaDemo.MessageIds.CUSTOM_INTRO_ONE));a("body-2",shakaDemoMain.getLocalizedString(shakaDemo.MessageIds.CUSTOM_INTRO_TWO));a("body-1",shakaDemoMain.getLocalizedString(shakaDemo.MessageIds.CUSTOM_INTRO_THREE))}else this.assetCards_=Array.from(this.assets_).map(a=>this.createAssetCardFor_(a)),this.updateSelected_()}};
278
- shakaDemo.Custom.ButtonStyle_={RAISED:0,FAB:1,PLAIN:2};shakaDemo.Custom.saveId_="shakaPlayerDemoSavedAssets";document.addEventListener("shaka-main-loaded",shakaDemo.Custom.init);document.addEventListener("shaka-main-cleanup",()=>{shakaDemoCustom=null});shakaDemo.Utils=class{static runThroughHashParams(a,b){const c=[],d=(k,l)=>{c.push(l);a(k,l)};d("audiolang","preferredAudioLanguage");d("textlang","preferredTextLanguage");d("textrole","preferredTextRole");d("channels","preferredAudioChannelCount");c.push("abr.enabled");c.push("drm.advanced");c.push("drm.servers");const e=[],f=[],g=k=>{for(const l in k){e.includes(l)&&!f.includes(l)&&f.push(l);e.push(l);const m=k[l];"number"!=typeof m&&"string"!=typeof m&&"boolean"!=typeof m&&g(m)}};g(b);const h=
279
- (k,l)=>{for(const m in k){let n=m;const p=l+m;if(c.includes(p))continue;f.includes(m)&&(n=p);const q=k[m];"number"==typeof q||"string"==typeof q||"boolean"==typeof q?a(n,p):h(q,p+".")}};h(b,"")}static browserSupportsUncompiledMode(){try{return eval("async ()=>{}"),!0}catch(a){return!1}}};let shakaDemoFront;
234
+ a.appendChild(b);const c=this.makeButton_("add",shakaDemo.Custom.ButtonStyle_.FAB,()=>{this.showAssetDialog_(ShakaDemoAssetInfo.makeBlankAsset())});b.appendChild(c);document.addEventListener("shaka-main-selected-asset-changed",()=>{this.updateSelected_()});document.addEventListener("shaka-main-offline-progress",()=>{this.updateOfflineProgress_()});document.addEventListener("shaka-main-page-changed",()=>{this.savedList_.childNodes.length||a.classList.contains("hidden")||this.remakeSavedList_()})}assets(){return Array.from(this.assets_)}updateOfflineProgress_(){for(const a of this.assetCards_)a.updateProgress()}makeField_(a,
235
+ b,c,d,e){a.addRow(null,null);a=new shakaDemo.TextInput(a,b,d,e);a.extra().textContent=b;c(a.input(),a.container())}makeAssetDialogContentsHeaders_(a,b){const c=document.createElement("div"),d=[],e=(f,g)=>{const h=document.createElement("div");c.appendChild(h);const l=new shakaDemo.InputContainer(h,"License Header",shakaDemo.InputContainer.Style.VERTICAL,null),p={headerName:f,div:h};d.push(p);let k=!f;const m=(n,q)=>{f&&a.licenseRequestHeaders.delete(f);f=n;p.headerName=n;g=q;if(f&&g){k&&(k=!1,e(null,
236
+ null),componentHandler.upgradeDom());a.addLicenseRequestHeader(f,g);for(const r of d)if(r!=p&&f==r.headerName){n=d.indexOf(r);d.splice(n,1);c.removeChild(r.div);break}}else k||c.removeChild(h)};this.makeField_(l,"Header Name",(n,q)=>{f&&(n.value=f)},n=>{m(n.value,g)});this.makeField_(l,"Header Value",(n,q)=>{g&&(n.value=g)},n=>{m(f,n.value)})};if(0!=a.licenseRequestHeaders.size)for(const f of a.licenseRequestHeaders.keys())e(f,a.licenseRequestHeaders.get(f));e(null,null);return c}makeAssetDialogContentsHLS_(a,
237
+ b){b=document.createElement("div");const c=new shakaDemo.InputContainer(b,null,shakaDemo.InputContainer.Style.FLEX,null);c.getClassList().add("wide-input");c.setDefaultRowClass("wide-input");this.makeField_(c,"Full Mime Type for Playing Media Playlists Directly",(d,e)=>{a.mediaPlaylistFullMimeType&&(d.value=a.mediaPlaylistFullMimeType);e=shaka.util.PlayerConfiguration.createDefault();d.placeholder=e.manifest.hls.mediaPlaylistFullMimeType},d=>{a.setMediaPlaylistFullMimeType(d.value)});return b}makeAssetDialogContentsAds_(a,
238
+ b){b=document.createElement("div");const c=new shakaDemo.InputContainer(b,null,shakaDemo.InputContainer.Style.VERTICAL,null);this.makeField_(c,"Ad Tag URL",(d,e)=>{a.adTagUri&&(d.value=a.adTagUri)},d=>{a.adTagUri=d.value});this.makeField_(c,"Content source ID (for VOD DAI Content)",(d,e)=>{a.imaContentSrcId&&(d.value=a.imaContentSrcId);this.manifestField_.required=this.checkManifestRequired_(a)},d=>{a.imaContentSrcId=d.value;this.manifestField_.required=this.checkManifestRequired_(a)});this.makeField_(c,
239
+ "Video ID (for VOD DAI Content)",(d,e)=>{a.imaVideoId&&(d.value=a.imaVideoId);this.manifestField_.required=this.checkManifestRequired_(a)},d=>{a.imaVideoId=d.value;this.manifestField_.required=this.checkManifestRequired_(a)});this.makeField_(c,"Asset key (for LIVE DAI Content)",(d,e)=>{a.imaAssetKey&&(d.value=a.imaAssetKey);this.manifestField_.required=this.checkManifestRequired_(a)},d=>{a.imaAssetKey=d.value;this.manifestField_.required=this.checkManifestRequired_(a)});this.makeField_(c,"Manifest type (for DAI Content)",
240
+ (d,e)=>{a.imaManifestType&&(d.value=a.imaManifestType);this.manifestField_.required=this.checkManifestRequired_(a)},d=>{a.imaManifestType=d.value;this.manifestField_.required=this.checkManifestRequired_(a)});return b}makeAssetDialogContentsDrm_(a,b){b=document.createElement("div");const c=new shakaDemo.InputContainer(b,null,shakaDemo.InputContainer.Style.VERTICAL,null);let d,e;const f=()=>{const g=d.value,h=e.value;if(g)if(a.licenseServers.clear(),h)a.licenseServers.set(h,g);else for(const l of shakaDemo.Main.commonDrmSystems)a.licenseServers.set(l,
241
+ g);else a.licenseServers.clear()};this.makeField_(c,"Custom License Server URL",(g,h)=>{d=g;(h=a.licenseServers.keys().next())&&h.value&&(g.value=a.licenseServers.get(h.value))},g=>{f()});this.makeField_(c,"Custom License Certificate URL",(g,h)=>{a.certificateUri&&(g.value=a.certificateUri)},g=>{a.certificateUri=g.value});this.makeField_(c,"Custom DRM System",(g,h)=>{e=g;h=a.licenseServers.keys();for(const l of h)if(!shakaDemo.Main.commonDrmSystems.includes(l)){g.value=l;break}},g=>{f()});return b}makeAssetDialogContentsExtra_(a,
242
+ b){const c=document.createElement("div"),d=new shakaDemo.InputContainer(c,null,shakaDemo.InputContainer.Style.FLEX,null);d.getClassList().add("wide-input");d.setDefaultRowClass("wide-input");this.makeField_(d,"Extra Shaka Player configuration (JSON)",(e,f)=>{e.setAttribute("rows",10);a.extraConfig&&(e.value=JSON.stringify(a.extraConfig,null,2));b.push(e);e=document.createElement("span");e.classList.add("mdl-textfield__error");e.textContent="Invalid JSON configuration";f.appendChild(e)},(e,f)=>{try{if(e.value){const g=
243
+ JSON.parse(e.value);a.extraConfig=g}else a.extraConfig=null;f.setValid(!0)}catch(g){f.setValid(!1)}},!0);return c}makeAssetDialogContentsMain_(a,b,c){const d=document.createElement("div"),e=new shakaDemo.InputContainer(d,null,shakaDemo.InputContainer.Style.VERTICAL,null);this.makeField_(e,"Manifest URL",(f,g)=>{f.value=a.manifestUri;b.push(f);const h=document.createElement("span");h.classList.add("mdl-textfield__error");h.textContent="Must have a manifest URL, or IMA DAI id fields";g.appendChild(h);
244
+ f.required=this.checkManifestRequired_(a);f.pattern="^(?!([\r\n\t\f\v ]+)$).*$";this.manifestField_=f},f=>{a.manifestUri=f.value.trim()});this.makeField_(e,"Name",(f,g)=>{f.value=a.name;b.push(f);const h=document.createElement("span");h.classList.add("mdl-textfield__error");h.textContent="Must be a unique name.";g.appendChild(h);f.required=!0;f.pattern="^(?!( *";for(const l of this.assets_)l!=a&&(f.pattern+="|"+l.name.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"));f.pattern+=")$).*$"},f=>{a.name=f.value});
245
+ this.makeField_(e,"Icon URL",(f,g)=>{a.iconUri&&(f.value=a.iconUri,g=document.createElement("img"),g.src=f.value,g.alt="",c.appendChild(g))},f=>{shaka.util.Dom.removeAllChildren(c);if(a.iconUri=f.value){const g=document.createElement("img");g.src=f.value;g.alt="";c.appendChild(g)}});this.makeField_(e,"MIME Type",(f,g)=>{a.mimeType&&(f.value=a.mimeType)},f=>{a.mimeType=f.value||null});return d}checkManifestRequired_(a){return!(a.imaContentSrcId&&a.imaVideoId||null!=a.imaAssetKey)}makeAssetDialogContentsFinish_(a,
246
+ b){const c=document.createElement("tr"),d=shakaDemo.Custom.ButtonStyle_.RAISED;c.appendChild(this.makeButton_("Save",d,()=>{for(const e of b)if(!e.validity.valid)return;shakaDemoMain.setupOfflineSupport(a);this.assets_.add(a);this.saveAssetInfos_(this.assets_);this.remakeSavedList_();this.dialog_.close()}));c.appendChild(this.makeButton_("Cancel",d,()=>{this.dialog_.close()}));return c}showAssetDialog_(a){shaka.util.Dom.removeAllChildren(this.dialog_);var b=[];const c=document.createElement("div"),
247
+ d=this.makeAssetDialogContentsMain_(a,b,c),e=this.makeAssetDialogContentsDrm_(a,b),f=this.makeAssetDialogContentsHeaders_(a,b),g=this.makeAssetDialogContentsAds_(a,b),h=this.makeAssetDialogContentsHLS_(a,b),l=this.makeAssetDialogContentsExtra_(a,b);a=this.makeAssetDialogContentsFinish_(a,b);const p=document.createElement("tr"),k=[],m=[];b=(n,q,r)=>{const t=this.makeButton_(n,shakaDemo.Custom.ButtonStyle_.PLAIN,()=>{for(const u of k)u.classList.add("hidden");q.classList.remove("hidden");for(const u of m)u.classList.remove("mdl-button--accent");
248
+ t.classList.add("mdl-button--accent")});p.appendChild(t);k.push(q);m.push(t);r?t.classList.add("mdl-button--accent"):q.classList.add("hidden")};b("Main",d,!0);b("Drm",e,!1);b("Headers",f,!1);b("Ads",g,!1);b("HLS",h,!1);b("Extra Config",l,!1);this.dialog_.appendChild(p);this.dialog_.appendChild(d);this.dialog_.appendChild(e);this.dialog_.appendChild(f);this.dialog_.appendChild(g);this.dialog_.appendChild(h);this.dialog_.appendChild(l);this.dialog_.appendChild(a);this.dialog_.appendChild(c);componentHandler.upgradeDom();
249
+ this.dialog_.showModal()}loadAssetInfos_(){var a=window.localStorage.getItem(shakaDemo.Custom.saveId_);return a?(a=JSON.parse(a),new Set(a.map(b=>{b=ShakaDemoAssetInfo.fromJSON(b);shakaDemoMain.setupOfflineSupport(b);return b}))):new Set}saveAssetInfos_(a){const b=shakaDemo.Custom.saveId_;a=Array.from(a);window.localStorage.setItem(b,JSON.stringify(a))}makeButton_(a,b,c){const d=document.createElement("button");switch(b){case shakaDemo.Custom.ButtonStyle_.FAB:d.classList.add("mdl-button--fab");d.classList.add("mdl-button--colored");
250
+ b=document.createElement("i");b.classList.add("material-icons-round");b.textContent=a;d.appendChild(b);break;case shakaDemo.Custom.ButtonStyle_.RAISED:d.textContent=a;d.classList.add("mdl-button--raised");break;case shakaDemo.Custom.ButtonStyle_.PLAIN:d.textContent=a}d.addEventListener("click",c);d.classList.add("mdl-button");d.classList.add("mdl-js-button");d.classList.add("mdl-js-ripple-effect");return d}createAssetCardFor_(a){return new shakaDemo.AssetCard(this.savedList_,a,!1,b=>{b.addButton("Play",
251
+ ()=>{shakaDemoMain.loadAsset(a);this.updateSelected_()});b.addButton("Edit",async()=>{a.unstoreCallback&&await a.unstoreCallback();this.showAssetDialog_(a)});b.addButton("Delete",async()=>{this.assets_.delete(a);a.unstoreCallback&&await a.unstoreCallback();this.saveAssetInfos_(this.assets_);this.remakeSavedList_()},"Delete this custom asset?");b.addStoreButton()})}updateSelected_(){for(const a of this.assetCards_)a.selectByAsset(shakaDemoMain.selectedAsset)}remakeSavedList_(){shaka.util.Dom.removeAllChildren(this.savedList_);
252
+ if(0==this.assets_.size){const a=(b,c)=>{const d=document.createElement("h2");d.classList.add("mdl-typography--"+b);d.textContent=c;this.savedList_.appendChild(d)};a("title","Try Shaka Player with your own content!");a("body-2","Press the button below to add a custom asset.");a("body-1","Custom assets will remain even after reloading the page.")}else this.assetCards_=Array.from(this.assets_).map(a=>this.createAssetCardFor_(a)),this.updateSelected_()}};
253
+ shakaDemo.Custom.ButtonStyle_={RAISED:0,FAB:1,PLAIN:2};shakaDemo.Custom.saveId_="shakaPlayerDemoSavedAssets";document.addEventListener("shaka-main-loaded",shakaDemo.Custom.init);document.addEventListener("shaka-main-cleanup",()=>{shakaDemoCustom=null});shakaDemo.Utils=class{static runThroughHashParams(a,b){const c=[],d=(l,p)=>{c.push(p);a(l,p)};d("audiolang","preferredAudioLanguage");d("textlang","preferredTextLanguage");d("textrole","preferredTextRole");d("channels","preferredAudioChannelCount");c.push("abr.enabled");c.push("drm.advanced");c.push("drm.servers");const e=[],f=[],g=l=>{for(const p in l){e.includes(p)&&!f.includes(p)&&f.push(p);e.push(p);const k=l[p];"number"!=typeof k&&"string"!=typeof k&&"boolean"!=typeof k&&g(k)}};g(b);const h=
254
+ (l,p)=>{for(const k in l){let m=k;const n=p+k;if(c.includes(n))continue;f.includes(k)&&(m=n);const q=l[k];"number"==typeof q||"string"==typeof q||"boolean"==typeof q?a(m,n):h(q,n+".")}};h(b,"")}static browserSupportsUncompiledMode(){try{return eval("async ()=>{}"),!0}catch(a){return!1}}};let shakaDemoFront;
280
255
  shakaDemo.Front=class{static init(){const a=shakaDemoMain.addNavButton("front");shakaDemoFront=new shakaDemo.Front(a.container)}constructor(a){this.assetCards_=[];this.messageDiv_=document.createElement("div");this.assetCardDiv_=document.createElement("div");a.appendChild(this.messageDiv_);this.makeMessage_();a.appendChild(this.assetCardDiv_);document.addEventListener("shaka-main-selected-asset-changed",()=>{this.updateSelected_()});document.addEventListener("shaka-main-offline-progress",()=>{this.updateOfflineProgress_()});
281
- document.addEventListener("shaka-main-locale-changed",()=>{this.remakeAssetCards_()});document.addEventListener("shaka-main-page-changed",()=>{this.assetCardDiv_.childNodes.length||a.classList.contains("hidden")||this.remakeAssetCards_()})}makeMessage_(){if(!window.localStorage.getItem("shakaPlayerHideFrontMessage")){var a=(b,c)=>{const d=document.createElement("h2");d.classList.add("mdl-typography--"+b);d.textContent=shakaDemoMain.getLocalizedString(c);this.messageDiv_.appendChild(d)};a("body-2",
282
- shakaDemo.MessageIds.FRONT_INTRO_ONE);a("body-1",shakaDemo.MessageIds.FRONT_INTRO_TWO);a=document.createElement("button");a.classList.add("mdl-button");a.classList.add("mdl-button--colored");a.classList.add("mdl-js-button");a.classList.add("mdl-js-ripple-effect");a.textContent=shakaDemoMain.getLocalizedString(shakaDemo.MessageIds.FRONT_INTRO_DISMISS);a.addEventListener("click",()=>{shaka.util.Dom.removeAllChildren(this.messageDiv_);window.localStorage.setItem("shakaPlayerHideFrontMessage","true")});
283
- this.messageDiv_.appendChild(a)}}remakeAssetCards_(){shaka.util.Dom.removeAllChildren(this.assetCardDiv_);this.assetCards_=shakaAssets.testAssets.filter(a=>a.isFeatured&&!a.disabled).map(a=>this.createAssetCardFor_(a,this.assetCardDiv_));this.updateSelected_()}createAssetCardFor_(a,b){return new shakaDemo.AssetCard(b,a,!0,c=>{const d=shakaDemoMain.getAssetUnsupportedReason(a,!1);d?c.markAsUnsupported(d):(c.addButton(shakaDemo.MessageIds.PLAY,()=>{shakaDemoMain.loadAsset(a);this.updateSelected_()}),
284
- c.addStoreButton())})}updateOfflineProgress_(){for(const a of this.assetCards_)a.updateProgress()}updateSelected_(){for(const a of this.assetCards_)a.selectByAsset(shakaDemoMain.selectedAsset)}};document.addEventListener("shaka-main-loaded",shakaDemo.Front.init);document.addEventListener("shaka-main-cleanup",()=>{shakaDemoFront=null});shakaDemo.Visualizer=class{constructor(a,b,c,d,e,f){this.canvas_=a;this.div_=b;this.active=!1;this.screenshotDiv_=c;this.video_=e;this.player_=f;this.takeAutoScreenshots_=!1;this.timer_=new shaka.util.Timer(()=>{this.ageUpdates_();this.updateCanvas_();this.takeAutomaticScreenshots_()});this.colorIOffset_=this.lastCurrentTime_=0;this.autoScreenshotTaken_=!1;this.updates_=[];f.addEventListener("segmentappended",g=>{this.updates_.push({age:0,start:g.start,end:g.end,contentType:g.contentType})});a=new shakaDemo.InputContainer(d,
285
- null,shakaDemo.InputContainer.Style.VERTICAL,null);a.addRow(null,null);this.screenshotButton_=document.createElement("button");a.latestElementContainer.appendChild(this.screenshotButton_);this.screenshotButton_.textContent=shakaDemoMain.getLocalizedString(shakaDemo.MessageIds.VISUALIZER_SCREENSHOT_BUTTON);this.screenshotButton_.classList.add("mdl-button");this.screenshotButton_.classList.add("mdl-button--colored");this.screenshotButton_.classList.add("mdl-js-button");this.screenshotButton_.classList.add("mdl-js-ripple-effect");
286
- this.screenshotButton_.addEventListener("click",()=>{this.takeScreenshot_()});a.addRow(shakaDemo.MessageIds.VISUALIZER_AUTO_SCREENSHOT_TOGGLE,null);this.autoScreenshotToggle_=new shakaDemo.BoolInput(a,shakaDemo.MessageIds.VISUALIZER_AUTO_SCREENSHOT_TOGGLE,g=>{this.takeAutoScreenshots_=g.checked})}start(){this.timer_.tickEvery(shakaDemo.Visualizer.updateFrequency_);this.div_.classList.remove("hidden");this.autoScreenshotTaken_=!0}stop(){this.timer_.stop();this.div_.classList.add("hidden");this.updates_=
287
- []}drawBufferInfoCanvasBar_(a,b,c,d,e,f){const g=b.filter(t=>t.replaceAll("F","A").replaceAll("0","4")),h=t=>Math.round((t-this.video_.currentTime)*e+this.canvas_.width/2),k=Math.floor(d/4);a.textAlign="center";a.font="bold "+k+"px serif";a.textBaseline="bottom";var l=e>4*k;for(var m of this.updates_){var n=h(m.start),p=h(m.end);if(0<=p&&n<this.canvas_.width){n=Math.max(n,0);p=Math.min(p,this.canvas_.width);a.fillStyle="#FFFFFF";a.globalAlpha=.1+.2*(1-m.age/shakaDemo.Visualizer.maxUpdateAge_);a.fillRect(n,
288
- c,p-n,d);a.globalAlpha=1;var q=m.contentType.toUpperCase();l||(q=q[0]);n+=(p-n)/2;p=c+d;switch(m.contentType){case "video":p-=2*k;break;case "audio":p-=k}a.fillText(q,n,p)}}l=this.player_.getConfiguration().streaming.gapDetectionThreshold;for(m=0;m<this.video_.buffered.length;m++){var r=h(this.video_.buffered.start(m));q=h(this.video_.buffered.end(m));if(0<=q&&r<this.canvas_.width){r=Math.max(r,0);q=Math.min(q,this.canvas_.width);n=(m-f+this.colorIOffset_+1E4*b.length)%b.length;p=(d-3*k)/b.length;
289
- const t=c+n*p;a.fillStyle=b[n];a.fillRect(r,t,q-r,p);r=Math.max(r,h(this.video_.buffered.end(m)-l));a.fillStyle=g[n];a.fillRect(r,t,q-r,p)}}}takeAutomaticScreenshots_(){2>=this.video_.readyState?!this.autoScreenshotTaken_&&this.takeAutoScreenshots_&&(this.takeScreenshot_(),this.autoScreenshotTaken_=!0):this.autoScreenshotTaken_=!1}ageUpdates_(){for(const a of this.updates_)a.age+=shakaDemo.Visualizer.updateFrequency_;this.updates_=this.updates_.filter(a=>a.age<shakaDemo.Visualizer.maxUpdateAge_)}takeScreenshot_(){shaka.util.Dom.removeAllChildren(this.screenshotDiv_);
290
- const a=document.createElement("canvas");a.width=this.canvas_.width;a.height=this.canvas_.height;a.getContext("2d").drawImage(this.canvas_,0,0);this.screenshotDiv_.appendChild(a)}updateCanvas_(){this.canvas_.width=this.canvas_.offsetWidth;this.canvas_.height=this.canvas_.offsetHeight;const a=this.canvas_.getContext("2d");a.imageSmoothingEnabled=!1;a.fillStyle="#000000";a.fillRect(0,0,this.canvas_.width,this.canvas_.height);const b=["#FF0000","#00FF00","#0000FF"];let c=-1;var d=-1,e=this.lastCurrentTime_,
291
- f=this.video_.currentTime,g=this.video_.buffered;for(let h=0;h<g.length;h++)e>=g.start(h)&&e<=g.end(h)&&(d=h),f>=g.start(h)&&f<=g.end(h)&&(c=h);this.lastCurrentTime_=f;-1!=c&&-1!=d&&(this.colorIOffset_+=c-d);d=[50,5];e=this.canvas_.height/d.length;for(f=0;f<d.length;f++)g=.75*e,this.drawBufferInfoCanvasBar_(a,b,e*f+(e-g)/2,g,d[f],c);a.fillStyle="#FFFFFF";a.fillRect(this.canvas_.width/2-1,0,2,this.canvas_.height)}};shakaDemo.Visualizer.maxUpdateAge_=20;shakaDemo.Visualizer.updateFrequency_=.05;shakaDemo.VisualizerButton=class extends shaka.ui.Element{constructor(a,b){super(a,b);this.button_=document.createElement("button");this.button_.classList.add("shaka-pip-button");this.button_.classList.add("shaka-tooltip");this.icon_=document.createElement("i");this.icon_.classList.add("material-icons-round");this.setIcon_();this.button_.appendChild(this.icon_);a=document.createElement("label");a.classList.add("shaka-overflow-button-label");a.classList.add("shaka-overflow-menu-only");this.nameSpan_=
292
- document.createElement("span");a.appendChild(this.nameSpan_);this.currentPipState_=document.createElement("span");this.currentPipState_.classList.add("shaka-current-selection-span");a.appendChild(this.currentPipState_);this.button_.appendChild(a);this.parent.appendChild(this.button_);this.eventManager.listen(this.button_,"click",()=>{shakaDemoMain.setIsVisualizerActive(!shakaDemoMain.getIsVisualizerActive());this.setIcon_()});this.eventManager.listen(this.localization,shaka.ui.Localization.LOCALE_UPDATED,
293
- ()=>{this.updateLocalizedStrings_()});this.eventManager.listen(this.localization,shaka.ui.Localization.LOCALE_CHANGED,()=>{this.updateLocalizedStrings_()})}updateLocalizedStrings_(){this.nameSpan_.textContent=shakaDemoMain.getLocalizedString(shakaDemo.MessageIds.VISUALIZER_BUTTON)}setIcon_(){shakaDemoMain.getIsVisualizerActive()?this.icon_.textContent="bar_chart":this.icon_.textContent="add_chart"}};shakaDemo.VisualizerButton.Factory=class{create(a,b){return new shakaDemo.VisualizerButton(a,b)}};shakaDemo.Main=class{constructor(){this.localization_=this.selectedAsset=this.player_=this.container_=this.video_=null;this.fullyLoaded_=!1;this.controls_=null;this.nativeControlsEnabled_=this.trickPlayControlsEnabled_=!1;this.uiLocale_="";this.noInput_=!1;this.errorDisplayLink_=document.getElementById("error-display-link");this.currentErrorSeverity_=null;MaterialLayout.prototype.Constant_.MENU_ICON="settings";this.visualizer_=null}initCommon_(){window.addEventListener("error",a=>{if(!a.message.includes("cvox.Api"))this.onError_(a.error)});
294
- document.getElementById("error-display-close-button").addEventListener("click",a=>this.closeError_());this.setUpVersionStrings_()}async initFailed(a){this.initCommon_();this.makeVersionLinks_();document.getElementById("error-display-close-button").style.display="none";componentHandler.upgradeDom();var b=[];for(var c of document.getElementsByClassName("should-disable-on-fail"))b.push(c);for(var d of document.getElementsByClassName("mdl-layout__drawer-button"))b.push(d);for(const e of b)e.tabIndex=
295
- -1,e.classList.add("disabled-by-fail");this.localization_=new shaka.ui.Localization("en");this.localization_.changeLocale(navigator.languages||[]);await this.setupLocalization_();b=shaka.util.Error.Severity.CRITICAL;d=c="";switch(a){case shaka.ui.Overlay.FailReasonCode.NO_BROWSER_SUPPORT:d=this.getLocalizedString(shakaDemo.MessageIds.FAILURE_NO_BROWSER_SUPPORT);c="https://github.com/shaka-project/shaka-player#platform-and-browser-support-matrix";break;case shaka.ui.Overlay.FailReasonCode.PLAYER_FAILED_TO_LOAD:d=
296
- this.getLocalizedString(shakaDemo.MessageIds.FAILURE_MISC)}this.handleError_(b,d,c)}async init(){this.initCommon_();this.support_=await shaka.Player.probeSupport();this.video_=document.getElementById("video");this.video_.poster=shakaDemo.Main.mainPoster_;this.container_=document.getElementsByClassName("video-container")[0];navigator.serviceWorker&&(console.debug("Registering service worker."),navigator.serviceWorker.register("service_worker.js"));this.noInput_="noinput"in this.getParams_();await this.setupPlayer_();
297
- this.readHash_();window.addEventListener("hashchange",()=>this.hashChanged_());await this.setupStorage_();this.setupBugButton_();if(this.noInput_){for(var a of document.getElementsByClassName("should-hide-in-no-input-mode"))this.hideElement_(a);for(var b of document.getElementsByClassName("should-show-in-no-input-mode"))this.showElement_(b);this.container_.classList.add("no-input-sized");document.getElementById("video-bar").classList.add("no-input-sized")}else{goog.asserts.assert(this.player_,"Player should exist by now.");
298
- a=document.getElementById("visualizer-canvas");b=document.getElementById("visualizer-div");const c=document.getElementById("visualizer-controls-div"),d=document.getElementById("visualizer-screenshot-div");this.visualizer_=new shakaDemo.Visualizer(a,b,d,c,this.video_,this.player_)}this.dispatchEventWithName_("shaka-main-loaded");await Promise.resolve();componentHandler.upgradeDom();a=this.getLastAssetFromHash_();this.fullyLoaded_=!0;this.remakeHash();a&&!this.selectedAsset&&this.loadAsset(a)}async loadText_(a){const b=
299
- new shaka.net.NetworkingEngine,c=shaka.net.NetworkingEngine.defaultRetryParameters();a=shaka.net.NetworkingEngine.makeRequest([a],c);a=await b.request(shaka.net.NetworkingEngine.RequestType.APP,a).promise;a=shaka.util.StringUtils.fromUTF8(a.data);await b.destroy();return a}async reportBug_(){var a=await this.loadText_("autoTemplate.txt");a=a.replace("RE:player",shaka.Player.version);if(this.selectedAsset){var b=[];b.push("uri= `"+this.selectedAsset.manifestUri+"`");this.selectedAsset.adTagUri&&b.push("ad tag uri= `"+
300
- this.selectedAsset.adTagUri+"`");if(this.selectedAsset.licenseServers.size){const c=this.selectedAsset.licenseServers.values().next().value;b.push("license server= `"+c+"`");for(const d of this.selectedAsset.licenseServers.keys())if(!shakaDemo.Main.commonDrmSystems.includes(d)){b.push("drm system= `"+d+"`");break}}this.selectedAsset.certificateUri&&b.push("certificate= `"+this.selectedAsset.certificateUri+"`");b=b.join("\n");a=a.replace("RE:uris",b)}else a=a.replace("RE:uris","No asset");a=a.replace("RE:browser",
301
- navigator.userAgent);this.selectedAsset&&this.selectedAsset.source==shakaAssets.Source.CUSTOM?(b=await this.loadText_("customWarning.txt"),a=a.replace("RE:customwarning",b)):a=a.replace("RE:customwarning\n","");b=[];b.push("labels=type%3A+bug");b.push("body="+encodeURIComponent(a));a="https://github.com/shaka-project/shaka-player/issues/new?"+b.join("&");window.open(a,"_blank")}setupBugButton_(){const a=document.getElementById("bug-button");a.addEventListener("click",()=>this.reportBug_());navigator.onLine||
302
- a.setAttribute("disabled","");window.addEventListener("online",()=>{a.removeAttribute("disabled")});window.addEventListener("offline",()=>{a.setAttribute("disabled","")})}configureUI_(){const a=this.video_.ui,b=a.getConfiguration();b.addSeekBar=!0;b.controlPanelElements=b.controlPanelElements.filter(c=>"rewind"!=c&&"fast_forward"!=c);if(this.trickPlayControlsEnabled_){b.addSeekBar=!1;const c=b.controlPanelElements.indexOf("play_pause");b.controlPanelElements.splice(c,1,"rewind","play_pause","fast_forward")}b.controlPanelElements.includes("close")||
303
- b.controlPanelElements.push("close");b.overflowMenuButtons.includes("visualizer")||b.overflowMenuButtons.push("visualizer");a.configure(b)}async setupPlayer_(){var a=this.video_.ui;this.player_=a.getControls().getPlayer();if(!this.noInput_){var b=new shakaDemo.CloseButton.Factory;shaka.ui.Controls.registerElement("close",b);b=new shakaDemo.VisualizerButton.Factory;shaka.ui.OverflowMenu.registerElement("visualizer",b);this.configureUI_()}this.player_.configure("manifest.dash.clockSyncUri","https://shaka-player-demo.appspot.com/time.txt");
304
- this.defaultConfig_=this.player_.getConfiguration();this.desiredConfig_=this.player_.getConfiguration();b=navigator.languages||["en-us"];this.configure("preferredAudioLanguage",b[0]);this.configure("preferredTextLanguage",b[0]);this.uiLocale_=b[0];b=e=>this.onErrorEvent_(e);this.player_.addEventListener("error",b);this.controls_=a.getControls();this.controls_.addEventListener("error",b);this.controls_.addEventListener("caststatuschanged",e=>{this.onCastStatusChange_(e.newStatus)});this.localization_=
305
- this.controls_.getLocalization();await this.setupLocalization_();const c=document.getElementById("drawer-close-button");c.addEventListener("click",()=>{document.getElementById("main-layout").MaterialLayout.toggleDrawer();this.dispatchEventWithName_("shaka-main-drawer-state-change");this.hideElement_(c)});a=document.querySelector(".mdl-layout__drawer-button");goog.asserts.assert(a,"There should be a drawer button.");const d=()=>{this.dispatchEventWithName_("shaka-main-drawer-state-change");this.showElement_(c)};
306
- a.addEventListener("click",d);a.addEventListener("keydown",e=>{e=e.key;" "!=e&&"Spacebar"!=e&&"Enter"!=e||d()});a=document.querySelector(".mdl-layout__obfuscator");goog.asserts.assert(a,"There should be an obfuscator.");a.addEventListener("click",()=>{this.dispatchEventWithName_("shaka-main-drawer-state-change");this.hideElement_(c)});this.hideElement_(c)}async setupLocalization_(){const a=()=>{this.localizeHTMLElements_();this.dispatchEventWithName_("shaka-main-locale-changed")};this.localization_.addEventListener(shaka.ui.Localization.UNKNOWN_LOCALES,
307
- c=>{for(const d of c.locales)this.loadUILocale_(d).then(()=>{d==this.uiLocale_&&a()})});this.localization_.addEventListener(shaka.ui.Localization.LOCALE_CHANGED,c=>{a()});const b=[];b.push(this.loadUILocale_(this.uiLocale_));this.uiLocale_.includes("-")&&b.push(this.loadUILocale_(this.uiLocale_.split("-")[0]));this.uiLocale_.startsWith("en")||b.push(this.loadUILocale_("en"));await Promise.all(b);this.localizeHTMLElements_()}getIsDrawerOpen(){const a=document.querySelector(".mdl-layout__drawer");goog.asserts.assert(a,
308
- "There should be a drawer.");return a.classList.contains("is-visible")}getIdentifierFromAsset_(a){return a.name+(a.source==shakaAssets.Source.CUSTOM?" [CUSTOM]":"")}makeStorageInstance_(){if(!shaka.offline.Storage.support())return null;const a=new shaka.offline.Storage,b=c=>{for(const d of shakaAssets.testAssets)if(this.getIdentifierFromAsset_(d)==c)return d;if(shakaDemoCustom)for(const d of shakaDemoCustom.assets())if(this.getIdentifierFromAsset_(d)==c)return d;return null};a.configure(this.desiredConfig_);
309
- a.configure("offline.progressCallback",(c,d)=>{if(c=b(c.appMetadata.identifier))c.storedProgress=d,this.dispatchEventWithName_("shaka-main-offline-progress")});return a}setupOfflineSupport(a){if(this.initialStoredList_){a.storedContent=null;for(const b of this.initialStoredList_){const c=b.appMetadata.identifier;this.getIdentifierFromAsset_(a)==c&&(a.storedContent=b)}a.storeCallback=async()=>{const b=this.makeStorageInstance_();if(b){try{await this.drmConfiguration_(a,b);const c={identifier:this.getIdentifierFromAsset_(a),
310
- downloaded:new Date};a.storedProgress=0;this.dispatchEventWithName_("shaka-main-offline-progress");const d=Date.now(),e=await b.store(a.manifestUri,c).promise,f=Date.now();console.log("Download time:",f-d);a.storedContent=e}catch(c){this.onError_(c),a.storedContent=null}b.destroy();a.storedProgress=1;this.dispatchEventWithName_("shaka-main-offline-progress")}};a.unstoreCallback=async()=>{a==this.selectedAsset&&this.unload();if(a.storedContent&&a.storedContent.offlineUri){const b=this.makeStorageInstance_();
311
- if(b){try{a.storedProgress=0,this.dispatchEventWithName_("shaka-main-offline-progress"),await b.remove(a.storedContent.offlineUri),a.storedContent=null}catch(c){this.onError_(c)}b.destroy();a.storedProgress=1;this.dispatchEventWithName_("shaka-main-offline-progress")}}}}}async setupStorage_(){const a=this.makeStorageInstance_();if(a){try{this.initialStoredList_=await a.list()}catch(b){console.error(b),this.initialStoredList_=null}finally{a.destroy()}for(const b of shakaAssets.testAssets)this.getAssetUnsupportedReason(b,
312
- !0)||this.setupOfflineSupport(b)}}hashChanged_(){this.readHash_();this.dispatchEventWithName_("shaka-main-config-change")}getAssetUnsupportedReason(a,b){if(b&&(!shaka.offline.Storage.support()||!this.initialStoredList_))return shakaDemo.MessageIds.UNSUPPORTED_NO_OFFLINE;if(a.source==shakaAssets.Source.CUSTOM)return null;if(a.disabled)return shakaDemo.MessageIds.UNSUPPORTED_DISABLED;if(b&&!a.features.includes(shakaAssets.Feature.OFFLINE))return shakaDemo.MessageIds.UNSUPPORTED_NO_DOWNLOAD;if(!a.isClear()&&
313
- !a.isAes128()){if(!a.drm.some(c=>this.support_.drm[shakaAssets.identifierForKeySystem(c)]))return shakaDemo.MessageIds.UNSUPPORTED_NO_KEY_SUPPORT;if(b&&!a.drm.some(c=>{c=shakaAssets.identifierForKeySystem(c);return this.support_.drm[c]&&this.support_.drm[c].persistentState}))return shakaDemo.MessageIds.UNSUPPORTED_NO_LICENSE_SUPPORT}if(a.features.includes(shakaAssets.Feature.DASH)&&!this.support_.manifest.mpd)return shakaDemo.MessageIds.UNSUPPORTED_NO_DASH_SUPPORT;if(a.features.includes(shakaAssets.Feature.HLS)&&
314
- !this.support_.manifest.m3u8)return shakaDemo.MessageIds.UNSUPPORTED_NO_HLS_SUPPORT;if(a.features.includes(shakaAssets.Feature.MSS)&&!this.support_.manifest.ism)return shakaDemo.MessageIds.UNSUPPORTED_NO_MSS_SUPPORT;b=[];a.features.includes(shakaAssets.Feature.WEBM)&&b.push("video/webm");a.features.includes(shakaAssets.Feature.MP4)&&b.push("video/mp4");a.features.includes(shakaAssets.Feature.MP2TS)&&b.push("video/mp2t");a.features.includes(shakaAssets.Feature.CONTAINERLESS)&&b.push("audio/aac");return b.some(c=>
315
- this.support_.media[c])?null:shakaDemo.MessageIds.UNSUPPORTED_NO_FORMAT_SUPPORT}setTrickPlayControlsEnabled(a){this.trickPlayControlsEnabled_=a;this.configureUI_();this.remakeHash()}getTrickPlayControlsEnabled(){return this.trickPlayControlsEnabled_}setNativeControlsEnabled(a){this.nativeControlsEnabled_=a;this.remakeHash()}getNativeControlsEnabled(){return this.nativeControlsEnabled_}localizeHTMLElements_(){for(const b of document.querySelectorAll("[localized-string]")){var a=b.getAttribute("localized-string");
316
- if(a=shakaDemo.MessageIds[a])b.textContent=this.getLocalizedString(a)}}getLocalizedString(a){return this.localization_.resolve(a)}async loadUILocale_(a){if(a){var b=async c=>{c=c+"/locales/"+a+".json";try{const d=await this.loadText_(c),e=JSON.parse(d),f=new Map(Object.entries(e));this.localization_.insert(a,f)}catch(d){console.warn("Unable to load locale",a,"for url",c)}};await Promise.all([b("../ui"),b("../demo")])}}setUILocale(a){this.uiLocale_=a;a=[a].concat(navigator.languages);this.localization_.changeLocale(a)}getUILocale(){return this.uiLocale_}getLastAssetFromHash_(){const a=
256
+ document.addEventListener("shaka-main-page-changed",()=>{this.assetCardDiv_.childNodes.length||a.classList.contains("hidden")||this.remakeAssetCards_()})}makeMessage_(){if(!window.localStorage.getItem("shakaPlayerHideFrontMessage")){var a=(b,c)=>{const d=document.createElement("h2");d.classList.add("mdl-typography--"+b);d.textContent=c;this.messageDiv_.appendChild(d)};a("body-2","This is a demo of Google's Shaka Player, a JavaScript library for adaptive video streaming.");a("body-1",'Choose a video to playback; more assets are available via the "all content" tab.');
257
+ a=document.createElement("button");a.classList.add("mdl-button");a.classList.add("mdl-button--colored");a.classList.add("mdl-js-button");a.classList.add("mdl-js-ripple-effect");a.textContent="Dismiss";a.addEventListener("click",()=>{shaka.util.Dom.removeAllChildren(this.messageDiv_);window.localStorage.setItem("shakaPlayerHideFrontMessage","true")});this.messageDiv_.appendChild(a)}}remakeAssetCards_(){shaka.util.Dom.removeAllChildren(this.assetCardDiv_);this.assetCards_=shakaAssets.testAssets.filter(a=>
258
+ a.isFeatured&&!a.disabled).map(a=>this.createAssetCardFor_(a,this.assetCardDiv_));this.updateSelected_()}createAssetCardFor_(a,b){return new shakaDemo.AssetCard(b,a,!0,c=>{const d=shakaDemoMain.getAssetUnsupportedReason(a,!1);d?c.markAsUnsupported(d):(c.addButton("Play",()=>{shakaDemoMain.loadAsset(a);this.updateSelected_()}),c.addStoreButton())})}updateOfflineProgress_(){for(const a of this.assetCards_)a.updateProgress()}updateSelected_(){for(const a of this.assetCards_)a.selectByAsset(shakaDemoMain.selectedAsset)}};
259
+ document.addEventListener("shaka-main-loaded",shakaDemo.Front.init);document.addEventListener("shaka-main-cleanup",()=>{shakaDemoFront=null});shakaDemo.Visualizer=class{constructor(a,b,c,d,e,f){this.canvas_=a;this.div_=b;this.active=!1;this.screenshotDiv_=c;this.video_=e;this.player_=f;this.takeAutoScreenshots_=!1;this.timer_=new shaka.util.Timer(()=>{this.ageUpdates_();this.updateCanvas_();this.takeAutomaticScreenshots_()});this.colorIOffset_=this.lastCurrentTime_=0;this.autoScreenshotTaken_=!1;this.updates_=[];f.addEventListener("segmentappended",g=>{this.updates_.push({age:0,start:g.start,end:g.end,contentType:g.contentType})});a=new shakaDemo.InputContainer(d,
260
+ null,shakaDemo.InputContainer.Style.VERTICAL,null);a.addRow(null,null);this.screenshotButton_=document.createElement("button");a.latestElementContainer.appendChild(this.screenshotButton_);this.screenshotButton_.textContent="Take Screenshot";this.screenshotButton_.classList.add("mdl-button");this.screenshotButton_.classList.add("mdl-button--colored");this.screenshotButton_.classList.add("mdl-js-button");this.screenshotButton_.classList.add("mdl-js-ripple-effect");this.screenshotButton_.addEventListener("click",
261
+ ()=>{this.takeScreenshot_()});a.addRow("Take Screenshot On Stall",null);this.autoScreenshotToggle_=new shakaDemo.BoolInput(a,"Take Screenshot On Stall",g=>{this.takeAutoScreenshots_=g.checked})}start(){this.timer_.tickEvery(shakaDemo.Visualizer.updateFrequency_);this.div_.classList.remove("hidden");this.autoScreenshotTaken_=!0}stop(){this.timer_.stop();this.div_.classList.add("hidden");this.updates_=[]}drawBufferInfoCanvasBar_(a,b,c,d,e,f){const g=b.filter(t=>t.replaceAll("F","A").replaceAll("0",
262
+ "4")),h=t=>Math.round((t-this.video_.currentTime)*e+this.canvas_.width/2),l=Math.floor(d/4);a.textAlign="center";a.font="bold "+l+"px serif";a.textBaseline="bottom";var p=e>4*l;for(var k of this.updates_){var m=h(k.start),n=h(k.end);if(0<=n&&m<this.canvas_.width){m=Math.max(m,0);n=Math.min(n,this.canvas_.width);a.fillStyle="#FFFFFF";a.globalAlpha=.1+.2*(1-k.age/shakaDemo.Visualizer.maxUpdateAge_);a.fillRect(m,c,n-m,d);a.globalAlpha=1;var q=k.contentType.toUpperCase();p||(q=q[0]);m+=(n-m)/2;n=c+d;
263
+ switch(k.contentType){case "video":n-=2*l;break;case "audio":n-=l}a.fillText(q,m,n)}}p=this.player_.getConfiguration().streaming.gapDetectionThreshold;for(k=0;k<this.video_.buffered.length;k++){var r=h(this.video_.buffered.start(k));q=h(this.video_.buffered.end(k));if(0<=q&&r<this.canvas_.width){r=Math.max(r,0);q=Math.min(q,this.canvas_.width);m=(k-f+this.colorIOffset_+1E4*b.length)%b.length;n=(d-3*l)/b.length;const t=c+m*n;a.fillStyle=b[m];a.fillRect(r,t,q-r,n);r=Math.max(r,h(this.video_.buffered.end(k)-
264
+ p));a.fillStyle=g[m];a.fillRect(r,t,q-r,n)}}}takeAutomaticScreenshots_(){2>=this.video_.readyState?!this.autoScreenshotTaken_&&this.takeAutoScreenshots_&&(this.takeScreenshot_(),this.autoScreenshotTaken_=!0):this.autoScreenshotTaken_=!1}ageUpdates_(){for(const a of this.updates_)a.age+=shakaDemo.Visualizer.updateFrequency_;this.updates_=this.updates_.filter(a=>a.age<shakaDemo.Visualizer.maxUpdateAge_)}takeScreenshot_(){shaka.util.Dom.removeAllChildren(this.screenshotDiv_);const a=document.createElement("canvas");
265
+ a.width=this.canvas_.width;a.height=this.canvas_.height;a.getContext("2d").drawImage(this.canvas_,0,0);this.screenshotDiv_.appendChild(a)}updateCanvas_(){this.canvas_.width=this.canvas_.offsetWidth;this.canvas_.height=this.canvas_.offsetHeight;const a=this.canvas_.getContext("2d");a.imageSmoothingEnabled=!1;a.fillStyle="#000000";a.fillRect(0,0,this.canvas_.width,this.canvas_.height);const b=["#FF0000","#00FF00","#0000FF"];let c=-1;var d=-1,e=this.lastCurrentTime_,f=this.video_.currentTime,g=this.video_.buffered;
266
+ for(let h=0;h<g.length;h++)e>=g.start(h)&&e<=g.end(h)&&(d=h),f>=g.start(h)&&f<=g.end(h)&&(c=h);this.lastCurrentTime_=f;-1!=c&&-1!=d&&(this.colorIOffset_+=c-d);d=[50,5];e=this.canvas_.height/d.length;for(f=0;f<d.length;f++)g=.75*e,this.drawBufferInfoCanvasBar_(a,b,e*f+(e-g)/2,g,d[f],c);a.fillStyle="#FFFFFF";a.fillRect(this.canvas_.width/2-1,0,2,this.canvas_.height)}};shakaDemo.Visualizer.maxUpdateAge_=20;shakaDemo.Visualizer.updateFrequency_=.05;shakaDemo.VisualizerButton=class extends shaka.ui.Element{constructor(a,b){super(a,b);this.button_=document.createElement("button");this.button_.classList.add("shaka-pip-button");this.button_.classList.add("shaka-tooltip");this.icon_=document.createElement("i");this.icon_.classList.add("material-icons-round");this.setIcon_();this.button_.appendChild(this.icon_);a=document.createElement("label");a.classList.add("shaka-overflow-button-label");a.classList.add("shaka-overflow-menu-only");this.nameSpan_=
267
+ document.createElement("span");a.appendChild(this.nameSpan_);this.nameSpan_.textContent="Buffer Visualizer";this.currentPipState_=document.createElement("span");this.currentPipState_.classList.add("shaka-current-selection-span");a.appendChild(this.currentPipState_);this.button_.appendChild(a);this.parent.appendChild(this.button_);this.eventManager.listen(this.button_,"click",()=>{shakaDemoMain.setIsVisualizerActive(!shakaDemoMain.getIsVisualizerActive());this.setIcon_()})}setIcon_(){shakaDemoMain.getIsVisualizerActive()?
268
+ this.icon_.textContent="bar_chart":this.icon_.textContent="add_chart"}};shakaDemo.VisualizerButton.Factory=class{create(a,b){return new shakaDemo.VisualizerButton(a,b)}};shakaDemo.Main=class{constructor(){this.localization_=this.selectedAsset=this.player_=this.container_=this.video_=null;this.fullyLoaded_=!1;this.controls_=null;this.nativeControlsEnabled_=this.trickPlayControlsEnabled_=!1;this.uiLocale_="";this.noInput_=!1;this.errorDisplayLink_=document.getElementById("error-display-link");this.currentErrorSeverity_=null;MaterialLayout.prototype.Constant_.MENU_ICON="settings";this.visualizer_=null}initCommon_(){window.addEventListener("error",a=>{if(!a.message.includes("cvox.Api"))this.onError_(a.error)});
269
+ document.getElementById("error-display-close-button").addEventListener("click",a=>this.closeError_());this.setUpVersionStrings_()}initFailed(a){this.initCommon_();this.makeVersionLinks_();document.getElementById("error-display-close-button").style.display="none";componentHandler.upgradeDom();var b=[];for(var c of document.getElementsByClassName("should-disable-on-fail"))b.push(c);for(var d of document.getElementsByClassName("mdl-layout__drawer-button"))b.push(d);for(const e of b)e.tabIndex=-1,e.classList.add("disabled-by-fail");
270
+ b=shaka.util.Error.Severity.CRITICAL;d=c="";switch(a){case shaka.ui.Overlay.FailReasonCode.NO_BROWSER_SUPPORT:d="Your browser is not supported!";c="https://github.com/shaka-project/shaka-player#platform-and-browser-support-matrix";break;case shaka.ui.Overlay.FailReasonCode.PLAYER_FAILED_TO_LOAD:d="Shaka Player failed to load! If you are using an adblocker, try switching to compiled mode at the bottom of the page."}this.handleError_(b,d,c)}async init(){this.initCommon_();this.support_=await shaka.Player.probeSupport();
271
+ this.video_=document.getElementById("video");this.video_.poster=shakaDemo.Main.mainPoster_;this.container_=document.getElementsByClassName("video-container")[0];navigator.serviceWorker&&(console.debug("Registering service worker."),navigator.serviceWorker.register("service_worker.js"));this.noInput_="noinput"in this.getParams_();this.setupPlayer_();this.readHash_();window.addEventListener("hashchange",()=>this.hashChanged_());await this.setupStorage_();this.setupBugButton_();if(this.noInput_){for(var a of document.getElementsByClassName("should-hide-in-no-input-mode"))this.hideElement_(a);
272
+ for(var b of document.getElementsByClassName("should-show-in-no-input-mode"))this.showElement_(b);this.container_.classList.add("no-input-sized");document.getElementById("video-bar").classList.add("no-input-sized")}else{goog.asserts.assert(this.player_,"Player should exist by now.");a=document.getElementById("visualizer-canvas");b=document.getElementById("visualizer-div");const c=document.getElementById("visualizer-controls-div"),d=document.getElementById("visualizer-screenshot-div");this.visualizer_=
273
+ new shakaDemo.Visualizer(a,b,d,c,this.video_,this.player_)}this.dispatchEventWithName_("shaka-main-loaded");await Promise.resolve();componentHandler.upgradeDom();a=this.getLastAssetFromHash_();this.fullyLoaded_=!0;this.remakeHash();a&&!this.selectedAsset&&this.loadAsset(a)}async loadText_(a){const b=new shaka.net.NetworkingEngine,c=shaka.net.NetworkingEngine.defaultRetryParameters();a=shaka.net.NetworkingEngine.makeRequest([a],c);a=await b.request(shaka.net.NetworkingEngine.RequestType.APP,a).promise;
274
+ a=shaka.util.StringUtils.fromUTF8(a.data);await b.destroy();return a}async reportBug_(){var a=await this.loadText_("autoTemplate.txt");a=a.replace("RE:player",shaka.Player.version);if(this.selectedAsset){var b=[];b.push("uri= `"+this.selectedAsset.manifestUri+"`");this.selectedAsset.adTagUri&&b.push("ad tag uri= `"+this.selectedAsset.adTagUri+"`");if(this.selectedAsset.licenseServers.size){const c=this.selectedAsset.licenseServers.values().next().value;b.push("license server= `"+c+"`");for(const d of this.selectedAsset.licenseServers.keys())if(!shakaDemo.Main.commonDrmSystems.includes(d)){b.push("drm system= `"+
275
+ d+"`");break}}this.selectedAsset.certificateUri&&b.push("certificate= `"+this.selectedAsset.certificateUri+"`");b=b.join("\n");a=a.replace("RE:uris",b)}else a=a.replace("RE:uris","No asset");a=a.replace("RE:browser",navigator.userAgent);this.selectedAsset&&this.selectedAsset.source==shakaAssets.Source.CUSTOM?(b=await this.loadText_("customWarning.txt"),a=a.replace("RE:customwarning",b)):a=a.replace("RE:customwarning\n","");b=[];b.push("labels=type%3A+bug");b.push("body="+encodeURIComponent(a));a=
276
+ "https://github.com/shaka-project/shaka-player/issues/new?"+b.join("&");window.open(a,"_blank")}setupBugButton_(){const a=document.getElementById("bug-button");a.addEventListener("click",()=>this.reportBug_());navigator.onLine||a.setAttribute("disabled","");window.addEventListener("online",()=>{a.removeAttribute("disabled")});window.addEventListener("offline",()=>{a.setAttribute("disabled","")})}configureUI_(){const a=this.video_.ui,b=a.getConfiguration();b.addSeekBar=!0;b.controlPanelElements=b.controlPanelElements.filter(c=>
277
+ "rewind"!=c&&"fast_forward"!=c);if(this.trickPlayControlsEnabled_){b.addSeekBar=!1;const c=b.controlPanelElements.indexOf("play_pause");b.controlPanelElements.splice(c,1,"rewind","play_pause","fast_forward")}b.controlPanelElements.includes("close")||b.controlPanelElements.push("close");b.overflowMenuButtons.includes("visualizer")||b.overflowMenuButtons.push("visualizer");a.configure(b)}setupPlayer_(){var a=this.video_.ui;this.player_=a.getControls().getPlayer();if(!this.noInput_){var b=new shakaDemo.CloseButton.Factory;
278
+ shaka.ui.Controls.registerElement("close",b);b=new shakaDemo.VisualizerButton.Factory;shaka.ui.OverflowMenu.registerElement("visualizer",b);this.configureUI_()}this.player_.configure("manifest.dash.clockSyncUri","https://shaka-player-demo.appspot.com/time.txt");this.defaultConfig_=this.player_.getConfiguration();this.desiredConfig_=this.player_.getConfiguration();b=navigator.languages||["en-us"];this.configure("preferredAudioLanguage",b[0]);this.configure("preferredTextLanguage",b[0]);this.uiLocale_=
279
+ b[0];b=e=>this.onErrorEvent_(e);this.player_.addEventListener("error",b);this.controls_=a.getControls();this.controls_.addEventListener("error",b);this.controls_.addEventListener("caststatuschanged",e=>{this.onCastStatusChange_(e.newStatus)});this.localization_=this.controls_.getLocalization();const c=document.getElementById("drawer-close-button");c.addEventListener("click",()=>{document.getElementById("main-layout").MaterialLayout.toggleDrawer();this.dispatchEventWithName_("shaka-main-drawer-state-change");
280
+ this.hideElement_(c)});a=document.querySelector(".mdl-layout__drawer-button");goog.asserts.assert(a,"There should be a drawer button.");const d=()=>{this.dispatchEventWithName_("shaka-main-drawer-state-change");this.showElement_(c)};a.addEventListener("click",d);a.addEventListener("keydown",e=>{e=e.key;" "!=e&&"Spacebar"!=e&&"Enter"!=e||d()});a=document.querySelector(".mdl-layout__obfuscator");goog.asserts.assert(a,"There should be an obfuscator.");a.addEventListener("click",()=>{this.dispatchEventWithName_("shaka-main-drawer-state-change");
281
+ this.hideElement_(c)});this.hideElement_(c)}getIsDrawerOpen(){const a=document.querySelector(".mdl-layout__drawer");goog.asserts.assert(a,"There should be a drawer.");return a.classList.contains("is-visible")}getIdentifierFromAsset_(a){return a.name+(a.source==shakaAssets.Source.CUSTOM?" [CUSTOM]":"")}makeStorageInstance_(){if(!shaka.offline.Storage.support())return null;const a=new shaka.offline.Storage,b=c=>{for(const d of shakaAssets.testAssets)if(this.getIdentifierFromAsset_(d)==c)return d;if(shakaDemoCustom)for(const d of shakaDemoCustom.assets())if(this.getIdentifierFromAsset_(d)==
282
+ c)return d;return null};a.configure(this.desiredConfig_);a.configure("offline.progressCallback",(c,d)=>{if(c=b(c.appMetadata.identifier))c.storedProgress=d,this.dispatchEventWithName_("shaka-main-offline-progress")});return a}setupOfflineSupport(a){if(this.initialStoredList_){a.storedContent=null;for(const b of this.initialStoredList_){const c=b.appMetadata.identifier;this.getIdentifierFromAsset_(a)==c&&(a.storedContent=b)}a.storeCallback=async()=>{const b=this.makeStorageInstance_();if(b){try{await this.drmConfiguration_(a,
283
+ b);const c={identifier:this.getIdentifierFromAsset_(a),downloaded:new Date};a.storedProgress=0;this.dispatchEventWithName_("shaka-main-offline-progress");const d=Date.now(),e=await b.store(a.manifestUri,c).promise,f=Date.now();console.log("Download time:",f-d);a.storedContent=e}catch(c){this.onError_(c),a.storedContent=null}b.destroy();a.storedProgress=1;this.dispatchEventWithName_("shaka-main-offline-progress")}};a.unstoreCallback=async()=>{a==this.selectedAsset&&this.unload();if(a.storedContent&&
284
+ a.storedContent.offlineUri){const b=this.makeStorageInstance_();if(b){try{a.storedProgress=0,this.dispatchEventWithName_("shaka-main-offline-progress"),await b.remove(a.storedContent.offlineUri),a.storedContent=null}catch(c){this.onError_(c)}b.destroy();a.storedProgress=1;this.dispatchEventWithName_("shaka-main-offline-progress")}}}}}async setupStorage_(){const a=this.makeStorageInstance_();if(a){try{this.initialStoredList_=await a.list()}catch(b){console.error(b),this.initialStoredList_=null}finally{a.destroy()}for(const b of shakaAssets.testAssets)this.getAssetUnsupportedReason(b,
285
+ !0)||this.setupOfflineSupport(b)}}hashChanged_(){this.readHash_();this.dispatchEventWithName_("shaka-main-config-change")}getAssetUnsupportedReason(a,b){if(b&&(!shaka.offline.Storage.support()||!this.initialStoredList_))return"Your browser does not support offline storage.";if(a.source==shakaAssets.Source.CUSTOM)return null;if(a.disabled)return"This asset is disabled.";if(b&&!a.features.includes(shakaAssets.Feature.OFFLINE))return"This asset cannot be downloaded.";if(!a.isClear()&&!a.isAes128()){if(!a.drm.some(c=>
286
+ this.support_.drm[shakaAssets.identifierForKeySystem(c)]))return"Your browser does not support the required key systems.";if(b&&!a.drm.some(c=>{c=shakaAssets.identifierForKeySystem(c);return this.support_.drm[c]&&this.support_.drm[c].persistentState}))return"Your browser does not support offline licenses for the required key systems."}if(a.features.includes(shakaAssets.Feature.DASH)&&!this.support_.manifest.mpd)return"Your browser does not support MPEG-DASH manifests.";if(a.features.includes(shakaAssets.Feature.HLS)&&
287
+ !this.support_.manifest.m3u8)return"Your browser does not support HLS manifests.";if(a.features.includes(shakaAssets.Feature.MSS)&&!this.support_.manifest.ism)return"Your browser does not support MSS manifests.";b=[];a.features.includes(shakaAssets.Feature.WEBM)&&b.push("video/webm");a.features.includes(shakaAssets.Feature.MP4)&&b.push("video/mp4");a.features.includes(shakaAssets.Feature.MP2TS)&&b.push("video/mp2t");a.features.includes(shakaAssets.Feature.CONTAINERLESS)&&b.push("audio/aac");return b.some(c=>
288
+ this.support_.media[c])?null:"Your browser does not support the required video format."}setTrickPlayControlsEnabled(a){this.trickPlayControlsEnabled_=a;this.configureUI_();this.remakeHash()}getTrickPlayControlsEnabled(){return this.trickPlayControlsEnabled_}setNativeControlsEnabled(a){this.nativeControlsEnabled_=a;this.remakeHash()}getNativeControlsEnabled(){return this.nativeControlsEnabled_}setUILocale(a){this.uiLocale_=a;a=[a].concat(navigator.languages);this.localization_.changeLocale(a)}getUILocale(){return this.uiLocale_}getLastAssetFromHash_(){const a=
317
289
  this.getParams_();var b=a.asset,c=a.adTagUri;if(b){for(const d of shakaAssets.testAssets)if(d.manifestUri==b&&d.adTagUri==c)return d;for(const d of shakaDemoCustom.assets())if(d.manifestUri==b)return d;b=new ShakaDemoAssetInfo("loaded asset","",b,shakaAssets.Source.CUSTOM);if("license"in a){c=shakaDemo.Main.commonDrmSystems;"drmSystem"in a&&(c=[a.drmSystem]);for(const d of c)b.addLicenseServer(d,a.license)}"certificate"in a&&b.addCertificateUri(a.certificate);return b}return null}readHash_(){const a=
318
290
  this.getParams_();if(this.player_){var b=this.player_.getConfiguration();shakaDemo.Utils.runThroughHashParams((d,e)=>{if(d in a){const f=this.getCurrentConfigValue(e);d=a[d];"boolean"==typeof f?d="true"==d:"number"==typeof f&&(d=parseFloat(d));this.configure(e,d)}},b);if(b=this.getCurrentConfigValue("drm.advanced"))for(var c of shakaDemo.Main.commonDrmSystems)b[c]||(b[c]=shakaDemo.Main.defaultAdvancedDrmConfig()),"videoRobustness"in a&&(b[c].videoRobustness=a.videoRobustness),"audioRobustness"in a&&
319
291
  (b[c].audioRobustness=a.audioRobustness)}"lang"in a&&(c=a.lang,this.configure("preferredAudioLanguage",c),this.configure("preferredTextLanguage",c),this.setUILocale(c));"uilang"in a&&this.setUILocale(a.uilang);"noadaptation"in a&&this.configure("abr.enabled",!1);this.makeVersionLinks_();this.nativeControlsEnabled_="nativecontrols"in a;"trickplay"in a&&(this.trickPlayControlsEnabled_=!0,this.configureUI_());shakaDemo.Utils.browserSupportsUncompiledMode()||(c=document.getElementById("uncompiled-link"),
@@ -325,32 +297,34 @@ this.visualizer_.stop())}}unload(){this.visualizer_&&this.visualizer_.stop();thi
325
297
  this.player_.unload();this.dispatchEventWithName_("shaka-main-selected-asset-changed");navigator.mediaSession&&(navigator.mediaSession.metadata=null);this.remakeHash()}async drmConfiguration_(a,b){var c=b?b.getNetworkingEngine():this.player_.getNetworkingEngine();goog.asserts.assert(c,"There should be a net engine.");a.applyFilters(c);var d=a.getConfiguration();b?b.configure(d):(this.player_.resetConfiguration(),this.readHash_(),this.player_.configure(d));d=b?b.getConfiguration():this.player_.getConfiguration();
326
298
  if(a.certificateUri){c=await this.requestCertificate_(a.certificateUri,c);c=shaka.util.BufferUtils.toUint8(c);for(const e of a.licenseServers.keys())d.drm.advanced[e]=d.drm.advanced[e]||{},d.drm.advanced[e].serverCertificate=c}else for(const e of a.licenseServers.keys())d.drm.advanced[e]&&delete d.drm.advanced[e].serverCertificate;b?b.configure(d):this.player_.configure("drm.advanced",d.drm.advanced);this.remakeHash()}showPlayer_(){const a=document.getElementById("video-bar");this.showElement_(a);
327
299
  this.closeError_();this.video_.poster=shakaDemo.Main.mainPoster_;a.scrollIntoView({behavior:"smooth",block:"start"})}async loadAsset(a){try{this.selectedAsset=a;this.showPlayer_();this.dispatchEventWithName_("shaka-main-selected-asset-changed");this.nativeControlsEnabled_?(this.controls_.setEnabledShakaControls(!1),this.controls_.setEnabledNativeControls(!0),this.player_.setVideoContainer(null)):(this.controls_.setEnabledShakaControls(!0),this.controls_.setEnabledNativeControls(!1),this.player_.setVideoContainer(this.container_));
328
- await this.drmConfiguration_(a);this.controls_.getCastProxy().setAppData({asset:a});let b=a.manifestUri;a.storedContent&&a.storedContent.offlineUri&&(b=a.storedContent.offlineUri);if(a.imaAssetKey||a.imaContentSrcId&&a.imaVideoId)b=await this.getManifestUriFromAdManager_(a);await this.player_.load(b,null,a.mimeType||void 0);this.player_.isAudioOnly()&&(this.video_.poster=shakaDemo.Main.audioOnlyPoster_);for(const d of a.extraText)this.player_.addTextTrackAsync(d.uri,d.language,d.kind,d.mime,d.codecs);
329
- for(const d of a.extraThumbnail)this.player_.addThumbnailsTrack(d);const c=this.player_.getAdManager();if(c&&a.adTagUri)try{goog.asserts.assert(null!=this.video_,"this.video should exist!");c.initClientSide(this.controls_.getClientSideAdContainer(),this.video_,null);const d=new google.ima.AdsRequest;d.adTagUrl=a.adTagUri;c.requestClientSideAds(d)}catch(d){console.log(d),console.warn("Ads code has been prevented from running. Proceeding without ads.")}if(navigator.mediaSession){const d={title:a.name,
330
- artwork:[{src:a.iconUri}]};d.artist=a.source;navigator.mediaSession.metadata=new MediaMetadata(d)}this.visualizer_&&this.visualizer_.active&&this.visualizer_.start()}catch(b){if(b.code==shaka.util.Error.Code.LOAD_INTERRUPTED)console.debug("load() interrupted");else this.onError_(b)}this.remakeHash()}remakeHash(){if(this.fullyLoaded_){var a=[];if(this.player_){var b=this.player_.getConfiguration();shakaDemo.Utils.runThroughHashParams((f,g)=>{const h=this.getCurrentConfigValue(g);g=this.getValueFromGivenConfig_(g,
331
- this.defaultConfig_);const k=isNaN(h)&&isNaN(g);h==g||k&&("string"!=typeof h||"string"!=typeof g)||a.push(f+"="+h)},b);if(b=this.getCurrentConfigValue("drm.advanced"))for(var c of shakaDemo.Main.commonDrmSystems){const f=b[c];if(f){f.videoRobustness&&a.push("videoRobustness="+f.videoRobustness);f.audioRobustness&&a.push("audioRobustness="+f.audioRobustness);break}}}this.getCurrentConfigValue("abr.enabled")||a.push("noadaptation");a.push("uilang="+this.getUILocale());if(this.selectedAsset){c=shakaAssets.testAssets.includes(this.selectedAsset);
300
+ await this.drmConfiguration_(a);this.controls_.getCastProxy().setAppData({asset:a});let b=a.manifestUri;a.storedContent&&a.storedContent.offlineUri&&(b=a.storedContent.offlineUri);if(a.imaAssetKey||a.imaContentSrcId&&a.imaVideoId)b=await this.getManifestUriFromAdManager_(a);a.mediaTailorUrl&&(b=await this.getManifestUriFromMediaTailorAdManager_(a));await this.player_.load(b,null,a.mimeType||void 0);this.player_.isAudioOnly()&&(this.video_.poster=shakaDemo.Main.audioOnlyPoster_);for(const d of a.extraText)this.player_.addTextTrackAsync(d.uri,
301
+ d.language,d.kind,d.mime,d.codecs);for(const d of a.extraThumbnail)this.player_.addThumbnailsTrack(d);const c=this.player_.getAdManager();if(c&&a.adTagUri)try{goog.asserts.assert(null!=this.video_,"this.video should exist!");c.initClientSide(this.controls_.getClientSideAdContainer(),this.video_,null);const d=new google.ima.AdsRequest;d.adTagUrl=a.adTagUri;c.requestClientSideAds(d)}catch(d){console.log(d),console.warn("Ads code has been prevented from running. Proceeding without ads.")}if(navigator.mediaSession){const d=
302
+ {title:a.name,artwork:[{src:a.iconUri}]};d.artist=a.source;navigator.mediaSession.metadata=new MediaMetadata(d)}this.visualizer_&&this.visualizer_.active&&this.visualizer_.start()}catch(b){if(b.code==shaka.util.Error.Code.LOAD_INTERRUPTED)console.debug("load() interrupted");else this.onError_(b)}this.remakeHash()}remakeHash(){if(this.fullyLoaded_){var a=[];if(this.player_){var b=this.player_.getConfiguration();shakaDemo.Utils.runThroughHashParams((f,g)=>{const h=this.getCurrentConfigValue(g);g=this.getValueFromGivenConfig_(g,
303
+ this.defaultConfig_);const l=isNaN(h)&&isNaN(g);h==g||l&&("string"!=typeof h||"string"!=typeof g)||a.push(f+"="+h)},b);if(b=this.getCurrentConfigValue("drm.advanced"))for(var c of shakaDemo.Main.commonDrmSystems){const f=b[c];if(f){f.videoRobustness&&a.push("videoRobustness="+f.videoRobustness);f.audioRobustness&&a.push("audioRobustness="+f.audioRobustness);break}}}this.getCurrentConfigValue("abr.enabled")||a.push("noadaptation");a.push("uilang="+this.getUILocale());if(this.selectedAsset){c=shakaAssets.testAssets.includes(this.selectedAsset);
332
304
  a.push("asset="+this.selectedAsset.manifestUri);this.selectedAsset.adTagUri&&a.push("adTagUri="+this.selectedAsset.adTagUri);if(!c&&this.selectedAsset.licenseServers.size){b=this.selectedAsset.licenseServers.values().next().value;a.push("license="+b);for(var d of this.selectedAsset.licenseServers.keys())if(!shakaDemo.Main.commonDrmSystems.includes(d)){a.push("drmSystem="+d);break}}!c&&this.selectedAsset.certificateUri&&a.push("certificate="+this.selectedAsset.certificateUri)}d=document.getElementById("nav-button-container");
333
305
  for(var e of d.childNodes)if(e.nodeType==Node.ELEMENT_NODE&&(goog.asserts.assert(e instanceof HTMLElement,"Wrong node type!"),e.classList.contains("mdl-button--accent"))){a.push("panel="+e.getAttribute("tab-identifier"));(e=e.getAttribute("tab-hash"))&&a.push("panelData="+e);break}for(const f of["compiled","debug_compiled","uncompiled"])document.getElementById(f.split("_").join("-")+"-link").hasAttribute("disabled")&&a.push("build="+f);this.noInput_&&a.push("noinput");this.nativeControlsEnabled_&&
334
306
  a.push("nativecontrols");this.trickPlayControlsEnabled_&&a.push("trickplay");if(shaka.log&&shaka.log.currentLevel!=shaka.log.MAX_LOG_LEVEL)switch(shaka.log.currentLevel){case shaka.log.Level.INFO:a.push("info");break;case shaka.log.Level.DEBUG:a.push("debug");break;case shaka.log.Level.V2:a.push("vv");break;case shaka.log.Level.V1:a.push("v")}this.setNewHashSilent_(a.join(";"))}}setNewHashSilent_(a){history.replaceState(null,"",document.location.pathname+"#"+a)}getHamburgerMenu(){return document.getElementById("hamburger-menu-contents")}hideElement_(a){a.classList.add("hidden")}showElement_(a){a.classList.remove("hidden")}async getManifestUriFromAdManager_(a){const b=
335
307
  this.player_.getAdManager(),c=this.controls_.getServerSideAdContainer();try{goog.asserts.assert(null!=this.video_,"Video should not be null!");b.initServerSide(c,this.video_);let d;null!=a.imaAssetKey?(d=new google.ima.dai.api.LiveStreamRequest,d.assetKey=a.imaAssetKey):(goog.asserts.assert(null!=a.imaContentSrcId&&null!=a.imaVideoId,"Asset should have ima ids!"),d=new google.ima.dai.api.VODStreamRequest,d.contentSourceId=a.imaContentSrcId,d.videoId=a.imaVideoId);switch(a.imaManifestType){case "DASH":case "dash":case "MPD":case "mpd":d.format=
336
- google.ima.dai.api.StreamRequest.StreamFormat.DASH;break;case "HLS":case "hls":case "M3U8":case "m3u8":d.format=google.ima.dai.api.StreamRequest.StreamFormat.HLS}return await b.requestServerSideStream(d,a.manifestUri)}catch(d){return console.log(d),console.warn("Ads code has been prevented from running or returned an error. Proceeding without ads."),a.manifestUri}}addNavButton(a){const b=document.getElementById("nav-button-container"),c=document.getElementById("contents"),d=document.getElementById("nav-button-"+
337
- a);var e=this.getParams_();(a=e.panel==encodeURI(d.getAttribute("tab-identifier")))?(e=e.panelData)&&d.setAttribute("tab-hash",e):e.panel||(a=null!=d.getAttribute("defaultselected"));const f=document.createElement("div");this.hideElement_(f);c.appendChild(f);e=()=>{for(const g of b.childNodes)g.nodeType==Node.ELEMENT_NODE&&(goog.asserts.assert(g instanceof Element,"Wrong node type!"),g.classList.remove("mdl-button--accent"));for(const g of c.childNodes)g.nodeType==Node.ELEMENT_NODE&&(goog.asserts.assert(g instanceof
338
- Element,"Wrong node type!"),this.hideElement_(g));d.classList.add("mdl-button--accent");this.showElement_(f);this.remakeHash();this.dispatchEventWithName_("shaka-main-page-changed");f.scrollIntoView({behavior:"smooth",block:"start"})};d.addEventListener("click",e);a&&Promise.resolve().then(e);return{container:f,button:d}}dispatchEventWithName_(a){const b=document.createEvent("CustomEvent");b.initCustomEvent(a,!1,!1,null);document.dispatchEvent(b)}setUpVersionStrings_(){let a=shaka.Player.version.split("-");
339
- const b=[];for(const d of["debug","uncompiled"])a.includes(d)&&(b.push(d),a=a.filter(e=>e!=d));const c=document.getElementsByClassName("version-string");for(const d of c)d.textContent=a.join("-"),0<b.length&&(d.textContent+=" ("+b.join(", ")+")")}closeError_(){document.getElementById("error-display").classList.add("hidden");this.errorDisplayLink_.href="";this.errorDisplayLink_.textContent="";this.currentErrorSeverity_=null}onErrorEvent_(a){this.onError_(a.detail)}onError_(a){let b=a.severity;if(null==
340
- b||void 0==a.severity)b=shaka.util.Error.Severity.CRITICAL;const c=a.message||"Error code "+a.code;let d="";a.code&&(d="../docs/api/shaka.util.Error.html#value:"+a.code);console.error(a);this.handleError_(b,c,d)}handleError_(a,b,c){if(null==this.currentErrorSeverity_||a>this.currentErrorSeverity_)this.errorDisplayLink_.href=c,void 0===this.errorDisplayLink_.textContent?this.errorDisplayLink_.innerText=b:this.errorDisplayLink_.textContent=b,this.currentErrorSeverity_=a,this.errorDisplayLink_.href?
341
- this.errorDisplayLink_.classList.remove("input-disabled"):this.errorDisplayLink_.classList.add("input-disabled"),document.getElementById("error-display").classList.remove("hidden")}onCastStatusChange_(a){a&&!this.selectedAsset&&(this.selectedAsset=ShakaDemoAssetInfo.makeBlankAsset(),this.showPlayer_())}static defaultAdvancedDrmConfig(){return{distinctiveIdentifierRequired:!1,persistentStateRequired:!1,videoRobustness:"",audioRobustness:"",sessionType:"",serverCertificate:new Uint8Array(0),serverCertificateUri:"",
342
- individualizationServer:""}}};shakaDemo.Main.commonDrmSystems=["com.widevine.alpha","com.microsoft.playready","com.apple.fps","com.adobe.primetime","org.w3.clearkey"];const shakaDemoMain=new shakaDemo.Main;shakaDemo.Main.mainPoster_="https://shaka-player-demo.appspot.com/assets/poster.jpg";shakaDemo.Main.audioOnlyPoster_="https://shaka-player-demo.appspot.com/assets/audioOnly.gif";shakaDemo.Main.initWrapper=async a=>{try{await a()}catch(b){shakaDemoMain.onError_(b),console.error(b)}};
343
- document.addEventListener("shaka-ui-loaded",()=>{shakaDemo.Main.initWrapper(()=>shakaDemoMain.init())});document.addEventListener("shaka-ui-load-failed",a=>{shakaDemo.Main.initWrapper(()=>{shakaDemoMain.initFailed(a.detail.reasonCode)})});let shakaDemoSearch;
344
- shakaDemo.Search=class{static init(){const a=shakaDemoMain.addNavButton("search");shakaDemoSearch=new shakaDemo.Search(a.container,a.button)}constructor(a,b){this.desiredFeatures_=[];this.button_=b;this.resultsDiv_=document.createElement("div");this.assetCards_=[];document.addEventListener("shaka-main-selected-asset-changed",()=>{this.updateSelected_()});document.addEventListener("shaka-main-offline-progress",()=>{this.updateOfflineProgress_()});document.addEventListener("shaka-main-locale-changed",()=>
345
- {this.remakeSearchDiv_(a);this.remakeResultsDiv_();componentHandler.upgradeDom()});document.addEventListener("shaka-main-page-changed",()=>{this.resultsDiv_.childNodes.length||a.classList.contains("hidden")||this.remakeResultsDiv_()});this.readHashParameters_();this.updateHashParameters_();this.remakeSearchDiv_(a)}readHashParameters_(){var a=this.button_.getAttribute("tab-hash");if(a)for(const b of a.split(","))if(b.startsWith("drm:")){if(a=b.split("drm:")[1],a=shakaAssets.KeySystem[a])this.desiredDRM_=
346
- a}else if(b.startsWith("source:")){if(a=b.split("source:")[1],a=shakaAssets.Source[a])this.desiredSource_=a}else(a=shakaAssets.Feature[b])&&this.desiredFeatures_.push(a)}updateHashParameters_(){const a=[];if(this.desiredSource_)for(const b in shakaAssets.Source)shakaAssets.Source[b]==this.desiredSource_&&a.push("source:"+b);if(this.desiredDRM_)for(const b in shakaAssets.KeySystem)shakaAssets.KeySystem[b]==this.desiredDRM_&&a.push("drm:"+b);for(const b of this.desiredFeatures_)for(const c in shakaAssets.Feature)shakaAssets.Feature[c]==
347
- b&&a.push(c);0<a.length?this.button_.setAttribute("tab-hash",a.join(",")):this.button_.removeAttribute("tab-hash");shakaDemoMain.remakeHash()}createAssetCardFor_(a){return new shakaDemo.AssetCard(this.resultsDiv_,a,!1,b=>{const c=shakaDemoMain.getAssetUnsupportedReason(a,!1);c?b.markAsUnsupported(c):(b.addButton(shakaDemo.MessageIds.PLAY,()=>{shakaDemoMain.loadAsset(a);this.updateSelected_()}),b.addStoreButton())})}updateOfflineProgress_(){for(const a of this.assetCards_)a.updateProgress()}updateSelected_(){for(const a of this.assetCards_)a.selectByAsset(shakaDemoMain.selectedAsset)}remakeResultsDiv_(){shaka.util.Dom.removeAllChildren(this.resultsDiv_);
308
+ google.ima.dai.api.StreamRequest.StreamFormat.DASH;break;case "HLS":case "hls":case "M3U8":case "m3u8":d.format=google.ima.dai.api.StreamRequest.StreamFormat.HLS}return await b.requestServerSideStream(d,a.manifestUri)}catch(d){return console.log(d),console.warn("Ads code has been prevented from running or returned an error. Proceeding without ads."),a.manifestUri}}async getManifestUriFromMediaTailorAdManager_(a){const b=this.player_.getAdManager(),c=this.controls_.getServerSideAdContainer();try{goog.asserts.assert(null!=
309
+ this.video_,"Video should not be null!");goog.asserts.assert(null!=a.mediaTailorUrl,"Media Tailor info not be null!");const d=this.player_.getNetworkingEngine();goog.asserts.assert(d,"There should be a net engine.");b.initMediaTailor(c,d,this.video_);return await b.requestMediaTailorStream(a.mediaTailorUrl,a.mediaTailorAdsParams,a.manifestUri)}catch(d){return console.log(d),console.warn("Ads code has been prevented from running or returned an error. Proceeding without ads."),a.manifestUri}}addNavButton(a){const b=
310
+ document.getElementById("nav-button-container"),c=document.getElementById("contents"),d=document.getElementById("nav-button-"+a);var e=this.getParams_();(a=e.panel==encodeURI(d.getAttribute("tab-identifier")))?(e=e.panelData)&&d.setAttribute("tab-hash",e):e.panel||(a=null!=d.getAttribute("defaultselected"));const f=document.createElement("div");this.hideElement_(f);c.appendChild(f);e=()=>{for(const g of b.childNodes)g.nodeType==Node.ELEMENT_NODE&&(goog.asserts.assert(g instanceof Element,"Wrong node type!"),
311
+ g.classList.remove("mdl-button--accent"));for(const g of c.childNodes)g.nodeType==Node.ELEMENT_NODE&&(goog.asserts.assert(g instanceof Element,"Wrong node type!"),this.hideElement_(g));d.classList.add("mdl-button--accent");this.showElement_(f);this.remakeHash();this.dispatchEventWithName_("shaka-main-page-changed");f.scrollIntoView({behavior:"smooth",block:"start"})};d.addEventListener("click",e);a&&Promise.resolve().then(e);return{container:f,button:d}}dispatchEventWithName_(a){const b=document.createEvent("CustomEvent");
312
+ b.initCustomEvent(a,!1,!1,null);document.dispatchEvent(b)}setUpVersionStrings_(){let a=shaka.Player.version.split("-");const b=[];for(const d of["debug","uncompiled"])a.includes(d)&&(b.push(d),a=a.filter(e=>e!=d));const c=document.getElementsByClassName("version-string");for(const d of c)d.textContent=a.join("-"),0<b.length&&(d.textContent+=" ("+b.join(", ")+")")}closeError_(){document.getElementById("error-display").classList.add("hidden");this.errorDisplayLink_.href="";this.errorDisplayLink_.textContent=
313
+ "";this.currentErrorSeverity_=null}onErrorEvent_(a){this.onError_(a.detail)}onError_(a){let b=a.severity;if(null==b||void 0==a.severity)b=shaka.util.Error.Severity.CRITICAL;const c=a.message||"Error code "+a.code;let d="";a.code&&(d="../docs/api/shaka.util.Error.html#value:"+a.code);console.error(a);this.handleError_(b,c,d)}handleError_(a,b,c){if(null==this.currentErrorSeverity_||a>this.currentErrorSeverity_)this.errorDisplayLink_.href=c,void 0===this.errorDisplayLink_.textContent?this.errorDisplayLink_.innerText=
314
+ b:this.errorDisplayLink_.textContent=b,this.currentErrorSeverity_=a,this.errorDisplayLink_.href?this.errorDisplayLink_.classList.remove("input-disabled"):this.errorDisplayLink_.classList.add("input-disabled"),document.getElementById("error-display").classList.remove("hidden")}onCastStatusChange_(a){a&&!this.selectedAsset&&(this.selectedAsset=ShakaDemoAssetInfo.makeBlankAsset(),this.showPlayer_())}static defaultAdvancedDrmConfig(){return{distinctiveIdentifierRequired:!1,persistentStateRequired:!1,
315
+ videoRobustness:"",audioRobustness:"",sessionType:"",serverCertificate:new Uint8Array(0),serverCertificateUri:"",individualizationServer:""}}};shakaDemo.Main.commonDrmSystems=["com.widevine.alpha","com.microsoft.playready","com.apple.fps","com.adobe.primetime","org.w3.clearkey"];const shakaDemoMain=new shakaDemo.Main;shakaDemo.Main.mainPoster_="https://shaka-player-demo.appspot.com/assets/poster.jpg";shakaDemo.Main.audioOnlyPoster_="https://shaka-player-demo.appspot.com/assets/audioOnly.gif";
316
+ shakaDemo.Main.initWrapper=async a=>{try{await a()}catch(b){shakaDemoMain.onError_(b),console.error(b)}};document.addEventListener("shaka-ui-loaded",()=>{shakaDemo.Main.initWrapper(()=>shakaDemoMain.init())});document.addEventListener("shaka-ui-load-failed",a=>{shakaDemo.Main.initWrapper(()=>{shakaDemoMain.initFailed(a.detail.reasonCode)})});let shakaDemoSearch;
317
+ shakaDemo.Search=class{static init(){const a=shakaDemoMain.addNavButton("search");shakaDemoSearch=new shakaDemo.Search(a.container,a.button)}constructor(a,b){this.desiredFeatures_=[];this.button_=b;this.resultsDiv_=document.createElement("div");this.assetCards_=[];document.addEventListener("shaka-main-selected-asset-changed",()=>{this.updateSelected_()});document.addEventListener("shaka-main-offline-progress",()=>{this.updateOfflineProgress_()});document.addEventListener("shaka-main-page-changed",()=>
318
+ {this.resultsDiv_.childNodes.length||a.classList.contains("hidden")||this.remakeResultsDiv_()});this.readHashParameters_();this.updateHashParameters_();this.remakeSearchDiv_(a)}readHashParameters_(){var a=this.button_.getAttribute("tab-hash");if(a)for(const b of a.split(","))if(b.startsWith("drm:")){if(a=b.split("drm:")[1],a=shakaAssets.KeySystem[a])this.desiredDRM_=a}else if(b.startsWith("source:")){if(a=b.split("source:")[1],a=shakaAssets.Source[a])this.desiredSource_=a}else(a=shakaAssets.Feature[b])&&
319
+ this.desiredFeatures_.push(a)}updateHashParameters_(){const a=[];if(this.desiredSource_)for(const b in shakaAssets.Source)shakaAssets.Source[b]==this.desiredSource_&&a.push("source:"+b);if(this.desiredDRM_)for(const b in shakaAssets.KeySystem)shakaAssets.KeySystem[b]==this.desiredDRM_&&a.push("drm:"+b);for(const b of this.desiredFeatures_)for(const c in shakaAssets.Feature)shakaAssets.Feature[c]==b&&a.push(c);0<a.length?this.button_.setAttribute("tab-hash",a.join(",")):this.button_.removeAttribute("tab-hash");
320
+ shakaDemoMain.remakeHash()}createAssetCardFor_(a){return new shakaDemo.AssetCard(this.resultsDiv_,a,!1,b=>{const c=shakaDemoMain.getAssetUnsupportedReason(a,!1);c?b.markAsUnsupported(c):(b.addButton("Play",()=>{shakaDemoMain.loadAsset(a);this.updateSelected_()}),b.addStoreButton())})}updateOfflineProgress_(){for(const a of this.assetCards_)a.updateProgress()}updateSelected_(){for(const a of this.assetCards_)a.selectByAsset(shakaDemoMain.selectedAsset)}remakeResultsDiv_(){shaka.util.Dom.removeAllChildren(this.resultsDiv_);
348
321
  this.assetCards_=this.searchResults_().map(a=>this.createAssetCardFor_(a));this.updateSelected_()}checkDesiredTerm_(a,b){switch(b){case shakaDemo.Search.TermType.DRM:return this.desiredDRM_==a;case shakaDemo.Search.TermType.SOURCE:return this.desiredSource_==a;case shakaDemo.Search.TermType.FEATURE:return this.desiredFeatures_.includes(a);default:return!1}}addDesiredTerm_(a,b,c){switch(b){case shakaDemo.Search.TermType.DRM:this.desiredDRM_=a;break;case shakaDemo.Search.TermType.SOURCE:this.desiredSource_=
349
322
  a;break;case shakaDemo.Search.TermType.FEATURE:for(const d of c)b=this.desiredFeatures_.indexOf(d),-1!=b&&this.desiredFeatures_.splice(b,1);this.desiredFeatures_.push(a)}}removeDesiredTerm_(a,b){switch(b){case shakaDemo.Search.TermType.DRM:this.desiredDRM_=null;break;case shakaDemo.Search.TermType.SOURCE:this.desiredSource_=null;break;case shakaDemo.Search.TermType.FEATURE:a=this.desiredFeatures_.indexOf(a),-1!=a&&this.desiredFeatures_.splice(a,1)}}makeBooleanInput_(a,b,c,d){a.addRow(b,d,"significant-right-padding");
350
- (new shakaDemo.BoolInput(a,b,e=>{e.checked?this.addDesiredTerm_(b,c,[b]):this.removeDesiredTerm_(b,c);this.remakeResultsDiv_();componentHandler.upgradeDom();this.updateHashParameters_()})).input().checked=this.checkDesiredTerm_(b,c)}makeSelectInput_(a,b,c,d){a.addRow(null,null);const e={};for(const g of c)e[g]=shakaDemoMain.getLocalizedString(g);let f=e["---"]="---";a=new shakaDemo.SelectInput(a,b,g=>{"---"!=g.value?this.addDesiredTerm_(g.value,d,c):this.removeDesiredTerm_(f,d);f=g.value;this.remakeResultsDiv_();
351
- componentHandler.upgradeDom();this.updateHashParameters_()},e);a.input().value="---";for(const g of c)if(this.checkDesiredTerm_(g,d)){f=a.input().value=g;break}}remakeSearchDiv_(a){shaka.util.Dom.removeAllChildren(a);const b=shakaAssets.Feature,c=shakaDemo.Search.TermType.FEATURE;var d=shakaDemo.Search.TermType.DRM;const e=shakaDemo.Search.TermType.SOURCE,f=new shakaDemo.InputContainer(a,null,shakaDemo.InputContainer.Style.FLEX,null);this.makeSelectInput_(f,shakaDemo.MessageIds.MANIFEST_SEARCH,[b.DASH,
352
- b.HLS,b.MSS],c);this.makeSelectInput_(f,shakaDemo.MessageIds.CONTAINER_SEARCH,[b.MP4,b.MP2TS,b.WEBM,b.CONTAINERLESS],c);this.makeSelectInput_(f,shakaDemo.MessageIds.DRM_SEARCH,Object.values(shakaAssets.KeySystem),d);this.makeSelectInput_(f,shakaDemo.MessageIds.SOURCE_SEARCH,Object.values(shakaAssets.Source).filter(g=>g!=shakaAssets.Source.CUSTOM),e);this.makeSelectInput_(f,shakaDemo.MessageIds.LIVE_SEARCH,[b.LOW_LATENCY,b.LIVE,b.VOD],c);d=new shakaDemo.InputContainer(a,null,shakaDemo.InputContainer.Style.FLEX,
353
- null);this.makeBooleanInput_(d,b.HIGH_DEFINITION,c,shakaDemo.MessageIds.HIGH_DEFINITION_SEARCH);this.makeBooleanInput_(d,b.XLINK,c,shakaDemo.MessageIds.XLINK_SEARCH);this.makeBooleanInput_(d,b.SUBTITLES,c,shakaDemo.MessageIds.SUBTITLES_SEARCH);this.makeBooleanInput_(d,b.TRICK_MODE,c,shakaDemo.MessageIds.TRICK_MODE_SEARCH);this.makeBooleanInput_(d,b.SURROUND,c,shakaDemo.MessageIds.SURROUND_SEARCH);this.makeBooleanInput_(d,b.OFFLINE,c,shakaDemo.MessageIds.OFFLINE_SEARCH);this.makeBooleanInput_(d,b.STORED,
354
- c,shakaDemo.MessageIds.STORED_SEARCH);this.makeBooleanInput_(d,b.ADS,c,shakaDemo.MessageIds.AD_SEARCH);this.makeBooleanInput_(d,b.AUDIO_ONLY,c,shakaDemo.MessageIds.AUDIO_ONLY_SEARCH);this.makeBooleanInput_(d,b.THUMBNAILS,c,shakaDemo.MessageIds.THUMBNAILS);this.makeBooleanInput_(d,b.LCEVC,c,shakaDemo.MessageIds.LCEVC);this.makeBooleanInput_(d,b.LOW_LATENCY,c,shakaDemo.MessageIds.LOW_LATENCY);a.appendChild(this.resultsDiv_)}searchResults_(){return shakaAssets.testAssets.filter(a=>{if(a.disabled||this.desiredDRM_&&
355
- !a.drm.includes(this.desiredDRM_)||this.desiredSource_&&a.source!=this.desiredSource_)return!1;for(const b of this.desiredFeatures_)if(b==shakaAssets.Feature.STORED){if(!a.isStored())return!1}else if(!a.features.includes(b))return!1;return!0})}};shakaDemo.Search.TermType={FEATURE:"Feature",DRM:"DRM",SOURCE:"Source"};document.addEventListener("shaka-main-loaded",shakaDemo.Search.init);document.addEventListener("shaka-main-cleanup",()=>{shakaDemoSearch=null});
323
+ (new shakaDemo.BoolInput(a,b,e=>{e.checked?this.addDesiredTerm_(b,c,[b]):this.removeDesiredTerm_(b,c);this.remakeResultsDiv_();componentHandler.upgradeDom();this.updateHashParameters_()})).input().checked=this.checkDesiredTerm_(b,c)}makeSelectInput_(a,b,c,d){a.addRow(null,null);const e={};for(const g of c)e[g]=g;let f=e["---"]="---";a=new shakaDemo.SelectInput(a,b,g=>{"---"!=g.value?this.addDesiredTerm_(g.value,d,c):this.removeDesiredTerm_(f,d);f=g.value;this.remakeResultsDiv_();componentHandler.upgradeDom();
324
+ this.updateHashParameters_()},e);a.input().value="---";for(const g of c)if(this.checkDesiredTerm_(g,d)){f=a.input().value=g;break}}remakeSearchDiv_(a){shaka.util.Dom.removeAllChildren(a);const b=shakaAssets.Feature,c=shakaDemo.Search.TermType.FEATURE;var d=shakaDemo.Search.TermType.DRM;const e=shakaDemo.Search.TermType.SOURCE,f=new shakaDemo.InputContainer(a,null,shakaDemo.InputContainer.Style.FLEX,null);this.makeSelectInput_(f,"Manifest",[b.DASH,b.HLS,b.MSS],c);this.makeSelectInput_(f,"Container",
325
+ [b.MP4,b.MP2TS,b.WEBM,b.CONTAINERLESS],c);this.makeSelectInput_(f,"DRM",Object.values(shakaAssets.KeySystem),d);this.makeSelectInput_(f,"Source",Object.values(shakaAssets.Source).filter(g=>g!=shakaAssets.Source.CUSTOM),e);this.makeSelectInput_(f,"Live",[b.LOW_LATENCY,b.LIVE,b.VOD],c);d=new shakaDemo.InputContainer(a,null,shakaDemo.InputContainer.Style.FLEX,null);this.makeBooleanInput_(d,b.HIGH_DEFINITION,c,"Filters for assets with at least one high-definition video stream.");this.makeBooleanInput_(d,
326
+ b.XLINK,c,"Filters for assets that have XLINK tags in their manifests, so that they can be broken into multiple files.");this.makeBooleanInput_(d,b.SUBTITLES,c,"Filters for assets with caption tracks, or embedded captions.");this.makeBooleanInput_(d,b.TRICK_MODE,c,"Filters for assets that have special video tracks to be used in trick mode playback (aka fast-forward).");this.makeBooleanInput_(d,b.SURROUND,c,"Filters for assets with at least one surround sound audio track.");this.makeBooleanInput_(d,
327
+ b.OFFLINE,c,"Filters for assets that can be stored offline.");this.makeBooleanInput_(d,b.STORED,c,"Filters for assets that have been stored offline.");this.makeBooleanInput_(d,b.ADS,c,"Filters for assets that have advertisements.");this.makeBooleanInput_(d,b.AUDIO_ONLY,c,"Filters for assets that do not have video streams.");this.makeBooleanInput_(d,b.THUMBNAILS,c,"Filters for assets that have a thumbnail track.");this.makeBooleanInput_(d,b.LCEVC,c,"Filters for assets that have an LCEVC enhancement layer.");
328
+ a.appendChild(this.resultsDiv_)}searchResults_(){return shakaAssets.testAssets.filter(a=>{if(a.disabled||this.desiredDRM_&&!a.drm.includes(this.desiredDRM_)||this.desiredSource_&&a.source!=this.desiredSource_)return!1;for(const b of this.desiredFeatures_)if(b==shakaAssets.Feature.STORED){if(!a.isStored())return!1}else if(!a.features.includes(b))return!1;return!0})}};shakaDemo.Search.TermType={FEATURE:"Feature",DRM:"DRM",SOURCE:"Source"};document.addEventListener("shaka-main-loaded",shakaDemo.Search.init);
329
+ document.addEventListener("shaka-main-cleanup",()=>{shakaDemoSearch=null});
356
330
  //# sourceMappingURL=demo.compiled.map