shaka-player 4.4.3 → 4.6.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 (307) hide show
  1. package/.github/ISSUE_TEMPLATE/bug_report.md +1 -1
  2. package/.github/workflows/release-please.yaml +2 -27
  3. package/AUTHORS +2 -0
  4. package/CHANGELOG.md +156 -39
  5. package/CODE_OF_CONDUCT.md +1 -1
  6. package/CONTRIBUTORS +2 -0
  7. package/README.md +54 -42
  8. package/demo/asset_card.js +18 -21
  9. package/demo/cast_receiver/index.html +0 -1
  10. package/demo/close_button.js +0 -3
  11. package/demo/common/asset.js +33 -22
  12. package/demo/common/assets.js +249 -60
  13. package/demo/config.js +219 -253
  14. package/demo/custom.js +88 -133
  15. package/demo/front.js +7 -10
  16. package/demo/index.html +19 -22
  17. package/demo/input.js +6 -11
  18. package/demo/input_container.js +8 -9
  19. package/demo/main.js +62 -126
  20. package/demo/search.js +29 -34
  21. package/demo/service_worker.js +0 -3
  22. package/demo/tooltip.js +3 -5
  23. package/demo/visualizer.js +3 -5
  24. package/demo/visualizer_button.js +1 -20
  25. package/dist/controls.css +1 -1
  26. package/dist/controls.css.map +1 -1
  27. package/dist/demo.compiled.debug.js +211 -228
  28. package/dist/demo.compiled.debug.map +4 -4
  29. package/dist/demo.compiled.js +211 -228
  30. package/dist/demo.compiled.map +4 -4
  31. package/dist/deps.js +42 -37
  32. package/dist/locales.js +34 -30
  33. package/dist/receiver.compiled.debug.js +64 -77
  34. package/dist/receiver.compiled.debug.map +4 -4
  35. package/dist/receiver.compiled.js +64 -77
  36. package/dist/receiver.compiled.map +4 -4
  37. package/dist/shaka-player.compiled.d.ts +343 -151
  38. package/dist/shaka-player.compiled.debug.d.ts +343 -151
  39. package/dist/shaka-player.compiled.debug.externs.js +356 -117
  40. package/dist/shaka-player.compiled.debug.js +952 -811
  41. package/dist/shaka-player.compiled.debug.map +4 -4
  42. package/dist/shaka-player.compiled.externs.js +356 -117
  43. package/dist/shaka-player.compiled.js +1165 -1078
  44. package/dist/shaka-player.compiled.map +4 -4
  45. package/dist/shaka-player.ui.d.ts +359 -153
  46. package/dist/shaka-player.ui.debug.d.ts +359 -153
  47. package/dist/shaka-player.ui.debug.externs.js +382 -117
  48. package/dist/shaka-player.ui.debug.js +1084 -918
  49. package/dist/shaka-player.ui.debug.map +4 -4
  50. package/dist/shaka-player.ui.externs.js +382 -117
  51. package/dist/shaka-player.ui.js +1377 -1274
  52. package/dist/shaka-player.ui.map +4 -4
  53. package/docs/design/lcevc-integration.md +14 -14
  54. package/docs/tutorials/ad_monetization.md +54 -0
  55. package/docs/tutorials/basic-usage.md +2 -1
  56. package/docs/tutorials/errors.md +2 -1
  57. package/docs/tutorials/faq.md +27 -55
  58. package/docs/tutorials/index.json +2 -1
  59. package/docs/tutorials/lcevc.md +118 -0
  60. package/docs/tutorials/offline.md +10 -8
  61. package/docs/tutorials/plugins.md +5 -0
  62. package/docs/tutorials/ui-customization.md +17 -0
  63. package/docs/tutorials/ui.md +2 -1
  64. package/docs/tutorials/upgrade.md +3 -0
  65. package/externs/css_style_declaration.js +19 -0
  66. package/externs/lcevc.js +37 -13
  67. package/externs/managedmediasource.js +24 -0
  68. package/externs/media_remote.js +68 -0
  69. package/externs/mediatailor.js +193 -0
  70. package/externs/pictureinpicture.js +11 -0
  71. package/externs/shaka/abr_manager.js +6 -2
  72. package/externs/shaka/ads.js +27 -0
  73. package/externs/shaka/cea.js +7 -0
  74. package/externs/shaka/codecs.js +5 -3
  75. package/externs/shaka/manifest.js +31 -10
  76. package/externs/shaka/manifest_parser.js +24 -1
  77. package/externs/shaka/net.js +2 -2
  78. package/externs/shaka/offline.js +13 -2
  79. package/externs/shaka/player.js +65 -8
  80. package/externs/shaka/text.js +3 -1
  81. package/externs/shaka/transmuxer.js +1 -1
  82. package/karma.conf.js +7 -3
  83. package/lib/abr/simple_abr_manager.js +66 -9
  84. package/lib/ads/ad_manager.js +104 -50
  85. package/lib/ads/media_tailor_ad.js +297 -0
  86. package/lib/ads/media_tailor_ad_manager.js +839 -0
  87. package/lib/cast/cast_receiver.js +1 -1
  88. package/lib/cea/cea_decoder.js +28 -0
  89. package/lib/cea/dummy_caption_decoder.js +5 -0
  90. package/lib/cea/ts_cea_parser.js +15 -2
  91. package/lib/config/codec_switching_strategy.js +24 -0
  92. package/lib/dash/content_protection.js +120 -2
  93. package/lib/dash/dash_parser.js +322 -93
  94. package/lib/dash/mpd_utils.js +62 -37
  95. package/lib/dash/segment_base.js +17 -10
  96. package/lib/dash/segment_list.js +18 -9
  97. package/lib/dash/segment_template.js +122 -107
  98. package/lib/dependencies/all.js +8 -7
  99. package/lib/hls/hls_classes.js +28 -43
  100. package/lib/hls/hls_parser.js +798 -658
  101. package/lib/hls/hls_utils.js +64 -5
  102. package/lib/hls/manifest_text_parser.js +7 -11
  103. package/lib/lcevc/lcevc_dec.js +220 -0
  104. package/lib/media/adaptation_set.js +32 -14
  105. package/lib/media/adaptation_set_criteria.js +86 -16
  106. package/lib/media/closed_caption_parser.js +13 -0
  107. package/lib/media/content_workarounds.js +6 -0
  108. package/lib/media/drm_engine.js +8 -13
  109. package/lib/media/manifest_parser.js +8 -113
  110. package/lib/media/media_source_capabilities.js +10 -3
  111. package/lib/media/media_source_engine.js +286 -44
  112. package/lib/media/play_rate_controller.js +8 -38
  113. package/lib/media/presentation_timeline.js +7 -1
  114. package/lib/media/quality_observer.js +1 -1
  115. package/lib/media/segment_index.js +6 -6
  116. package/lib/media/segment_prefetch.js +92 -24
  117. package/lib/media/segment_reference.js +73 -7
  118. package/lib/media/segment_utils.js +343 -0
  119. package/lib/media/stall_detector.js +0 -3
  120. package/lib/media/streaming_engine.js +73 -38
  121. package/lib/mss/mss_parser.js +19 -2
  122. package/lib/net/networking_engine.js +67 -12
  123. package/lib/net/networking_utils.js +95 -0
  124. package/lib/offline/indexeddb/v1_storage_cell.js +3 -0
  125. package/lib/offline/indexeddb/v2_storage_cell.js +3 -0
  126. package/lib/offline/manifest_converter.js +3 -0
  127. package/lib/offline/offline_manifest_parser.js +10 -0
  128. package/lib/offline/storage.js +14 -7
  129. package/lib/player.js +1098 -1537
  130. package/lib/polyfill/mediasource.js +22 -1
  131. package/lib/text/cue.js +15 -0
  132. package/lib/text/mp4_ttml_parser.js +2 -2
  133. package/lib/text/srt_text_parser.js +2 -2
  134. package/lib/text/stub_text_displayer.js +51 -0
  135. package/lib/text/text_engine.js +3 -2
  136. package/lib/text/ttml_text_parser.js +45 -5
  137. package/lib/text/ui_text_displayer.js +8 -0
  138. package/lib/text/vtt_text_parser.js +40 -22
  139. package/lib/transmuxer/aac_transmuxer.js +1 -1
  140. package/lib/transmuxer/ac3_transmuxer.js +1 -1
  141. package/lib/transmuxer/ec3_transmuxer.js +1 -1
  142. package/lib/transmuxer/h264.js +5 -4
  143. package/lib/transmuxer/h265.js +863 -0
  144. package/lib/transmuxer/mp3_transmuxer.js +1 -1
  145. package/lib/transmuxer/mpeg_ts_transmuxer.js +4 -3
  146. package/lib/transmuxer/mss_transmuxer.js +1 -1
  147. package/lib/transmuxer/ts_transmuxer.js +187 -22
  148. package/lib/util/buffer_utils.js +26 -4
  149. package/lib/util/content_steering_manager.js +358 -0
  150. package/lib/util/error.js +30 -15
  151. package/lib/util/exp_golomb.js +30 -2
  152. package/lib/util/fairplay_utils.js +1 -1
  153. package/lib/util/fake_event.js +8 -1
  154. package/lib/util/id3_utils.js +50 -1
  155. package/lib/util/manifest_parser_utils.js +12 -8
  156. package/lib/util/mp4_generator.js +6 -8
  157. package/lib/util/mutex.js +59 -0
  158. package/lib/util/object_utils.js +1 -1
  159. package/lib/util/periods.js +156 -179
  160. package/lib/util/platform.js +44 -3
  161. package/lib/util/player_configuration.js +43 -6
  162. package/lib/util/state_history.js +6 -2
  163. package/lib/util/stream_utils.js +206 -283
  164. package/lib/util/ts_parser.js +335 -98
  165. package/lib/util/uint8array_utils.js +5 -1
  166. package/lib/util/xml_utils.js +5 -0
  167. package/maintained-branches.md +3 -2
  168. package/package.json +4 -6
  169. package/roadmap.md +25 -5
  170. package/shaka-player.uncompiled.js +2 -2
  171. package/support.html +0 -1
  172. package/test/abr/simple_abr_manager_unit.js +33 -33
  173. package/test/ads/ad_manager_unit.js +3 -2
  174. package/test/cast/cast_receiver_integration.js +50 -4
  175. package/test/cast/cast_utils_unit.js +2 -0
  176. package/test/cea/cea_decoder_unit.js +7 -0
  177. package/test/codec_switching/codec_switching_integration.js +182 -0
  178. package/test/dash/dash_parser_content_protection_unit.js +2 -0
  179. package/test/dash/dash_parser_integration.js +74 -0
  180. package/test/dash/dash_parser_live_unit.js +2 -19
  181. package/test/dash/dash_parser_manifest_unit.js +536 -2
  182. package/test/dash/dash_parser_segment_base_unit.js +2 -0
  183. package/test/dash/dash_parser_segment_list_unit.js +2 -0
  184. package/test/dash/dash_parser_segment_template_unit.js +2 -0
  185. package/test/dash/mpd_utils_unit.js +61 -30
  186. package/test/demo/demo_unit.js +0 -16
  187. package/test/hls/hls_live_unit.js +14 -3
  188. package/test/hls/hls_parser_unit.js +385 -33
  189. package/test/hls/manifest_text_parser_unit.js +32 -99
  190. package/test/media/adaptation_set_criteria_unit.js +284 -15
  191. package/test/media/adaptation_set_unit.js +2 -0
  192. package/test/media/content_workarounds_unit.js +1 -1
  193. package/test/media/drm_engine_unit.js +3 -3
  194. package/test/media/media_source_engine_unit.js +166 -2
  195. package/test/media/play_rate_controller_unit.js +0 -48
  196. package/test/media/segment_index_unit.js +5 -4
  197. package/test/media/segment_prefetch_unit.js +1 -1
  198. package/test/media/streaming_engine_unit.js +17 -17
  199. package/test/mss/mss_parser_unit.js +2 -0
  200. package/test/mss/mss_player_integration.js +3 -2
  201. package/test/net/networking_engine_unit.js +3 -3
  202. package/test/{media/manifest_parser_unit.js → net/networking_utils_unit.js} +2 -2
  203. package/test/offline/manifest_convert_unit.js +14 -0
  204. package/test/offline/offline_integration.js +2 -1
  205. package/test/offline/storage_integration.js +22 -13
  206. package/test/player_external.js +4 -2
  207. package/test/player_integration.js +15 -4
  208. package/test/player_load_graph_integration.js +47 -151
  209. package/test/player_src_equals_external.js +1 -0
  210. package/test/player_src_equals_integration.js +71 -4
  211. package/test/player_unit.js +182 -158
  212. package/test/test/assets/dash-aes-128/Fragments(video=0,format=mpd-time-csf) +0 -0
  213. package/test/test/assets/dash-aes-128/Fragments(video=20000000,format=mpd-time-csf) +0 -0
  214. package/test/test/assets/dash-aes-128/Fragments(video=40000000,format=mpd-time-csf) +0 -0
  215. package/test/test/assets/dash-aes-128/Fragments(video=60000000,format=mpd-time-csf) +0 -0
  216. package/test/test/assets/dash-aes-128/Fragments(video=i,format=mpd-time-csf) +0 -0
  217. package/test/test/assets/dash-aes-128/dash.mpd +18 -0
  218. package/test/test/assets/dash-aes-128/license +1 -0
  219. package/test/test/assets/dash-multi-codec/audio_en_2c_128k_aac.mp4 +0 -0
  220. package/test/test/assets/dash-multi-codec/audio_es_2c_64k_opus.webm +0 -0
  221. package/test/test/assets/dash-multi-codec/dash.mpd +32 -0
  222. package/test/test/assets/dash-multi-codec/video_144p_108k_h264.mp4 +0 -0
  223. package/test/test/assets/hls-ts-h265/0.ts +0 -0
  224. package/test/test/assets/hls-ts-h265/hevc.m3u8 +6 -0
  225. package/test/test/assets/hls-ts-h265/index.m3u8 +7 -0
  226. package/test/test/assets/hls-ts-muxed-aac-h265/0.ts +0 -0
  227. package/test/test/assets/hls-ts-muxed-aac-h265/1.ts +0 -0
  228. package/test/test/assets/hls-ts-muxed-aac-h265/media.m3u8 +9 -0
  229. package/test/test/assets/hls-ts-muxed-ac3-h264/media.m3u8 +24 -0
  230. package/test/test/assets/hls-ts-muxed-ac3-h264/s_00000.ts +0 -0
  231. package/test/test/assets/hls-ts-muxed-ac3-h264/s_00001.ts +0 -0
  232. package/test/test/assets/hls-ts-muxed-ac3-h264/s_00002.ts +0 -0
  233. package/test/test/assets/hls-ts-muxed-ac3-h264/s_00003.ts +0 -0
  234. package/test/test/assets/hls-ts-muxed-ac3-h264/s_00004.ts +0 -0
  235. package/test/test/assets/hls-ts-muxed-ac3-h264/s_00005.ts +0 -0
  236. package/test/test/assets/hls-ts-muxed-ec3-h264/ChID_voices_1280x720p_25fps_h264_6ch_256kbps_ddp_sub_0000.ts +0 -0
  237. package/test/test/assets/hls-ts-muxed-ec3-h264/ChID_voices_1280x720p_25fps_h264_6ch_256kbps_ddp_sub_0001.ts +0 -0
  238. package/test/test/assets/hls-ts-muxed-ec3-h264/ChID_voices_1280x720p_25fps_h264_6ch_256kbps_ddp_sub_0002.ts +0 -0
  239. package/test/test/assets/hls-ts-muxed-ec3-h264/ChID_voices_1280x720p_25fps_h264_6ch_256kbps_ddp_sub_0003.ts +0 -0
  240. package/test/test/assets/hls-ts-muxed-ec3-h264/prog_index.m3u8 +14 -0
  241. package/test/test/assets/hls-ts-muxed-mp3-h264/index.m3u8 +23 -0
  242. package/test/test/assets/hls-ts-muxed-mp3-h264/seg-1-v1-a1.ts +0 -0
  243. package/test/test/assets/hls-ts-muxed-mp3-h264/seg-2-v1-a1.ts +0 -0
  244. package/test/test/assets/hls-ts-muxed-mp3-h264/seg-3-v1-a1.ts +0 -0
  245. package/test/test/assets/hls-ts-muxed-mp3-h264/seg-4-v1-a1.ts +0 -0
  246. package/test/test/assets/hls-ts-muxed-mp3-h264/seg-5-v1-a1.ts +0 -0
  247. package/test/test/assets/hls-ts-muxed-mp3-h264/seg-6-v1-a1.ts +0 -0
  248. package/test/test/assets/hls-ts-muxed-mp3-h264/seg-7-v1-a1.ts +0 -0
  249. package/test/test/assets/hls-ts-muxed-mp3-h264/seg-8-v1-a1.ts +0 -0
  250. package/test/test/util/dash_parser_util.js +4 -0
  251. package/test/test/util/fake_ad_manager.js +20 -0
  252. package/test/test/util/fake_media_source_engine.js +13 -2
  253. package/test/test/util/fake_networking_engine.js +9 -1
  254. package/test/test/util/fake_segment_prefetch.js +3 -0
  255. package/test/test/util/manifest_generator.js +11 -3
  256. package/test/test/util/manifest_parser_util.js +14 -2
  257. package/test/test/util/mss_parser_util.js +4 -0
  258. package/test/test/util/offline_utils.js +2 -0
  259. package/test/test/util/simple_fakes.js +2 -2
  260. package/test/test/util/streaming_engine_util.js +10 -4
  261. package/test/test/util/test_scheme.js +6 -0
  262. package/test/test/util/ui_utils.js +4 -3
  263. package/test/text/mp4_ttml_parser_unit.js +4 -4
  264. package/test/text/srt_text_parser_unit.js +1 -1
  265. package/test/text/text_displayer_layout_unit.js +1 -1
  266. package/test/text/text_engine_unit.js +6 -0
  267. package/test/text/ttml_text_parser_unit.js +85 -2
  268. package/test/text/vtt_text_parser_unit.js +103 -31
  269. package/test/transmuxer/transmuxer_engine_integration.js +9 -0
  270. package/test/transmuxer/transmuxer_integration.js +150 -3
  271. package/test/ui/ad_ui_unit.js +2 -2
  272. package/test/ui/ui_customization_unit.js +17 -16
  273. package/test/ui/ui_integration.js +30 -20
  274. package/test/ui/ui_unit.js +28 -29
  275. package/test/util/buffer_utils_unit.js +1 -1
  276. package/test/util/content_steering_manager_unit.js +427 -0
  277. package/test/util/id3_utils_unit.js +52 -0
  278. package/test/util/stream_utils_unit.js +207 -169
  279. package/test/util/ts_parser_unit.js +3 -3
  280. package/third_party/closure-uri/uri.js +13 -1
  281. package/ui/audio_language_selection.js +9 -2
  282. package/ui/controls.js +125 -0
  283. package/ui/externs/ui.js +24 -2
  284. package/ui/language_utils.js +43 -8
  285. package/ui/less/range_elements.less +33 -0
  286. package/ui/locales/en.json +1 -0
  287. package/ui/locales/es-419.json +1 -0
  288. package/ui/locales/es.json +1 -0
  289. package/ui/locales/source.json +4 -0
  290. package/ui/localization.js +10 -0
  291. package/ui/pip_button.js +22 -120
  292. package/ui/remote_button.js +203 -0
  293. package/ui/resolution_selection.js +47 -10
  294. package/ui/seek_bar.js +296 -3
  295. package/ui/text_selection.js +2 -1
  296. package/ui/ui.js +11 -4
  297. package/demo/common/message_ids.js +0 -309
  298. package/demo/locales/en.json +0 -288
  299. package/demo/locales/source.json +0 -1146
  300. package/externs/mux.js +0 -69
  301. package/lib/lcevc/lcevc_dil.js +0 -152
  302. package/lib/routing/node.js +0 -23
  303. package/lib/routing/payload.js +0 -43
  304. package/lib/routing/walker.js +0 -587
  305. package/lib/transmuxer/muxjs_transmuxer.js +0 -242
  306. package/test/routing/walker_unit.js +0 -504
  307. 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,64 +65,38 @@ 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=
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.extraChapter=[];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.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}setExtraConfig(a){this.extraConfig=a;return this}setMimeType(a){this.mimeType=a;return this}setRequestFilter(a){this.requestFilter=
93
71
  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")))};
72
+ 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);return this}addLicenseRequestHeader(a,b){this.licenseRequestHeaders.set(a,b);return this}addExtraText(a){this.extraText.push(a);
73
+ return this}addExtraThumbnail(a){this.extraThumbnail.push(a);return this}addExtraChapter(a){this.extraChapter.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]]=e[1];a[b]=d}else a[b]=c}return a}applyFilters(a){a.clearAllRequestFilters();
74
+ 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];this.licenseServers.size&&(a.drm.servers=a.drm.servers||{},this.licenseServers.forEach((b,
75
+ 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("","","",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=
76
+ 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",BRIGHTCOVE:"Brightcove"},KeySystem:{CLEAR_KEY:"Clear Key DRM",FAIRPLAY:"Fairplay DRM",PLAYREADY:"PlayReady DRM",WIDEVINE:"Widevine DRM",
77
+ AES128:"AES-128 protection",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",DOLBY_VISION_3D:"Dolby Vision 3D",HIGH_DEFINITION:"High definition",ULTRA_HIGH_DEFINITION:"Ultra-high definition",SURROUND:"Surround sound",DASH:"DASH",HLS:"HLS",MSS:"MSS",THUMBNAILS:"Thumbnails",CHAPTERS:"Chapters",LCEVC:"LCEVC",LOW_LATENCY:"Low Latency",CONTENT_STEERING:"Content Steering"},lastUplynkPrefix:"",UplynkResponseFilter:(a,b)=>{a==shaka.net.NetworkingEngine.RequestType.MANIFEST&&(shakaAssets.lastUplynkPrefix=
81
+ b.headers["x-uplynk-prefix"]?b.headers["x-uplynk-prefix"]:"")},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")))}};
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),
111
85
  (new ShakaDemoAssetInfo("Angel One (multicodec, multilingual, Widevine)","https://storage.googleapis.com/shaka-asset-icons/angel_one.png","https://storage.googleapis.com/shaka-demo-assets/angel-one-widevine/dash.mpd",shakaAssets.Source.SHAKA)).addKeySystem(shakaAssets.KeySystem.WIDEVINE).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).addLicenseServer("com.widevine.alpha",
112
86
  "https://cwip-shaka-proxy.appspot.com/no_auth"),(new ShakaDemoAssetInfo("Angel One (multicodec, multilingual, ClearKey server)","https://storage.googleapis.com/shaka-asset-icons/angel_one.png","https://storage.googleapis.com/shaka-demo-assets/angel-one-clearkey/dash.mpd",shakaAssets.Source.SHAKA)).addKeySystem(shakaAssets.KeySystem.CLEAR_KEY).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).addLicenseServer("org.w3.clearkey",
113
87
  "https://cwip-shaka-proxy.appspot.com/clearkey?_u3wDe7erb7v8Lqt8A3QDQ=ABEiM0RVZneImaq7zN3u_w"),(new ShakaDemoAssetInfo("Angel One (HLS, MP4, multilingual)","https://storage.googleapis.com/shaka-asset-icons/angel_one.png","https://storage.googleapis.com/shaka-demo-assets/angel-one-hls/hls.m3u8",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.MULTIPLE_LANGUAGES).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.SURROUND).addFeature(shakaAssets.Feature.OFFLINE),
114
- (new ShakaDemoAssetInfo("Angel One (HLS, MP4, video media playlist only)","https://storage.googleapis.com/shaka-asset-icons/angel_one.png","https://storage.googleapis.com/shaka-demo-assets/angel-one-hls/playlist_v-0480p-1000k-libx264.mp4.m3u8",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.OFFLINE).setMediaPlaylistFullMimeType('video/mp4; codecs="avc1.4d401f"'),(new ShakaDemoAssetInfo("Angel One (HLS, MP4, multilingual, Widevine)",
115
- "https://storage.googleapis.com/shaka-asset-icons/angel_one.png","https://storage.googleapis.com/shaka-demo-assets/angel-one-widevine-hls/hls.m3u8",shakaAssets.Source.SHAKA)).addKeySystem(shakaAssets.KeySystem.WIDEVINE).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.MULTIPLE_LANGUAGES).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.SURROUND).addFeature(shakaAssets.Feature.OFFLINE).addLicenseServer("com.widevine.alpha",
116
- "https://cwip-shaka-proxy.appspot.com/no_auth"),(new ShakaDemoAssetInfo("Angel One (HLS, MP4, multilingual, Widevine, single linear ad)","https://storage.googleapis.com/shaka-asset-icons/angel_one.png","https://storage.googleapis.com/shaka-demo-assets/angel-one-widevine-hls/hls.m3u8",shakaAssets.Source.SHAKA)).addKeySystem(shakaAssets.KeySystem.WIDEVINE).setAdTagUri(shakaAssets.AdTag.SINGLE_LINEAR_AD).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.MULTIPLE_LANGUAGES).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.SURROUND).addFeature(shakaAssets.Feature.OFFLINE).addLicenseServer("com.widevine.alpha",
88
+ (new ShakaDemoAssetInfo("Angel One (HLS, MP4, video media playlist only)","https://storage.googleapis.com/shaka-asset-icons/angel_one.png","https://storage.googleapis.com/shaka-demo-assets/angel-one-hls/playlist_v-0480p-1000k-libx264.mp4.m3u8",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Angel One (HLS, MP4, multilingual, Widevine)","https://storage.googleapis.com/shaka-asset-icons/angel_one.png",
89
+ "https://storage.googleapis.com/shaka-demo-assets/angel-one-widevine-hls/hls.m3u8",shakaAssets.Source.SHAKA)).addKeySystem(shakaAssets.KeySystem.WIDEVINE).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.MULTIPLE_LANGUAGES).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.SURROUND).addFeature(shakaAssets.Feature.OFFLINE).addLicenseServer("com.widevine.alpha","https://cwip-shaka-proxy.appspot.com/no_auth"),(new ShakaDemoAssetInfo("Angel One (HLS, MP4, multilingual, Widevine, single linear ad)",
90
+ "https://storage.googleapis.com/shaka-asset-icons/angel_one.png","https://storage.googleapis.com/shaka-demo-assets/angel-one-widevine-hls/hls.m3u8",shakaAssets.Source.SHAKA)).addKeySystem(shakaAssets.KeySystem.WIDEVINE).setAdTagUri(shakaAssets.AdTag.SINGLE_LINEAR_AD).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.MULTIPLE_LANGUAGES).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.SURROUND).addFeature(shakaAssets.Feature.OFFLINE).addLicenseServer("com.widevine.alpha",
117
91
  "https://cwip-shaka-proxy.appspot.com/no_auth"),(new ShakaDemoAssetInfo("Angel One (HLS, MP4, multilingual, Widevine, single non-linear ad)","https://storage.googleapis.com/shaka-asset-icons/angel_one.png","https://storage.googleapis.com/shaka-demo-assets/angel-one-widevine-hls/hls.m3u8",shakaAssets.Source.SHAKA)).addKeySystem(shakaAssets.KeySystem.WIDEVINE).setAdTagUri(shakaAssets.AdTag.SINGLE_NON_LINEAR_AD).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.MULTIPLE_LANGUAGES).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.SURROUND).addFeature(shakaAssets.Feature.OFFLINE).addLicenseServer("com.widevine.alpha",
118
92
  "https://cwip-shaka-proxy.appspot.com/no_auth"),(new ShakaDemoAssetInfo("Sintel (HLS, TS, AES-128 key rotation)","https://storage.googleapis.com/shaka-asset-icons/sintel.png","https://storage.googleapis.com/shaka-demo-assets/sintel-ts-aes-key-rotation/master.m3u8",shakaAssets.Source.SHAKA)).addKeySystem(shakaAssets.KeySystem.AES128).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.MP2TS).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Sintel (HLS, FMP4, AES-128)",
119
93
  "https://storage.googleapis.com/shaka-asset-icons/sintel.png","https://storage.googleapis.com/shaka-demo-assets/sintel-fmp4-aes/master.m3u8",shakaAssets.Source.SHAKA)).addKeySystem(shakaAssets.KeySystem.AES128).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Sintel 4k (multicodec)","https://storage.googleapis.com/shaka-asset-icons/sintel.png","https://storage.googleapis.com/shaka-demo-assets/sintel/dash.mpd",
120
- shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.WEBM).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Sintel w/ trick mode (MP4 only, 720p)","https://storage.googleapis.com/shaka-asset-icons/sintel.png","https://storage.googleapis.com/shaka-demo-assets/sintel-trickplay/dash.mpd",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.TRICK_MODE).addFeature(shakaAssets.Feature.OFFLINE),
121
- (new ShakaDemoAssetInfo("Sintel 4k (WebM only)","https://storage.googleapis.com/shaka-asset-icons/sintel.png","https://storage.googleapis.com/shaka-demo-assets/sintel-webm-only/dash.mpd",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.WEBM).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Sintel 4k (MP4 only)","https://storage.googleapis.com/shaka-asset-icons/sintel.png",
122
- "https://storage.googleapis.com/shaka-demo-assets/sintel-mp4-only/dash.mpd",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Sintel 4k (multicodec, Widevine)","https://storage.googleapis.com/shaka-asset-icons/sintel.png","https://storage.googleapis.com/shaka-demo-assets/sintel-widevine/dash.mpd",
123
- shakaAssets.Source.SHAKA)).addKeySystem(shakaAssets.KeySystem.WIDEVINE).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.WEBM).addFeature(shakaAssets.Feature.OFFLINE).addLicenseServer("com.widevine.alpha","https://cwip-shaka-proxy.appspot.com/no_auth").setExtraConfig({drm:{advanced:{"com.widevine.alpha":{serverCertificateUri:"https://cwip-shaka-proxy.appspot.com/service-cert"}}}}),
124
- (new ShakaDemoAssetInfo("Sintel 4k (multicodec, Widevine, ads)","https://storage.googleapis.com/shaka-asset-icons/sintel.png","https://storage.googleapis.com/shaka-demo-assets/sintel-widevine/dash.mpd",shakaAssets.Source.SHAKA)).addDescription("A Blender Foundation short film, protected by Widevine encryption with pre-roll, mid-roll, and post-roll ads.").markAsFeatured("Sintel").setAdTagUri(shakaAssets.AdTag.AD_POD_PREROLL_MIDROLL_POSTROLL).addKeySystem(shakaAssets.KeySystem.WIDEVINE).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.WEBM).addFeature(shakaAssets.Feature.OFFLINE).addLicenseServer("com.widevine.alpha",
125
- "https://cwip-shaka-proxy.appspot.com/no_auth"),(new ShakaDemoAssetInfo("Sintel 4k (MP4, VTT in MP4)","https://storage.googleapis.com/shaka-asset-icons/sintel.png","https://storage.googleapis.com/shaka-demo-assets/sintel-mp4-wvtt/dash.mpd",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Sintel w/ 44 subtitle languages",
94
+ shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.ULTRA_HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.WEBM).addFeature(shakaAssets.Feature.OFFLINE).addFeature(shakaAssets.Feature.CHAPTERS).addExtraChapter({uri:"https://storage.googleapis.com/shaka-demo-assets/sintel-chapters.vtt",language:"en",mime:"text/vtt"}),(new ShakaDemoAssetInfo("Sintel w/ trick mode (MP4 only, 720p)",
95
+ "https://storage.googleapis.com/shaka-asset-icons/sintel.png","https://storage.googleapis.com/shaka-demo-assets/sintel-trickplay/dash.mpd",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.TRICK_MODE).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Sintel 4k (WebM only)","https://storage.googleapis.com/shaka-asset-icons/sintel.png","https://storage.googleapis.com/shaka-demo-assets/sintel-webm-only/dash.mpd",
96
+ shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.ULTRA_HIGH_DEFINITION).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.WEBM).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Sintel 4k (MP4 only)","https://storage.googleapis.com/shaka-asset-icons/sintel.png","https://storage.googleapis.com/shaka-demo-assets/sintel-mp4-only/dash.mpd",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.ULTRA_HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.OFFLINE),
97
+ (new ShakaDemoAssetInfo("Sintel 4k (multicodec, Widevine)","https://storage.googleapis.com/shaka-asset-icons/sintel.png","https://storage.googleapis.com/shaka-demo-assets/sintel-widevine/dash.mpd",shakaAssets.Source.SHAKA)).addKeySystem(shakaAssets.KeySystem.WIDEVINE).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.ULTRA_HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.WEBM).addFeature(shakaAssets.Feature.OFFLINE).addLicenseServer("com.widevine.alpha",
98
+ "https://cwip-shaka-proxy.appspot.com/no_auth").setExtraConfig({drm:{advanced:{"com.widevine.alpha":{serverCertificateUri:"https://cwip-shaka-proxy.appspot.com/service-cert"}}}}),(new ShakaDemoAssetInfo("Sintel 4k (multicodec, Widevine, ads)","https://storage.googleapis.com/shaka-asset-icons/sintel.png","https://storage.googleapis.com/shaka-demo-assets/sintel-widevine/dash.mpd",shakaAssets.Source.SHAKA)).addDescription("A Blender Foundation short film, protected by Widevine encryption with pre-roll, mid-roll, and post-roll ads.").markAsFeatured("Sintel").setAdTagUri(shakaAssets.AdTag.AD_POD_PREROLL_MIDROLL_POSTROLL).addKeySystem(shakaAssets.KeySystem.WIDEVINE).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.ULTRA_HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.WEBM).addFeature(shakaAssets.Feature.OFFLINE).addLicenseServer("com.widevine.alpha",
99
+ "https://cwip-shaka-proxy.appspot.com/no_auth"),(new ShakaDemoAssetInfo("Sintel 4k (MP4, VTT in MP4)","https://storage.googleapis.com/shaka-asset-icons/sintel.png","https://storage.googleapis.com/shaka-demo-assets/sintel-mp4-wvtt/dash.mpd",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.ULTRA_HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Sintel w/ 44 subtitle languages",
126
100
  "https://storage.googleapis.com/shaka-asset-icons/sintel.png","https://storage.googleapis.com/shaka-demo-assets/sintel-many-subs/dash.mpd",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.SURROUND).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Heliocentrism (multicodec, multiperiod)","https://storage.googleapis.com/shaka-asset-icons/heliocentricism.png","https://storage.googleapis.com/shaka-demo-assets/heliocentrism/heliocentrism.mpd",
127
101
  shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.WEBM).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Heliocentrism (multicodec, multiperiod, xlink)","https://storage.googleapis.com/shaka-asset-icons/heliocentricism.png","https://storage.googleapis.com/shaka-demo-assets/heliocentrism-xlink/heliocentrism.mpd",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.WEBM).addFeature(shakaAssets.Feature.XLINK).addFeature(shakaAssets.Feature.OFFLINE),
128
102
  (new ShakaDemoAssetInfo('"Dig the Uke" by Stefan Kartenberg (audio only, multicodec)',"https://storage.googleapis.com/shaka-asset-icons/audio_only.png","https://storage.googleapis.com/shaka-demo-assets/dig-the-uke-clear/dash.mpd",shakaAssets.Source.SHAKA)).addDescription("An audio-only presentation performed by Stefan Kartenberg.").markAsFeatured("Dig the Uke").addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.AUDIO_ONLY).addFeature(shakaAssets.Feature.WEBM).addFeature(shakaAssets.Feature.OFFLINE),
@@ -142,6 +116,8 @@ shakaAssets.Source.SHAKA)).setAdTagUri(shakaAssets.AdTag.SINGLE_SKIPPABLE_AD).ad
142
116
  (new ShakaDemoAssetInfo("Clear, single-Period","https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png","https://media.axprod.net/TestVectors/v7-Clear/Manifest.mpd",shakaAssets.Source.AXINOM)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.MULTIPLE_LANGUAGES).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Clear, multi-Period",
143
117
  "https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png","https://media.axprod.net/TestVectors/v7-Clear/Manifest_MultiPeriod.mpd",shakaAssets.Source.AXINOM)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.MULTIPLE_LANGUAGES).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Clear, Live DASH","https://storage.googleapis.com/shaka-asset-icons/axinom_test.png",
144
118
  "https://akamai-axtest.akamaized.net/routes/lapd-v1-acceptance/www_c4/Manifest.mpd",shakaAssets.Source.AXINOM)).markAsDisabled().addFeature(shakaAssets.Feature.LIVE).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.DASH),(new ShakaDemoAssetInfo("Clear, Live HLS","https://storage.googleapis.com/shaka-asset-icons/axinom_test.png","https://akamai-axtest.akamaized.net/routes/lapd-v1-acceptance/www_c4/Manifest.m3u8",shakaAssets.Source.AXINOM)).markAsDisabled().addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.LIVE).addFeature(shakaAssets.Feature.MP4),
119
+ (new ShakaDemoAssetInfo("Multi-DRM (CBCS), multi-key","https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png","https://media.axprod.net/TestVectors/MultiKey/Cmaf_h264_1080p_cbcs/manifest.mpd",shakaAssets.Source.AXINOM)).addKeySystem(shakaAssets.KeySystem.PLAYREADY).addKeySystem(shakaAssets.KeySystem.WIDEVINE).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.MULTIPLE_LANGUAGES).addFeature(shakaAssets.Feature.SUBTITLES).addLicenseServer("com.widevine.alpha",
120
+ "https://drm-widevine-licensing.axprod.net/AcquireLicense").addLicenseServer("com.microsoft.playready","https://drm-playready-licensing.axtest.net/AcquireLicense").addLicenseRequestHeader("X-AxDRM-Message","eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.ewogICJ2ZXJzaW9uIjogMSwKICAiY29tX2tleV9pZCI6ICI2OWU1NDA4OC1lOWUwLTQ1MzAtOGMxYS0xZWI2ZGNkMGQxNGUiLAogICJtZXNzYWdlIjogewogICAgInR5cGUiOiAiZW50aXRsZW1lbnRfbWVzc2FnZSIsCiAgICAidmVyc2lvbiI6IDIsCiAgICAibGljZW5zZSI6IHsKICAgICAgImFsbG93X3BlcnNpc3RlbmNlIjogdHJ1ZQogICAgfSwKICAgICJjb250ZW50X2tleXNfc291cmNlIjogewogICAgICAiaW5saW5lIjogWwogICAgICAgIHsKICAgICAgICAgICJpZCI6ICJiNTRlYzkxNC0xOTJkLTRlYTEtYWMxOS1mNDI5ZWI0OTgyNjgiLAogICAgICAgICAgImVuY3J5cHRlZF9rZXkiOiAiR1ZERnJZUU9Bb1kzZmpxVVVtamswQT09IiwKICAgICAgICAgICJ1c2FnZV9wb2xpY3kiOiAiUG9saWN5IEEiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiaWQiOiAiYzgzYzRlYTgtMGYyYS00NTIzLTg1MWMtZmJlY2NkYzBmMjAyIiwKICAgICAgICAgICJlbmNyeXB0ZWRfa2V5IjogIlRKZGZsWmJLYmZXQXl5K1dta21UUEE9PSIsCiAgICAgICAgICAidXNhZ2VfcG9saWN5IjogIlBvbGljeSBBIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgImlkIjogImM4NjhjNzAyLWM3MWItNDA2NC1hZTJiLWMyNGY3Y2MxMDc5MiIsCiAgICAgICAgICAiZW5jcnlwdGVkX2tleSI6ICJ4QXJpUkpOcUFTdXp6RExDRzNXSjdnPT0iLAogICAgICAgICAgInVzYWdlX3BvbGljeSI6ICJQb2xpY3kgQSIKICAgICAgICB9CiAgICAgIF0KICAgIH0sCiAgICAiY29udGVudF9rZXlfdXNhZ2VfcG9saWNpZXMiOiBbCiAgICAgIHsKICAgICAgICAibmFtZSI6ICJQb2xpY3kgQSIsCiAgICAgICAgInBsYXlyZWFkeSI6IHsKICAgICAgICAgICJtaW5fZGV2aWNlX3NlY3VyaXR5X2xldmVsIjogMTUwLAogICAgICAgICAgInBsYXlfZW5hYmxlcnMiOiBbCiAgICAgICAgICAgICI3ODY2MjdEOC1DMkE2LTQ0QkUtOEY4OC0wOEFFMjU1QjAxQTciCiAgICAgICAgICBdCiAgICAgICAgfQogICAgICB9CiAgICBdCiAgfQp9.XC0YIbZpKGFc3IZROklP4LvISc6cZGpE9UL-XcpcqWg"),
145
121
  (new ShakaDemoAssetInfo("Tears of Steel","https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png","https://demo.unified-streaming.com/video/tears-of-steel/tears-of-steel.ism/.mpd",shakaAssets.Source.UNIFIED_STREAMING)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Tears of Steel (HLS, Subtitles)","https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png",
146
122
  "https://demo.unified-streaming.com/video/tears-of-steel/tears-of-steel-multiple-subtitles.ism/.m3u8",shakaAssets.Source.UNIFIED_STREAMING)).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Tears of Steel (Widevine)","https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png","https://demo.unified-streaming.com/video/tears-of-steel/tears-of-steel-dash-widevine.ism/.mpd",
147
123
  shakaAssets.Source.UNIFIED_STREAMING)).addKeySystem(shakaAssets.KeySystem.WIDEVINE).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addLicenseServer("com.widevine.alpha","https://cwip-shaka-proxy.appspot.com/no_auth"),(new ShakaDemoAssetInfo("Tears of Steel (PlayReady)","https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png","https://demo.unified-streaming.com/video/tears-of-steel/tears-of-steel-dash-playready.ism/.mpd",
@@ -159,198 +135,205 @@ shakaAssets.Source.DASH_IF)).addFeature(shakaAssets.Feature.DASH).addFeature(sha
159
135
  (new ShakaDemoAssetInfo("DASH-IF THUMBNAILS - Single adaptation set, 4 tiles at 10x1, each thumb 205x115","https://storage.googleapis.com/shaka-asset-icons/dash_if_test_pattern.png","https://dash.akamaized.net/akamai/bbb_30fps/bbb_with_4_tiles_thumbnails.mpd",shakaAssets.Source.DASH_IF)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.ULTRA_HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.OFFLINE).addFeature(shakaAssets.Feature.THUMBNAILS),(new ShakaDemoAssetInfo("DASH-IF THUMBNAILS - Single adaptation set, 1 tile at 10x20, each thumb 102x58",
160
136
  "https://storage.googleapis.com/shaka-asset-icons/dash_if_test_pattern.png","https://dash.akamaized.net/akamai/bbb_30fps/bbb_with_tiled_thumbnails_2.mpd",shakaAssets.Source.DASH_IF)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.ULTRA_HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.OFFLINE).addFeature(shakaAssets.Feature.THUMBNAILS),(new ShakaDemoAssetInfo("DASH-IF THUMBNAILS - Two adaptation sets with different thumb resolutions","https://storage.googleapis.com/shaka-asset-icons/dash_if_test_pattern.png",
161
137
  "https://dash.akamaized.net/akamai/bbb_30fps/bbb_with_multiple_tiled_thumbnails.mpd",shakaAssets.Source.DASH_IF)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.ULTRA_HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.OFFLINE).addFeature(shakaAssets.Feature.THUMBNAILS),(new ShakaDemoAssetInfo("DASH-IF THUMBNAILS - Live stream, Single adaptation set, 1x1 tiles (livesim)","https://storage.googleapis.com/shaka-asset-icons/dash_if_test_pattern.png",
162
- "https://livesim2.dashif.org/livesim2/testpic_2s/Manifest_thumbs.mpd",shakaAssets.Source.DASH_IF)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.ULTRA_HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.LIVE).addFeature(shakaAssets.Feature.THUMBNAILS),(new ShakaDemoAssetInfo("Art of Motion (DASH)","https://storage.googleapis.com/shaka-asset-icons/art_of_motion.png","https://bitdash-a.akamaihd.net/content/MI201109210084_1/mpds/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.mpd",
163
- shakaAssets.Source.BITCODIN)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Art of Motion (HLS, TS)","https://storage.googleapis.com/shaka-asset-icons/art_of_motion.png","https://bitdash-a.akamaihd.net/content/MI201109210084_1/m3u8s/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.m3u8",shakaAssets.Source.BITCODIN)).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.MP2TS).addFeature(shakaAssets.Feature.OFFLINE),
164
- (new ShakaDemoAssetInfo("Art of Motion (HLS, TS, AES-128)","https://storage.googleapis.com/shaka-asset-icons/art_of_motion.png","https://bitmovin-a.akamaihd.net/content/art-of-motion_drm/m3u8s/11331.m3u8",shakaAssets.Source.BITCODIN)).addKeySystem(shakaAssets.KeySystem.AES128).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.MP2TS).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Sintel (HLS, TS, 4k)","https://storage.googleapis.com/shaka-asset-icons/sintel.png",
165
- "https://bitdash-a.akamaihd.net/content/sintel/hls/playlist.m3u8",shakaAssets.Source.BITCODIN)).markAsDisabled().addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.MP2TS).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Art of Motion (DASH) (external thumbnails)","https://storage.googleapis.com/shaka-asset-icons/art_of_motion.png","https://cdn.bitmovin.com/content/assets/art-of-motion-dash-hls-progressive/mpds/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.mpd",
166
- shakaAssets.Source.BITCODIN)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.THUMBNAILS).addExtraThumbnail("https://cdn.bitmovin.com/content/assets/art-of-motion-dash-hls-progressive/thumbnails/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.vtt"),(new ShakaDemoAssetInfo("Car Ride (DASH, VOD, 180 Degrees)","https://lab.streamshark.io:10433/streams/balmain_360/.png?scale=300:210","https://lab.streamshark.io:10433/streams/balmain_360/Feature.DASH/.mpd",
167
- shakaAssets.Source.METACDN)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.VOD),(new ShakaDemoAssetInfo("Car Ride (HLS, VOD, 180 Degrees)","https://lab.streamshark.io:10433/streams/balmain_360/.png?scale=300:210","https://lab.streamshark.io:10433/streams/balmain_360/Feature.HLS/.m3u8",shakaAssets.Source.METACDN)).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.MP2TS).addFeature(shakaAssets.Feature.VOD),
168
- (new ShakaDemoAssetInfo("Queensland, Australia Landscape (DASH)","https://lab.streamshark.io:10433/streams/sharkahouse/.png?scale=300:210","https://lab.streamshark.io:10433/streams/sharkahouse/Feature.DASH/.mpd",shakaAssets.Source.METACDN)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.VOD),(new ShakaDemoAssetInfo("Queensland, Australia Landscape (HLS)","https://lab.streamshark.io:10433/streams/sharkahouse/.png?scale=300:210",
169
- "https://lab.streamshark.io:10433/streams/sharkahouse/Feature.HLS/.m3u8",shakaAssets.Source.METACDN)).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.MP2TS).addFeature(shakaAssets.Feature.VOD),(new ShakaDemoAssetInfo("Big Buck Bunny (Nimble, DASH)","https://storage.googleapis.com/shaka-asset-icons/big_buck_bunny.png","https://cf-sf-video.wmspanel.com/local/raw/BigBuckBunny_320x180.mp4/manifest.mpd",shakaAssets.Source.NIMBLE_STREAMER)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.OFFLINE),
170
- (new ShakaDemoAssetInfo("Big Buck Bunny (Nimble, HLS)","https://storage.googleapis.com/shaka-asset-icons/big_buck_bunny.png","https://cf-sf-video.wmspanel.com/local/raw/BigBuckBunny_320x180.mp4/playlist.m3u8",shakaAssets.Source.NIMBLE_STREAMER)).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.MP2TS).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Azure Trailer","https://storage.googleapis.com/shaka-asset-icons/azure.png",
171
- "https://amssamples.streaming.mediaservices.windows.net/91492735-c523-432b-ba01-faba6c2206a2/AzureMediaServicesPromo.ism/manifest(format=mpd-time-csf)",shakaAssets.Source.AZURE_MEDIA_SERVICES)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Big Buck Bunny (Azure)","https://storage.googleapis.com/shaka-asset-icons/big_buck_bunny.png","https://amssamples.streaming.mediaservices.windows.net/622b189f-ec39-43f2-93a2-201ac4e31ce1/BigBuckBunny.ism/manifest(format=mpd-time-csf)",
172
- shakaAssets.Source.AZURE_MEDIA_SERVICES)).addKeySystem(shakaAssets.KeySystem.PLAYREADY).addKeySystem(shakaAssets.KeySystem.WIDEVINE).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.OFFLINE).addLicenseServer("com.widevine.alpha","https://amssamples.keydelivery.mediaservices.windows.net/Widevine/?KID=1ab45440-532c-4399-94dc-5c5ad9584bac").addLicenseServer("com.microsoft.playready","https://amssamples.keydelivery.mediaservices.windows.net/PlayReady/"),
173
- (new ShakaDemoAssetInfo("Tears of Steel (external text)","https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png","https://ams-samplescdn.streaming.mediaservices.windows.net/11196e3d-2f40-4835-9a4d-fc52751b0323/TearsOfSteel_WAMEH264SmoothStreaming720p.ism/manifest(format=mpd-time-csf)",shakaAssets.Source.AZURE_MEDIA_SERVICES)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.OFFLINE).addExtraText({uri:"https://ams-samplescdn.streaming.mediaservices.windows.net/11196e3d-2f40-4835-9a4d-fc52751b0323/TOS-en.vtt",
174
- language:"en",kind:"subtitle",mime:"text/vtt"}).addExtraText({uri:"https://ams-samplescdn.streaming.mediaservices.windows.net/11196e3d-2f40-4835-9a4d-fc52751b0323/TOS-es.vtt",language:"es",kind:"subtitle",mime:"text/vtt"}).addExtraText({uri:"https://ams-samplescdn.streaming.mediaservices.windows.net/11196e3d-2f40-4835-9a4d-fc52751b0323/TOS-fr.vtt",language:"fr",kind:"subtitle",mime:"text/vtt"}),(new ShakaDemoAssetInfo("Sintel (DASH, AES-128)","https://storage.googleapis.com/shaka-asset-icons/sintel.png",
175
- "https://amssamples.streaming.mediaservices.windows.net/49b57c87-f5f3-48b3-ba22-c55cfdffa9cb/Sintel.ism/manifest(format=mpd-time-csf)",shakaAssets.Source.AZURE_MEDIA_SERVICES)).addKeySystem(shakaAssets.KeySystem.AES128).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("live profile","https://storage.googleapis.com/shaka-asset-icons/sintel.png","https://download.tsi.telecom-paristech.fr/gpac/DASH_CONFORMANCE/TelecomParisTech/mp4-live/mp4-live-mpd-AV-BS.mpd",
176
- shakaAssets.Source.GPAC)).markAsDisabled().addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4),(new ShakaDemoAssetInfo("live profile with five periods","https://storage.googleapis.com/shaka-asset-icons/gpac_test_pattern.png","https://download.tsi.telecom-paristech.fr/gpac/DASH_CONFORMANCE/TelecomParisTech/mp4-live-periods/mp4-live-periods-mpd.mpd",shakaAssets.Source.GPAC)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.OFFLINE),
177
- (new ShakaDemoAssetInfo("main profile, single file","https://storage.googleapis.com/shaka-asset-icons/gpac_test_pattern.png","https://download.tsi.telecom-paristech.fr/gpac/DASH_CONFORMANCE/TelecomParisTech/mp4-main-single/mp4-main-single-mpd-AV-NBS.mpd",shakaAssets.Source.GPAC)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("main profile, multiple files","https://storage.googleapis.com/shaka-asset-icons/gpac_test_pattern.png",
178
- "https://download.tsi.telecom-paristech.fr/gpac/DASH_CONFORMANCE/TelecomParisTech/mp4-main-multi/mp4-main-multi-mpd-AV-BS.mpd",shakaAssets.Source.GPAC)).markAsDisabled().addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4),(new ShakaDemoAssetInfo("onDemand profile","https://storage.googleapis.com/shaka-asset-icons/gpac_test_pattern.png","https://download.tsi.telecom-paristech.fr/gpac/DASH_CONFORMANCE/TelecomParisTech/mp4-onDemand/mp4-onDemand-mpd-AV.mpd",shakaAssets.Source.GPAC)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.OFFLINE),
179
- (new ShakaDemoAssetInfo("main profile, open GOP","https://storage.googleapis.com/shaka-asset-icons/gpac_test_pattern.png","https://download.tsi.telecom-paristech.fr/gpac/DASH_CONFORMANCE/TelecomParisTech/mp4-main-ogop/mp4-main-ogop-mpd-AV-BS.mpd",shakaAssets.Source.GPAC)).markAsDisabled().addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4),(new ShakaDemoAssetInfo("full profile, gradual decoding refresh","https://storage.googleapis.com/shaka-asset-icons/gpac_test_pattern.png",
180
- "https://download.tsi.telecom-paristech.fr/gpac/DASH_CONFORMANCE/TelecomParisTech/mp4-full-gdr/mp4-full-gdr-mpd-AV-BS.mpd",shakaAssets.Source.GPAC)).markAsDisabled().addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4),(new ShakaDemoAssetInfo("Multi DRM - 8 Byte IV","https://storage.googleapis.com/shaka-asset-icons/azure.png","https://content.uplynk.com/847859273a4b4a81959d8fea181672a4.mpd?pr.version=2&pr.playenabler=B621D91F-EDCC-4035-8D4B-DC71760D43E9&pr.securitylevel=150",shakaAssets.Source.UPLYNK)).addKeySystem(shakaAssets.KeySystem.PLAYREADY).addKeySystem(shakaAssets.KeySystem.WIDEVINE).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addLicenseServer("com.microsoft.playready",
181
- "https://content.uplynk.com/pr").addLicenseServer("com.widevine.alpha","https://content.uplynk.com/wv").setRequestFilter(shakaAssets.UplynkRequestFilter).setResponseFilter(shakaAssets.UplynkResponseFilter),(new ShakaDemoAssetInfo("Multi DRM - MultiPeriod - 8 Byte IV","https://storage.googleapis.com/shaka-asset-icons/sintel.png","https://content.uplynk.com/054225d59be2454fabdca3e96912d847.mpd?ad=cleardash&pr.version=2&pr.playenabler=B621D91F-EDCC-4035-8D4B-DC71760D43E9&pr.securitylevel=150",shakaAssets.Source.UPLYNK)).addKeySystem(shakaAssets.KeySystem.PLAYREADY).addKeySystem(shakaAssets.KeySystem.WIDEVINE).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addLicenseServer("com.microsoft.playready",
138
+ "https://livesim2.dashif.org/livesim2/testpic_2s/Manifest_thumbs.mpd",shakaAssets.Source.DASH_IF)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.LIVE).addFeature(shakaAssets.Feature.THUMBNAILS),(new ShakaDemoAssetInfo("Art of Motion (DASH)","https://storage.googleapis.com/shaka-asset-icons/art_of_motion.png","https://bitdash-a.akamaihd.net/content/MI201109210084_1/mpds/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.mpd",shakaAssets.Source.BITCODIN)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.OFFLINE),
139
+ (new ShakaDemoAssetInfo("Art of Motion (HLS, TS)","https://storage.googleapis.com/shaka-asset-icons/art_of_motion.png","https://bitdash-a.akamaihd.net/content/MI201109210084_1/m3u8s/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.m3u8",shakaAssets.Source.BITCODIN)).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.MP2TS).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Art of Motion (HLS, TS, AES-128)","https://storage.googleapis.com/shaka-asset-icons/art_of_motion.png",
140
+ "https://bitmovin-a.akamaihd.net/content/art-of-motion_drm/m3u8s/11331.m3u8",shakaAssets.Source.BITCODIN)).addKeySystem(shakaAssets.KeySystem.AES128).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.MP2TS).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Sintel (HLS, TS, 4k)","https://storage.googleapis.com/shaka-asset-icons/sintel.png","https://bitdash-a.akamaihd.net/content/sintel/hls/playlist.m3u8",shakaAssets.Source.BITCODIN)).markAsDisabled().addFeature(shakaAssets.Feature.ULTRA_HIGH_DEFINITION).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.MP2TS).addFeature(shakaAssets.Feature.OFFLINE),
141
+ (new ShakaDemoAssetInfo("Art of Motion (DASH) (external thumbnails)","https://storage.googleapis.com/shaka-asset-icons/art_of_motion.png","https://cdn.bitmovin.com/content/assets/art-of-motion-dash-hls-progressive/mpds/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.mpd",shakaAssets.Source.BITCODIN)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.THUMBNAILS).addExtraThumbnail("https://cdn.bitmovin.com/content/assets/art-of-motion-dash-hls-progressive/thumbnails/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.vtt"),
142
+ (new ShakaDemoAssetInfo("Art of Motion (HLS) (external thumbnails)","https://storage.googleapis.com/shaka-asset-icons/art_of_motion.png","https://cdn.bitmovin.com/content/assets/art-of-motion-dash-hls-progressive/m3u8s/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.m3u8",shakaAssets.Source.BITCODIN)).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP2TS).addFeature(shakaAssets.Feature.THUMBNAILS).addExtraThumbnail("https://cdn.bitmovin.com/content/assets/art-of-motion-dash-hls-progressive/thumbnails/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.vtt"),
143
+ (new ShakaDemoAssetInfo("Art of Motion (MP4) (external thumbnails)","https://storage.googleapis.com/shaka-asset-icons/art_of_motion.png","https://cdn.bitmovin.com/content/assets/art-of-motion-dash-hls-progressive/MI201109210084_mpeg-4_hd_high_1080p25_10mbits.mp4",shakaAssets.Source.BITCODIN)).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.THUMBNAILS).addExtraThumbnail("https://cdn.bitmovin.com/content/assets/art-of-motion-dash-hls-progressive/thumbnails/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.vtt"),
144
+ (new ShakaDemoAssetInfo("Car Ride (DASH, VOD, 180 Degrees)","https://lab.streamshark.io:10433/streams/balmain_360/.png?scale=300:210","https://lab.streamshark.io:10433/streams/balmain_360/Feature.DASH/.mpd",shakaAssets.Source.METACDN)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.VOD),(new ShakaDemoAssetInfo("Car Ride (HLS, VOD, 180 Degrees)","https://lab.streamshark.io:10433/streams/balmain_360/.png?scale=300:210",
145
+ "https://lab.streamshark.io:10433/streams/balmain_360/Feature.HLS/.m3u8",shakaAssets.Source.METACDN)).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.MP2TS).addFeature(shakaAssets.Feature.VOD),(new ShakaDemoAssetInfo("Queensland, Australia Landscape (DASH)","https://lab.streamshark.io:10433/streams/sharkahouse/.png?scale=300:210","https://lab.streamshark.io:10433/streams/sharkahouse/Feature.DASH/.mpd",shakaAssets.Source.METACDN)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.VOD),
146
+ (new ShakaDemoAssetInfo("Queensland, Australia Landscape (HLS)","https://lab.streamshark.io:10433/streams/sharkahouse/.png?scale=300:210","https://lab.streamshark.io:10433/streams/sharkahouse/Feature.HLS/.m3u8",shakaAssets.Source.METACDN)).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.MP2TS).addFeature(shakaAssets.Feature.VOD),(new ShakaDemoAssetInfo("Big Buck Bunny (Nimble, DASH)","https://storage.googleapis.com/shaka-asset-icons/big_buck_bunny.png",
147
+ "https://cf-sf-video.wmspanel.com/local/raw/BigBuckBunny_320x180.mp4/manifest.mpd",shakaAssets.Source.NIMBLE_STREAMER)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Big Buck Bunny (Nimble, HLS)","https://storage.googleapis.com/shaka-asset-icons/big_buck_bunny.png","https://cf-sf-video.wmspanel.com/local/raw/BigBuckBunny_320x180.mp4/playlist.m3u8",shakaAssets.Source.NIMBLE_STREAMER)).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.MP2TS).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.OFFLINE),
148
+ (new ShakaDemoAssetInfo("Azure Trailer","https://storage.googleapis.com/shaka-asset-icons/azure.png","https://amssamples.streaming.mediaservices.windows.net/91492735-c523-432b-ba01-faba6c2206a2/AzureMediaServicesPromo.ism/manifest(format=mpd-time-csf)",shakaAssets.Source.AZURE_MEDIA_SERVICES)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Big Buck Bunny (Azure)",
149
+ "https://storage.googleapis.com/shaka-asset-icons/big_buck_bunny.png","https://amssamples.streaming.mediaservices.windows.net/622b189f-ec39-43f2-93a2-201ac4e31ce1/BigBuckBunny.ism/manifest(format=mpd-time-csf)",shakaAssets.Source.AZURE_MEDIA_SERVICES)).addKeySystem(shakaAssets.KeySystem.PLAYREADY).addKeySystem(shakaAssets.KeySystem.WIDEVINE).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.OFFLINE).addLicenseServer("com.widevine.alpha",
150
+ "https://amssamples.keydelivery.mediaservices.windows.net/Widevine/?KID=1ab45440-532c-4399-94dc-5c5ad9584bac").addLicenseServer("com.microsoft.playready","https://amssamples.keydelivery.mediaservices.windows.net/PlayReady/"),(new ShakaDemoAssetInfo("Tears of Steel (external text)","https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png","https://ams-samplescdn.streaming.mediaservices.windows.net/11196e3d-2f40-4835-9a4d-fc52751b0323/TearsOfSteel_WAMEH264SmoothStreaming720p.ism/manifest(format=mpd-time-csf)",
151
+ shakaAssets.Source.AZURE_MEDIA_SERVICES)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.OFFLINE).addExtraText({uri:"https://ams-samplescdn.streaming.mediaservices.windows.net/11196e3d-2f40-4835-9a4d-fc52751b0323/TOS-en.vtt",language:"en",kind:"subtitle",mime:"text/vtt"}).addExtraText({uri:"https://ams-samplescdn.streaming.mediaservices.windows.net/11196e3d-2f40-4835-9a4d-fc52751b0323/TOS-es.vtt",language:"es",
152
+ kind:"subtitle",mime:"text/vtt"}).addExtraText({uri:"https://ams-samplescdn.streaming.mediaservices.windows.net/11196e3d-2f40-4835-9a4d-fc52751b0323/TOS-fr.vtt",language:"fr",kind:"subtitle",mime:"text/vtt"}),(new ShakaDemoAssetInfo("Sintel (DASH, AES-128)","https://storage.googleapis.com/shaka-asset-icons/sintel.png","https://amssamples.streaming.mediaservices.windows.net/49b57c87-f5f3-48b3-ba22-c55cfdffa9cb/Sintel.ism/manifest(format=mpd-time-csf)",shakaAssets.Source.AZURE_MEDIA_SERVICES)).addKeySystem(shakaAssets.KeySystem.AES128).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.OFFLINE),
153
+ (new ShakaDemoAssetInfo("live profile","https://storage.googleapis.com/shaka-asset-icons/sintel.png","https://download.tsi.telecom-paristech.fr/gpac/DASH_CONFORMANCE/TelecomParisTech/mp4-live/mp4-live-mpd-AV-BS.mpd",shakaAssets.Source.GPAC)).markAsDisabled().addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4),(new ShakaDemoAssetInfo("live profile with five periods","https://storage.googleapis.com/shaka-asset-icons/gpac_test_pattern.png","https://download.tsi.telecom-paristech.fr/gpac/DASH_CONFORMANCE/TelecomParisTech/mp4-live-periods/mp4-live-periods-mpd.mpd",
154
+ shakaAssets.Source.GPAC)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("main profile, single file","https://storage.googleapis.com/shaka-asset-icons/gpac_test_pattern.png","https://download.tsi.telecom-paristech.fr/gpac/DASH_CONFORMANCE/TelecomParisTech/mp4-main-single/mp4-main-single-mpd-AV-NBS.mpd",shakaAssets.Source.GPAC)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.OFFLINE),
155
+ (new ShakaDemoAssetInfo("main profile, multiple files","https://storage.googleapis.com/shaka-asset-icons/gpac_test_pattern.png","https://download.tsi.telecom-paristech.fr/gpac/DASH_CONFORMANCE/TelecomParisTech/mp4-main-multi/mp4-main-multi-mpd-AV-BS.mpd",shakaAssets.Source.GPAC)).markAsDisabled().addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4),(new ShakaDemoAssetInfo("onDemand profile","https://storage.googleapis.com/shaka-asset-icons/gpac_test_pattern.png","https://download.tsi.telecom-paristech.fr/gpac/DASH_CONFORMANCE/TelecomParisTech/mp4-onDemand/mp4-onDemand-mpd-AV.mpd",
156
+ shakaAssets.Source.GPAC)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("main profile, open GOP","https://storage.googleapis.com/shaka-asset-icons/gpac_test_pattern.png","https://download.tsi.telecom-paristech.fr/gpac/DASH_CONFORMANCE/TelecomParisTech/mp4-main-ogop/mp4-main-ogop-mpd-AV-BS.mpd",shakaAssets.Source.GPAC)).markAsDisabled().addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4),
157
+ (new ShakaDemoAssetInfo("full profile, gradual decoding refresh","https://storage.googleapis.com/shaka-asset-icons/gpac_test_pattern.png","https://download.tsi.telecom-paristech.fr/gpac/DASH_CONFORMANCE/TelecomParisTech/mp4-full-gdr/mp4-full-gdr-mpd-AV-BS.mpd",shakaAssets.Source.GPAC)).markAsDisabled().addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4),(new ShakaDemoAssetInfo("Multi DRM - 8 Byte IV","https://storage.googleapis.com/shaka-asset-icons/azure.png","https://content.uplynk.com/847859273a4b4a81959d8fea181672a4.mpd?pr.version=2&pr.playenabler=B621D91F-EDCC-4035-8D4B-DC71760D43E9&pr.securitylevel=150",
158
+ shakaAssets.Source.UPLYNK)).addKeySystem(shakaAssets.KeySystem.PLAYREADY).addKeySystem(shakaAssets.KeySystem.WIDEVINE).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addLicenseServer("com.microsoft.playready","https://content.uplynk.com/pr").addLicenseServer("com.widevine.alpha","https://content.uplynk.com/wv").setRequestFilter(shakaAssets.UplynkRequestFilter).setResponseFilter(shakaAssets.UplynkResponseFilter),(new ShakaDemoAssetInfo("Multi DRM - MultiPeriod - 8 Byte IV",
159
+ "https://storage.googleapis.com/shaka-asset-icons/sintel.png","https://content.uplynk.com/054225d59be2454fabdca3e96912d847.mpd?ad=cleardash&pr.version=2&pr.playenabler=B621D91F-EDCC-4035-8D4B-DC71760D43E9&pr.securitylevel=150",shakaAssets.Source.UPLYNK)).addKeySystem(shakaAssets.KeySystem.PLAYREADY).addKeySystem(shakaAssets.KeySystem.WIDEVINE).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addLicenseServer("com.microsoft.playready",
182
160
  "https://content.uplynk.com/pr").addLicenseServer("com.widevine.alpha","https://content.uplynk.com/wv").setRequestFilter(shakaAssets.UplynkRequestFilter).setResponseFilter(shakaAssets.UplynkResponseFilter),(new ShakaDemoAssetInfo("Widevine - 16 Byte IV","https://storage.googleapis.com/shaka-asset-icons/big_buck_bunny.png","https://content.uplynk.com/224ac8717e714b68831997ab6cea4015.mpd",shakaAssets.Source.UPLYNK)).addKeySystem(shakaAssets.KeySystem.WIDEVINE).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addLicenseServer("com.widevine.alpha",
183
161
  "https://content.uplynk.com/wv").setRequestFilter(shakaAssets.UplynkRequestFilter).setResponseFilter(shakaAssets.UplynkResponseFilter),(new ShakaDemoAssetInfo("Widevine - 16 Byte IV - (mix of encrypted and unencrypted periods)","https://storage.googleapis.com/shaka-asset-icons/sintel.png","https://content.uplynk.com/1eb40d8e64234f5c9879db7045c3d48c.mpd?ad=cleardash&rays=cdefg",shakaAssets.Source.UPLYNK)).addKeySystem(shakaAssets.KeySystem.WIDEVINE).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.MULTIPLE_LANGUAGES).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addLicenseServer("com.widevine.alpha",
184
162
  "https://content.uplynk.com/wv").setRequestFilter(shakaAssets.UplynkRequestFilter).setResponseFilter(shakaAssets.UplynkResponseFilter),(new ShakaDemoAssetInfo("Apple Advanced HLS Stream (fMP4)","https://storage.googleapis.com/shaka-asset-icons/apple_test_pattern.png","https://storage.googleapis.com/shaka-demo-assets/apple-advanced-stream-fmp4/master.m3u8",shakaAssets.Source.APPLE)).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.CAPTIONS).addFeature(shakaAssets.Feature.OFFLINE),
185
163
  (new ShakaDemoAssetInfo("Apple Advanced HLS Stream (TS)","https://storage.googleapis.com/shaka-asset-icons/apple_test_pattern.png","https://storage.googleapis.com/shaka-demo-assets/apple-advanced-stream-ts/master.m3u8",shakaAssets.Source.APPLE)).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.MP2TS).addFeature(shakaAssets.Feature.CAPTIONS).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Low Latency HLS Live","https://storage.googleapis.com/shaka-asset-icons/apple_test_pattern.png",
186
164
  "https://ll-hls-test.cdn-apple.com/llhls4/ll-hls-test-04/multi.m3u8",shakaAssets.Source.APPLE)).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.LIVE).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.LOW_LATENCY).setExtraConfig({streaming:{lowLatencyMode:!0}}),(new ShakaDemoAssetInfo("Audio only HLS with raw AAC","https://storage.googleapis.com/shaka-asset-icons/apple_test_pattern.png","https://storage.googleapis.com/shaka-demo-assets/raw-hls-audio-only/manifest.m3u8",
187
165
  shakaAssets.Source.APPLE)).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.CONTAINERLESS).addFeature(shakaAssets.Feature.AUDIO_ONLY),(new ShakaDemoAssetInfo("Apple Advanced HLS Stream (TS) with raw AAC","https://storage.googleapis.com/shaka-asset-icons/apple_test_pattern.png","https://devstreaming-cdn.apple.com/videos/streaming/examples/img_bipbop_adv_example_ts/master.m3u8",shakaAssets.Source.APPLE)).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.MP2TS).addFeature(shakaAssets.Feature.CONTAINERLESS).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.OFFLINE),
188
- (new ShakaDemoAssetInfo("Bayerischer Rundfunk Recorded Loop (DASH)","https://storage.googleapis.com/shaka-asset-icons/bayerischer_rundfunk.png","https://irtdashreference-i.akamaihd.net/dash/live/901161/keepixo1/manifestBR2.mpd",shakaAssets.Source.IRT)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.LIVE),(new ShakaDemoAssetInfo("Bayerischer Rundfunk Recorded Loop (HLS)","https://storage.googleapis.com/shaka-asset-icons/bayerischer_rundfunk.png",
189
- "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
- 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
- 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,
193
- 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
- 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},
166
+ (new ShakaDemoAssetInfo("Advanced stream HLS Stream (UHD/4K/HDR/ATMOS)","https://storage.googleapis.com/shaka-asset-icons/becoming_you.png","https://devstreaming-cdn.apple.com/videos/streaming/examples/adv_dv_atmos/main.m3u8",shakaAssets.Source.APPLE)).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.ULTRA_HIGH_DEFINITION).addFeature(shakaAssets.Feature.OFFLINE).addFeature(shakaAssets.Feature.THUMBNAILS),(new ShakaDemoAssetInfo("3D movie stream",
167
+ "","https://devstreaming-cdn.apple.com/videos/streaming/examples/historic_planet_content_2023-10-26-3d-video/main.m3u8",shakaAssets.Source.APPLE)).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.ULTRA_HIGH_DEFINITION).addFeature(shakaAssets.Feature.DOLBY_VISION_3D).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Bayerischer Rundfunk Recorded Loop (DASH)","https://storage.googleapis.com/shaka-asset-icons/bayerischer_rundfunk.png","https://irtdashreference-i.akamaihd.net/dash/live/901161/keepixo1/manifestBR2.mpd",
168
+ shakaAssets.Source.IRT)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.LIVE),(new ShakaDemoAssetInfo("Bayerischer Rundfunk Recorded Loop (HLS)","https://storage.googleapis.com/shaka-asset-icons/bayerischer_rundfunk.png","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),
169
+ (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",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)"),
170
+ (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",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",
171
+ "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","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",
172
+ "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},mediaSource:{forceTransmux:!0},lcevc:{enabled:!0,dynamicPerformanceScaling:!0,logLevel:0,drawLogo:!1}}),
173
+ (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,dynamicPerformanceScaling:!0,logLevel:0,
174
+ 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},mediaSource:{forceTransmux:!0},
175
+ 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
176
  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",
177
+ 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"),
178
+ (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"),
179
+ (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",
180
+ {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"),
181
+ (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"),
182
+ (new ShakaDemoAssetInfo("Content Steering HLS","https://storage.googleapis.com/shaka-asset-icons/big_buck_bunny.png","https://fastly.content-steering.com/bbb_hls/master_steering_fastly_https.m3u8",shakaAssets.Source.BRIGHTCOVE)).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.CONTENT_STEERING),(new ShakaDemoAssetInfo("Content Steering DASH","https://storage.googleapis.com/shaka-asset-icons/big_buck_bunny.png",
183
+ "https://fastly.content-steering.com/bbb/playlist_steering_fastly_https_cdn-a_cdn-c_cdn-b.mpd",shakaAssets.Source.BRIGHTCOVE)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.CONTENT_STEERING)];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
184
  "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
185
  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
186
  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
187
  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
188
  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";
189
+ 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");
190
+ 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_,
191
+ !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,
192
+ "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");
193
+ 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");
194
+ 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);
195
+ 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
196
  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
197
  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
198
  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")}};
199
+ 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"),
200
+ 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
201
  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
202
  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&&
203
+ 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+=
204
+ "(.[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
205
  (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
253
- 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
- document.addEventListener("shaka-main-cleanup",()=>{shakaDemoConfig=null});let shakaDemoCustom;
206
+ 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");
207
+ 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-"+
208
+ 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_,
209
+ 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;
210
+ 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"):
211
+ 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());
212
+ 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",
213
+ "drm.minHdcpVersion").addBoolInput_("Ignore duplicate init data","drm.ignoreDuplicateInitData");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(" ");
214
+ 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",
215
+ "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",
216
+ "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").addBoolInput_("Disable codec guessing",
217
+ "manifest.hls.disableCodecGuessing").addBoolInput_("Allow LL-HLS byterange optimization","manifest.hls.allowLowLatencyByteRangeOptimization").addNumberInput_("Availability Window Override","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",
218
+ "manifest.dash.initialSegmentLimit",!1,!1,!0).addBoolInput_("Enable DASH sequence mode","manifest.dash.sequenceMode").addBoolInput_("Disable Audio","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");
219
+ this.addRetrySection_("manifest","Manifest Retry Parameters")}addAbrSection_(){const a=this.resolveExternLink_(".AbrConfiguration");this.addSection_("Adaptation",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",
220
+ !0).addNumberInput_("Switch Interval","abr.switchInterval",!0).addNumberInput_("Min total Bytes","abr.advanced.minTotalBytes").addNumberInput_("Min Bytes","abr.advanced.minBytes").addNumberInput_("Fast half life","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",
221
+ "abr.clearBufferSwitch").addNumberInput_("Safe margin on abr switch rendition","abr.safeMarginSwitch",!0);this.addRetrictionsSection_("abr","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");
222
+ this.addSection_("MPEG-5 Part-2 LCEVC",a).addBoolInput_("Enabled","lcevc.enabled").addBoolInput_("LCEVC Dynamic Performance scaling","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=
223
+ this.resolveExternLink_(".Restrictions");this.addSection_(b,c).addNumberInput_("Min Width",a+"minWidth").addNumberInput_("Max Width",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",
224
+ a+"maxBandwidth")}addRetrySection_(a,b){a+=".retryParameters.";const c=this.resolveExternLink_(".RetryParameters");this.addSection_(b,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=
225
+ this.resolveExternLink_(".OfflineConfiguration");this.addSection_("Offline",a).addBoolInput_("Use Persistent Licenses","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",
226
+ "streaming.bufferingGoal",!0).addNumberInput_("Duration Backoff","streaming.durationBackoff",!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",
227
+ !0).addBoolInput_("Low Latency Mode","streaming.lowLatencyMode").addBoolInput_("Auto Low Latency Mode","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",
228
+ "streaming.maxDisabledTime").addNumberInput_("Segment Prefetch Limit","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).addNumberInput_("Min latency for live sync","streaming.liveSyncMinLatency",!0,!0).addNumberInput_("Min playback rate for live sync","streaming.liveSyncMinPlaybackRate",!0,!1);shakaDemoMain.getNativeControlsEnabled()?
229
+ (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=!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.addSelectInput_("Preferred video layout",
230
+ "preferredVideoLayout",{"":"","CH-STEREO":"CH-STEREO","CH-MONO":"CH-MONO"},{"CH-STEREO":"Stereoscopic","CH-MONO":"Monoscopic","":"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","streaming.useNativeHlsOnSafari");this.addRetrySection_("streaming","Streaming Retry Parameters")}addMediaSourceSection_(){const a=
231
+ 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","mediaSource.codecSwitchingStrategy",a,{RELOAD:"reload",SMOOTH:"smooth"})}addLanguageSection_(){const a=
232
+ 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",b,{NEVER:"Never",ALWAYS:"Always",IF_PREFERRED_TEXT_LANGUAGE:"If preferred text language",IF_SUBTITLES_MAY_BE_NEEDED:"If subtitles may be needed"});
233
+ 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,null);this.addCustomBoolInput_("Shaka Controls",d=>{shakaDemoMain.setNativeControlsEnabled(!d.checked);d.checked&&(shakaDemoMain.configure("streaming.alwaysStreamText",
234
+ !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=!1):(this.addCustomBoolInput_("Enabled Trick Play Controls",d=>{shakaDemoMain.setTrickPlayControlsEnabled(d.checked)}),shakaDemoMain.getTrickPlayControlsEnabled()&&
235
+ (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()});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=
236
+ "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,b,c){this.createRow_(a,
237
+ 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,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_(),
238
+ 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=shakaDemoMain.getCurrentConfigValue(b);isNaN(Number(this.latestInput_.input().value))&&e&&(this.latestInput_.input().value="");return this}addDatalistInput_(a,b,c,d){this.createRow_(a,
239
+ 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 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=
240
+ 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);document.addEventListener("shaka-main-cleanup",()=>{shakaDemoConfig=null});let shakaDemoCustom;
255
241
  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;
242
+ 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,
243
+ 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,
244
+ 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}makeAssetDialogContentsAds_(a,
245
+ 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,
246
+ "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)",
247
+ (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)});this.makeField_(c,"Media Tailor URL",(d,e)=>{a.mediaTailorUrl&&(d.value=a.mediaTailorUrl)},d=>{a.setMediaTailor(d.value);this.manifestField_.required=this.checkManifestRequired_(a)});return b}makeAssetDialogContentsDrm_(a,b){b=document.createElement("div");const c=new shakaDemo.InputContainer(b,
248
+ 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,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=
249
+ 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}makeAssetDialogContentsExtraTracks_(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");this.makeField_(c,"Thumbnails URL",(d,e)=>{a.extraThumbnail.length&&
250
+ (d.value=a.extraThumbnail[0])},d=>{a.extraThumbnail=[];a.addExtraThumbnail(d.value)});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");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");
251
+ e.classList.add("mdl-textfield__error");e.textContent="Invalid JSON configuration";f.appendChild(e)},(e,f)=>{try{if(e.value){const g=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");
252
+ h.classList.add("mdl-textfield__error");h.textContent="Must have a manifest URL, or IMA DAI id fields";g.appendChild(h);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!=
253
+ a&&(f.pattern+="|"+l.name.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"));f.pattern+=")$).*$"},f=>{a.name=f.value});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){const b=
254
+ !!a.mediaTailorUrl;return!(a.imaContentSrcId&&a.imaVideoId||null!=a.imaAssetKey)&&!b}makeAssetDialogContentsFinish_(a,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_);
255
+ 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.makeAssetDialogContentsExtraTracks_(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");
256
+ q.classList.remove("hidden");for(const u of m)u.classList.remove("mdl-button--accent");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("Extra Tracks",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);
257
+ this.dialog_.appendChild(l);this.dialog_.appendChild(a);this.dialog_.appendChild(c);componentHandler.upgradeDom();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");
258
+ 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");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");
259
+ return d}createAssetCardFor_(a){return new shakaDemo.AssetCard(this.savedList_,a,!1,b=>{b.addButton("Play",()=>{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_);
260
+ 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_()}};
261
+ 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=
262
+ (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
263
  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=
317
- 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
- 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
- (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"),
320
- goog.asserts.assert(c instanceof HTMLAnchorElement,"Wrong element type!"),c.setAttribute("disabled",""),c.removeAttribute("href"),c.title="requires a newer browser");shaka.log&&("vv"in a?shaka.log.setLevel(shaka.log.Level.V2):"v"in a?shaka.log.setLevel(shaka.log.Level.V1):"debug"in a?shaka.log.setLevel(shaka.log.Level.DEBUG):"info"in a&&shaka.log.setLevel(shaka.log.Level.INFO))}makeVersionLinks_(){var a=this.getParams_();let b="uncompiled";"build"in a?b=a.build:"compiled"in a&&(b="compiled");for(const c of["compiled",
321
- "debug_compiled","uncompiled"])a=document.getElementById(c.split("_").join("-")+"-link"),goog.asserts.assert(a instanceof HTMLAnchorElement,"Wrong element type!"),b==c?(a.setAttribute("disabled",""),a.removeAttribute("href"),a.title="currently selected"):(a.removeAttribute("disabled"),a.addEventListener("click",()=>{const d=location.hash.substr(1).split(";").filter(e=>"compiled"!=e&&"build"!=e.split("=")[0]);d.push("build="+c);this.setNewHashSilent_(d.join(";"));location.reload();return!1}))}getParams_(){var a=
322
- location.search.substr(1);a=a?a.split(";"):[];var b=location.hash.substr(1);b=b?b.split(";"):[];b=a.concat(b);a={};for(const c of b)b=c.split("="),a[b[0]]=b.slice(1).join("=");return a}getValueFromGivenConfig_(a,b){for(;a;){const c=a.split(/\.(.+)/);if(3==c.length)a=c[1],b=b[c[0]];else return b[c[0]]}}getCurrentConfigValue(a){return this.getValueFromGivenConfig_(a,this.desiredConfig_)}resetConfiguration(a){this.configure(a,void 0)}configure(a,b){2==arguments.length&&"string"==typeof a&&(a=shaka.util.ConfigUtils.convertToConfigObject(a,
323
- b));shaka.util.PlayerConfiguration.mergeConfigObjects(this.desiredConfig_,a,this.defaultConfig_);this.player_.configure(a,b)}getConfiguration(){return this.desiredConfig_}async requestCertificate_(a,b){return(await b.request(shaka.net.NetworkingEngine.RequestType.APP,{uris:[a]}).promise).data}getIsVisualizerActive(){return this.visualizer_?this.visualizer_.active:!1}setIsVisualizerActive(a){if(this.visualizer_){const b=this.visualizer_.active;this.visualizer_.active=a;b!=a&&(a?this.visualizer_.start():
324
- this.visualizer_.stop())}}unload(){this.visualizer_&&this.visualizer_.stop();this.selectedAsset=null;const a=document.getElementById("video-bar");this.hideElement_(a);this.video_.poster=shakaDemo.Main.mainPoster_;document.fullscreenElement&&document.exitFullscreen();this.video_.webkitDisplayingFullscreen&&this.video_.webkitExitFullscreen();document.pictureInPictureElement&&document.exitPictureInPicture();window.documentPictureInPicture&&window.documentPictureInPicture.window&&window.documentPictureInPicture.window.close();
325
- 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
- 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
- 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);
332
- 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
- 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
- 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
- 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)}};
264
+ 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.');
265
+ 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=>
266
+ 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)}};
267
+ 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,
268
+ 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",
269
+ ()=>{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",
270
+ "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;
271
+ 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)-
272
+ 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");
273
+ 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;
274
+ 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_=
275
+ 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()?
276
+ 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)});
277
+ 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");
278
+ 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();
279
+ 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);
280
+ 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_=
281
+ 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;
282
+ 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= `"+
283
+ 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=
284
+ "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=>
285
+ "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;
286
+ 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_=
287
+ 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");
288
+ 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");
289
+ 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)==
290
+ 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,
291
+ 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&&
292
+ 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,
293
+ !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=>
294
+ 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["application/dash+xml"])return"Your browser does not support MPEG-DASH manifests.";if(a.features.includes(shakaAssets.Feature.HLS)&&
295
+ !this.support_.manifest["application/x-mpegurl"])return"Your browser does not support HLS manifests.";if(a.features.includes(shakaAssets.Feature.MSS)&&!this.support_.manifest["application/vnd.ms-sstr+xml"])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)&&
296
+ b.push("audio/aac");a.features.includes(shakaAssets.Feature.DOLBY_VISION_3D)&&b.push('video/mp4; codecs="dvh1.20.01"');return b.some(c=>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_=
297
+ a;a=[a].concat(navigator.languages);this.localization_.changeLocale(a)}getUILocale(){return this.uiLocale_}getLastAssetFromHash_(){const a=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,
298
+ a.license)}"certificate"in a&&b.addCertificateUri(a.certificate);return b}return null}readHash_(){const a=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()),
299
+ "videoRobustness"in a&&(b[c].videoRobustness=a.videoRobustness),"audioRobustness"in a&&(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()||
300
+ (c=document.getElementById("uncompiled-link"),goog.asserts.assert(c instanceof HTMLAnchorElement,"Wrong element type!"),c.setAttribute("disabled",""),c.removeAttribute("href"),c.title="requires a newer browser");shaka.log&&("vv"in a?shaka.log.setLevel(shaka.log.Level.V2):"v"in a?shaka.log.setLevel(shaka.log.Level.V1):"debug"in a?shaka.log.setLevel(shaka.log.Level.DEBUG):"info"in a&&shaka.log.setLevel(shaka.log.Level.INFO))}makeVersionLinks_(){var a=this.getParams_();let b="uncompiled";"build"in a?
301
+ b=a.build:"compiled"in a&&(b="compiled");for(const c of["compiled","debug_compiled","uncompiled"])a=document.getElementById(c.split("_").join("-")+"-link"),goog.asserts.assert(a instanceof HTMLAnchorElement,"Wrong element type!"),b==c?(a.setAttribute("disabled",""),a.removeAttribute("href"),a.title="currently selected"):(a.removeAttribute("disabled"),a.addEventListener("click",()=>{const d=location.hash.substr(1).split(";").filter(e=>"compiled"!=e&&"build"!=e.split("=")[0]);d.push("build="+c);this.setNewHashSilent_(d.join(";"));
302
+ location.reload();return!1}))}getParams_(){var a=location.search.substr(1);a=a?a.split(";"):[];var b=location.hash.substr(1);b=b?b.split(";"):[];b=a.concat(b);a={};for(const c of b)b=c.split("="),a[b[0]]=b.slice(1).join("=");return a}getValueFromGivenConfig_(a,b){for(;a;){const c=a.split(/\.(.+)/);if(3==c.length)a=c[1],b=b[c[0]];else return b[c[0]]}}getCurrentConfigValue(a){return this.getValueFromGivenConfig_(a,this.desiredConfig_)}resetConfiguration(a){this.configure(a,void 0)}configure(a,b){2==
303
+ arguments.length&&"string"==typeof a&&(a=shaka.util.ConfigUtils.convertToConfigObject(a,b));shaka.util.PlayerConfiguration.mergeConfigObjects(this.desiredConfig_,a,this.defaultConfig_);this.player_.configure(a,b)}getConfiguration(){return this.desiredConfig_}async requestCertificate_(a,b){return(await b.request(shaka.net.NetworkingEngine.RequestType.APP,{uris:[a]}).promise).data}getIsVisualizerActive(){return this.visualizer_?this.visualizer_.active:!1}setIsVisualizerActive(a){if(this.visualizer_){const b=
304
+ this.visualizer_.active;this.visualizer_.active=a;b!=a&&(a?this.visualizer_.start():this.visualizer_.stop())}}unload(){this.visualizer_&&this.visualizer_.stop();this.selectedAsset=null;const a=document.getElementById("video-bar");this.hideElement_(a);this.video_.poster=shakaDemo.Main.mainPoster_;document.fullscreenElement&&document.exitFullscreen();this.video_.webkitDisplayingFullscreen&&this.video_.webkitExitFullscreen();document.pictureInPictureElement&&document.exitPictureInPicture();window.documentPictureInPicture&&
305
+ window.documentPictureInPicture.window&&window.documentPictureInPicture.window.close();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(),
306
+ this.readHash_(),this.player_.configure(d));d=b?b.getConfiguration():this.player_.getConfiguration();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);
307
+ this.remakeHash()}showPlayer_(){const a=document.getElementById("video-bar");this.showElement_(a);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),
308
+ this.controls_.setEnabledNativeControls(!1),this.player_.setVideoContainer(this.container_));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()&&
309
+ (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);for(const d of a.extraThumbnail)this.player_.addThumbnailsTrack(d);for(const d of a.extraChapter)this.player_.addChaptersTrack(d.uri,d.language,d.mime);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);
310
+ 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,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=
311
+ [];if(this.player_){var b=this.player_.getConfiguration();shakaDemo.Utils.runThroughHashParams((f,g)=>{const h=this.getCurrentConfigValue(g);g=this.getValueFromGivenConfig_(g,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="+
312
+ f.audioRobustness);break}}}this.getCurrentConfigValue("abr.enabled")||a.push("noadaptation");a.push("uilang="+this.getUILocale());if(this.selectedAsset){c=shakaAssets.testAssets.includes(this.selectedAsset);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="+
313
+ d);break}}!c&&this.selectedAsset.certificateUri&&a.push("certificate="+this.selectedAsset.certificateUri)}d=document.getElementById("nav-button-container");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("-")+
314
+ "-link").hasAttribute("disabled")&&a.push("build="+f);this.noInput_&&a.push("noinput");this.nativeControlsEnabled_&&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,
315
+ "",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=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=
316
+ 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=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),
317
+ 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!=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,
318
+ 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=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)&&
319
+ 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 Element,"Wrong node type!"),this.hideElement_(g));d.classList.add("mdl-button--accent");
320
+ 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("-");const b=[];for(const d of["debug","uncompiled"])a.includes(d)&&(b.push(d),a=a.filter(e=>
321
+ 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==b||void 0==a.severity)b=shaka.util.Error.Severity.CRITICAL;const c=a.message||"Error code "+
322
+ 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?this.errorDisplayLink_.classList.remove("input-disabled"):this.errorDisplayLink_.classList.add("input-disabled"),
323
+ 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:"",individualizationServer:""}}};
324
+ 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
325
  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_);
326
+ 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",()=>
327
+ {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])&&
328
+ 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");
329
+ 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
330
  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
331
  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});
332
+ (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();
333
+ 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",
334
+ [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,
335
+ b.ULTRA_HIGH_DEFINITION,c,"Filters for assets with at least one ultra-high-definition video stream.");this.makeBooleanInput_(d,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,
336
+ b.SURROUND,c,"Filters for assets with at least one surround sound audio track.");this.makeBooleanInput_(d,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.");
337
+ this.makeBooleanInput_(d,b.CHAPTERS,c,"Filters for assets that have a chapters track.");this.makeBooleanInput_(d,b.LCEVC,c,"Filters for assets that have an LCEVC enhancement layer.");this.makeBooleanInput_(d,b.CONTENT_STEERING,c,"Filters for assets that use Content Steering.");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==
338
+ 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});
356
339
  //# sourceMappingURL=demo.compiled.debug.map