shaka-player 4.6.3 → 4.7.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 (608) hide show
  1. package/README.md +1 -0
  2. package/dist/controls.css +1 -1
  3. package/dist/controls.css.map +1 -1
  4. package/dist/deps.js +13 -9
  5. package/dist/locales.js +33 -33
  6. package/dist/shaka-player.compiled.d.ts +47 -4
  7. package/dist/shaka-player.compiled.debug.d.ts +47 -4
  8. package/dist/shaka-player.compiled.debug.externs.js +50 -2
  9. package/dist/shaka-player.compiled.debug.js +408 -376
  10. package/dist/shaka-player.compiled.debug.map +4 -4
  11. package/dist/shaka-player.compiled.externs.js +50 -2
  12. package/dist/shaka-player.compiled.js +1134 -1118
  13. package/dist/shaka-player.compiled.map +4 -4
  14. package/dist/shaka-player.ui.d.ts +69 -5
  15. package/dist/shaka-player.ui.debug.d.ts +69 -5
  16. package/dist/shaka-player.ui.debug.externs.js +82 -2
  17. package/dist/shaka-player.ui.debug.js +457 -420
  18. package/dist/shaka-player.ui.debug.map +4 -4
  19. package/dist/shaka-player.ui.externs.js +82 -2
  20. package/dist/shaka-player.ui.js +1305 -1289
  21. package/dist/shaka-player.ui.map +4 -4
  22. package/externs/mediasession.js +7 -0
  23. package/externs/shaka/abr_manager.js +8 -0
  24. package/externs/shaka/manifest.js +3 -3
  25. package/externs/shaka/player.js +59 -4
  26. package/lib/abr/simple_abr_manager.js +41 -15
  27. package/lib/ads/client_side_ad_manager.js +4 -0
  28. package/lib/ads/media_tailor_ad_manager.js +5 -0
  29. package/lib/ads/server_side_ad_manager.js +4 -0
  30. package/lib/cea/cea708_service.js +1 -1
  31. package/lib/cea/cea708_window.js +95 -7
  32. package/lib/dash/dash_parser.js +55 -11
  33. package/lib/hls/hls_parser.js +17 -5
  34. package/lib/media/adaptation_set_criteria.js +76 -10
  35. package/lib/media/drm_engine.js +0 -3
  36. package/lib/media/media_source_engine.js +42 -18
  37. package/lib/media/segment_reference.js +12 -0
  38. package/lib/media/streaming_engine.js +58 -5
  39. package/lib/media/video_wrapper.js +4 -3
  40. package/lib/player.js +95 -11
  41. package/lib/text/simple_text_displayer.js +8 -7
  42. package/lib/text/text_utils.js +39 -13
  43. package/lib/text/ui_text_displayer.js +20 -11
  44. package/lib/text/web_vtt_generator.js +1 -1
  45. package/lib/util/cmsd_manager.js +269 -0
  46. package/lib/util/content_steering_manager.js +5 -1
  47. package/lib/util/mime_utils.js +6 -2
  48. package/lib/util/periods.js +108 -39
  49. package/lib/util/player_configuration.js +19 -5
  50. package/lib/util/stream_utils.js +82 -13
  51. package/package.json +1 -1
  52. package/ui/audio_language_selection.js +3 -0
  53. package/ui/controls.js +60 -0
  54. package/ui/externs/ui.js +12 -1
  55. package/ui/hidden_fast_forward_button.js +32 -0
  56. package/ui/hidden_rewind_button.js +32 -0
  57. package/ui/hidden_seek_button.js +121 -0
  58. package/ui/less/buttons.less +50 -0
  59. package/ui/less/containers.less +18 -0
  60. package/ui/resolution_selection.js +2 -0
  61. package/ui/ui.js +2 -0
  62. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -75
  63. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -26
  64. package/.github/ISSUE_TEMPLATE/question.md +0 -26
  65. package/.github/config.yml +0 -1
  66. package/.github/workflows/appspot.yaml +0 -39
  67. package/.github/workflows/build-and-test.yaml +0 -222
  68. package/.github/workflows/compute-incremental-coverage.py +0 -265
  69. package/.github/workflows/custom-actions/prep-for-appspot/action.yaml +0 -56
  70. package/.github/workflows/custom-actions/set-commit-status/action.yaml +0 -37
  71. package/.github/workflows/deflake.yaml +0 -31
  72. package/.github/workflows/demo-version-index.yaml +0 -43
  73. package/.github/workflows/nightly-demo.yaml +0 -42
  74. package/.github/workflows/release-please.yaml +0 -193
  75. package/.github/workflows/report-incremental-coverage.yaml +0 -39
  76. package/.github/workflows/safari-homedir-launcher.sh +0 -18
  77. package/.github/workflows/selenium-lab-tests.yaml +0 -370
  78. package/.github/workflows/shaka-bot-commands/command-help.sh +0 -27
  79. package/.github/workflows/shaka-bot-commands/command-test.sh +0 -56
  80. package/.github/workflows/shaka-bot-commands/lib.sh +0 -83
  81. package/.github/workflows/shaka-bot-commands/main.sh +0 -51
  82. package/.github/workflows/sync-labels.yaml +0 -33
  83. package/.github/workflows/talk-to-shaka-bot.yaml +0 -29
  84. package/.github/workflows/update-issues.yaml +0 -31
  85. package/.github/workflows/update-screenshots.yaml +0 -142
  86. package/.github/workflows/validate-pr-title.yaml +0 -27
  87. package/CHANGELOG.md +0 -5764
  88. package/CODE_OF_CONDUCT.md +0 -93
  89. package/CONTRIBUTING.md +0 -76
  90. package/demo/TengwarTelcontar.woff2 +0 -0
  91. package/demo/app_logo_144.png +0 -0
  92. package/demo/app_logo_192.png +0 -0
  93. package/demo/app_logo_256.png +0 -0
  94. package/demo/app_logo_384.png +0 -0
  95. package/demo/app_logo_512.png +0 -0
  96. package/demo/app_manifest.json +0 -29
  97. package/demo/asset_card.js +0 -410
  98. package/demo/autoTemplate.txt +0 -61
  99. package/demo/cast_receiver/idle1.jpg +0 -0
  100. package/demo/cast_receiver/idle2.jpg +0 -0
  101. package/demo/cast_receiver/idle3.jpg +0 -0
  102. package/demo/cast_receiver/index.html +0 -75
  103. package/demo/cast_receiver/receiver_app.css +0 -111
  104. package/demo/cast_receiver/receiver_app.js +0 -158
  105. package/demo/close_button.js +0 -60
  106. package/demo/common/asset.js +0 -511
  107. package/demo/common/assets.js +0 -1635
  108. package/demo/config.js +0 -859
  109. package/demo/custom.js +0 -907
  110. package/demo/customWarning.txt +0 -8
  111. package/demo/demo.less +0 -591
  112. package/demo/demo_uncompiled.js +0 -11
  113. package/demo/demo_utils.js +0 -113
  114. package/demo/favicon.ico +0 -0
  115. package/demo/front.js +0 -156
  116. package/demo/icons/README.md +0 -4
  117. package/demo/icons/baseline-audiotrack-24px.svg +0 -1
  118. package/demo/icons/baseline-closed_caption-24px.svg +0 -1
  119. package/demo/icons/baseline-fast_forward-24px.svg +0 -1
  120. package/demo/icons/baseline-language-24px.svg +0 -1
  121. package/demo/icons/baseline-live_tv-24px.svg +0 -1
  122. package/demo/icons/baseline-subtitles-24px.svg +0 -1
  123. package/demo/icons/baseline-surround_sound-24px.svg +0 -1
  124. package/demo/icons/custom_ad.svg +0 -1
  125. package/demo/icons/custom_box_with_text.svg +0 -1
  126. package/demo/icons/custom_clear_key.svg +0 -1
  127. package/demo/icons/custom_high_definition.svg +0 -1
  128. package/demo/icons/custom_playready.svg +0 -1
  129. package/demo/icons/custom_ultra_high_definition.svg +0 -1
  130. package/demo/icons/custom_widevine.svg +0 -1
  131. package/demo/index.html +0 -173
  132. package/demo/input.js +0 -270
  133. package/demo/input_container.js +0 -218
  134. package/demo/load.js +0 -156
  135. package/demo/main.js +0 -1854
  136. package/demo/search.js +0 -452
  137. package/demo/service_worker.js +0 -355
  138. package/demo/shaka_logo_trans.png +0 -0
  139. package/demo/tooltip.js +0 -29
  140. package/demo/visualizer.js +0 -335
  141. package/demo/visualizer_button.js +0 -84
  142. package/dist/demo.compiled.debug.js +0 -340
  143. package/dist/demo.compiled.debug.map +0 -8
  144. package/dist/demo.compiled.js +0 -340
  145. package/dist/demo.compiled.map +0 -8
  146. package/dist/demo.css +0 -6
  147. package/dist/demo.css.map +0 -1
  148. package/dist/receiver.compiled.debug.js +0 -187
  149. package/dist/receiver.compiled.debug.map +0 -8
  150. package/dist/receiver.compiled.js +0 -187
  151. package/dist/receiver.compiled.map +0 -8
  152. package/docs/announcement-list-join-group.png +0 -0
  153. package/docs/api-mainpage.md +0 -28
  154. package/docs/design/REDESIGN.md +0 -283
  155. package/docs/design/architecture.md +0 -13
  156. package/docs/design/bg-fetch-after.gv +0 -29
  157. package/docs/design/bg-fetch-after.gv.png +0 -0
  158. package/docs/design/bg-fetch-before.gv +0 -18
  159. package/docs/design/bg-fetch-before.gv.png +0 -0
  160. package/docs/design/bg-fetch.md +0 -134
  161. package/docs/design/cast.gv +0 -35
  162. package/docs/design/cast.gv.png +0 -0
  163. package/docs/design/chromecast.md +0 -151
  164. package/docs/design/codec_preferences.md +0 -158
  165. package/docs/design/dash-audio-channels.md +0 -123
  166. package/docs/design/dash-manifests.md +0 -248
  167. package/docs/design/dash-timeline.svg +0 -4
  168. package/docs/design/dataflow.gv +0 -66
  169. package/docs/design/dataflow.gv.png +0 -0
  170. package/docs/design/export.md +0 -70
  171. package/docs/design/fuzzy-locale-matching.md +0 -40
  172. package/docs/design/gap-jumping.md +0 -151
  173. package/docs/design/lcevc-architecture.png +0 -0
  174. package/docs/design/lcevc-demo.png +0 -0
  175. package/docs/design/lcevc-integration.md +0 -72
  176. package/docs/design/locale_compatibility.svg +0 -1
  177. package/docs/design/locales_tree.svg +0 -1
  178. package/docs/design/localization-design-principles.md +0 -158
  179. package/docs/design/newdemo.gv +0 -83
  180. package/docs/design/newdemo.gv.png +0 -0
  181. package/docs/design/offline.gv +0 -43
  182. package/docs/design/offline.gv.png +0 -0
  183. package/docs/design/offline.md +0 -153
  184. package/docs/design/ownership.gv +0 -76
  185. package/docs/design/ownership.gv.png +0 -0
  186. package/docs/design/preload.md +0 -299
  187. package/docs/design/preload.png +0 -0
  188. package/docs/design/talking-about-languages.md +0 -46
  189. package/docs/design/timeline.svg +0 -152
  190. package/docs/design/ui.md +0 -31
  191. package/docs/design/ui_player_relationships.svg +0 -1
  192. package/docs/jsdoc-plugin.js +0 -74
  193. package/docs/jsdoc-template/README.md +0 -1
  194. package/docs/jsdoc-template/publish.js +0 -879
  195. package/docs/jsdoc-template/static/fonts/OpenSans-Bold-webfont.eot +0 -0
  196. package/docs/jsdoc-template/static/fonts/OpenSans-Bold-webfont.svg +0 -1830
  197. package/docs/jsdoc-template/static/fonts/OpenSans-Bold-webfont.woff +0 -0
  198. package/docs/jsdoc-template/static/fonts/OpenSans-BoldItalic-webfont.eot +0 -0
  199. package/docs/jsdoc-template/static/fonts/OpenSans-BoldItalic-webfont.svg +0 -1830
  200. package/docs/jsdoc-template/static/fonts/OpenSans-BoldItalic-webfont.woff +0 -0
  201. package/docs/jsdoc-template/static/fonts/OpenSans-Italic-webfont.eot +0 -0
  202. package/docs/jsdoc-template/static/fonts/OpenSans-Italic-webfont.svg +0 -1830
  203. package/docs/jsdoc-template/static/fonts/OpenSans-Italic-webfont.woff +0 -0
  204. package/docs/jsdoc-template/static/fonts/OpenSans-Light-webfont.eot +0 -0
  205. package/docs/jsdoc-template/static/fonts/OpenSans-Light-webfont.svg +0 -1831
  206. package/docs/jsdoc-template/static/fonts/OpenSans-Light-webfont.woff +0 -0
  207. package/docs/jsdoc-template/static/fonts/OpenSans-LightItalic-webfont.eot +0 -0
  208. package/docs/jsdoc-template/static/fonts/OpenSans-LightItalic-webfont.svg +0 -1835
  209. package/docs/jsdoc-template/static/fonts/OpenSans-LightItalic-webfont.woff +0 -0
  210. package/docs/jsdoc-template/static/fonts/OpenSans-Regular-webfont.eot +0 -0
  211. package/docs/jsdoc-template/static/fonts/OpenSans-Regular-webfont.svg +0 -1831
  212. package/docs/jsdoc-template/static/fonts/OpenSans-Regular-webfont.woff +0 -0
  213. package/docs/jsdoc-template/static/scripts/linenumber.js +0 -44
  214. package/docs/jsdoc-template/static/scripts/show-widget.js +0 -55
  215. package/docs/jsdoc-template/static/styles/jsdoc-default.css +0 -438
  216. package/docs/jsdoc-template/tmpl/augments.tmpl +0 -10
  217. package/docs/jsdoc-template/tmpl/container.tmpl +0 -205
  218. package/docs/jsdoc-template/tmpl/details.tmpl +0 -152
  219. package/docs/jsdoc-template/tmpl/example.tmpl +0 -2
  220. package/docs/jsdoc-template/tmpl/examples.tmpl +0 -13
  221. package/docs/jsdoc-template/tmpl/exceptions.tmpl +0 -32
  222. package/docs/jsdoc-template/tmpl/layout.tmpl +0 -50
  223. package/docs/jsdoc-template/tmpl/mainpage.tmpl +0 -14
  224. package/docs/jsdoc-template/tmpl/members.tmpl +0 -47
  225. package/docs/jsdoc-template/tmpl/method.tmpl +0 -140
  226. package/docs/jsdoc-template/tmpl/modifies.tmpl +0 -14
  227. package/docs/jsdoc-template/tmpl/params.tmpl +0 -131
  228. package/docs/jsdoc-template/tmpl/properties.tmpl +0 -125
  229. package/docs/jsdoc-template/tmpl/returns.tmpl +0 -19
  230. package/docs/jsdoc-template/tmpl/source.tmpl +0 -8
  231. package/docs/jsdoc-template/tmpl/tutorial.tmpl +0 -21
  232. package/docs/jsdoc-template/tmpl/type.tmpl +0 -7
  233. package/docs/jsdoc.conf.json +0 -38
  234. package/docs/shaka-player-logo.png +0 -0
  235. package/docs/style.md +0 -174
  236. package/docs/tutorials/a11y.md +0 -64
  237. package/docs/tutorials/ad_monetization.md +0 -292
  238. package/docs/tutorials/application-level-redirects.md +0 -94
  239. package/docs/tutorials/architecture.md +0 -32
  240. package/docs/tutorials/basic-usage.md +0 -89
  241. package/docs/tutorials/blob-url.md +0 -15
  242. package/docs/tutorials/config.md +0 -148
  243. package/docs/tutorials/debugging.md +0 -189
  244. package/docs/tutorials/drm-config.md +0 -274
  245. package/docs/tutorials/errors.md +0 -95
  246. package/docs/tutorials/fairplay.md +0 -242
  247. package/docs/tutorials/faq.md +0 -252
  248. package/docs/tutorials/index.json +0 -29
  249. package/docs/tutorials/lcevc.md +0 -118
  250. package/docs/tutorials/license-server-auth.md +0 -248
  251. package/docs/tutorials/license-wrapping.md +0 -168
  252. package/docs/tutorials/manifest-parser.md +0 -365
  253. package/docs/tutorials/network-and-buffering-config.md +0 -119
  254. package/docs/tutorials/offline.md +0 -683
  255. package/docs/tutorials/plugins.md +0 -184
  256. package/docs/tutorials/selenium-grid-config.md +0 -174
  257. package/docs/tutorials/service-worker.md +0 -106
  258. package/docs/tutorials/ui-customization.md +0 -288
  259. package/docs/tutorials/ui.md +0 -230
  260. package/docs/tutorials/upgrade-manifest.md +0 -281
  261. package/docs/tutorials/upgrade.md +0 -104
  262. package/docs/tutorials/welcome.md +0 -108
  263. package/docs/tutorials/widevine-service-certs.md +0 -45
  264. package/karma.conf.js +0 -879
  265. package/maintained-branches.md +0 -15
  266. package/roadmap.md +0 -186
  267. package/test/abr/simple_abr_manager_unit.js +0 -398
  268. package/test/ads/ad_manager_unit.js +0 -260
  269. package/test/assumptions/uint8_array_unit.js +0 -22
  270. package/test/cast/cast_proxy_unit.js +0 -736
  271. package/test/cast/cast_receiver_integration.js +0 -488
  272. package/test/cast/cast_receiver_unit.js +0 -1183
  273. package/test/cast/cast_sender_unit.js +0 -973
  274. package/test/cast/cast_utils_unit.js +0 -311
  275. package/test/cea/cea608_memory_unit.js +0 -411
  276. package/test/cea/cea708_service_unit.js +0 -674
  277. package/test/cea/cea708_window_unit.js +0 -373
  278. package/test/cea/cea_decoder_unit.js +0 -615
  279. package/test/cea/dtvcc_packet_builder_unit.js +0 -158
  280. package/test/cea/dtvcc_packet_unit.js +0 -60
  281. package/test/cea/mp4_cea_parser_unit.js +0 -127
  282. package/test/codec_switching/codec_switching_integration.js +0 -182
  283. package/test/dash/dash_parser_content_protection_unit.js +0 -998
  284. package/test/dash/dash_parser_integration.js +0 -74
  285. package/test/dash/dash_parser_live_unit.js +0 -1542
  286. package/test/dash/dash_parser_manifest_unit.js +0 -3121
  287. package/test/dash/dash_parser_segment_base_unit.js +0 -421
  288. package/test/dash/dash_parser_segment_list_unit.js +0 -380
  289. package/test/dash/dash_parser_segment_template_unit.js +0 -910
  290. package/test/dash/mpd_utils_unit.js +0 -794
  291. package/test/demo/demo_unit.js +0 -108
  292. package/test/deprecate/enforcer_unit.js +0 -74
  293. package/test/deprecate/version_unit.js +0 -57
  294. package/test/hls/hls_live_unit.js +0 -1330
  295. package/test/hls/hls_parser_unit.js +0 -5276
  296. package/test/hls/manifest_text_parser_unit.js +0 -545
  297. package/test/media/adaptation_set_criteria_unit.js +0 -806
  298. package/test/media/adaptation_set_unit.js +0 -229
  299. package/test/media/buffering_observer_unit.js +0 -143
  300. package/test/media/closed_caption_parser_unit.js +0 -18
  301. package/test/media/content_workarounds_unit.js +0 -43
  302. package/test/media/drm_engine_integration.js +0 -356
  303. package/test/media/drm_engine_unit.js +0 -2778
  304. package/test/media/media_source_engine_integration.js +0 -691
  305. package/test/media/media_source_engine_unit.js +0 -1512
  306. package/test/media/mp4_segment_index_parser_unit.js +0 -80
  307. package/test/media/play_rate_controller_unit.js +0 -69
  308. package/test/media/playhead_unit.js +0 -1394
  309. package/test/media/presentation_timeline_unit.js +0 -477
  310. package/test/media/quality_observer_unit.js +0 -138
  311. package/test/media/region_observer_unit.js +0 -374
  312. package/test/media/region_timeline_unit.js +0 -139
  313. package/test/media/segment_index_unit.js +0 -1080
  314. package/test/media/segment_prefetch_unit.js +0 -243
  315. package/test/media/segment_reference_unit.js +0 -63
  316. package/test/media/stall_detector_unit.js +0 -184
  317. package/test/media/streaming_engine_integration.js +0 -632
  318. package/test/media/streaming_engine_unit.js +0 -4211
  319. package/test/media/time_ranges_utils_unit.js +0 -123
  320. package/test/media/webm_segment_index_parser_unit.js +0 -90
  321. package/test/mss/mss_parser_content_protection_unit.js +0 -49
  322. package/test/mss/mss_parser_unit.js +0 -474
  323. package/test/mss/mss_player_integration.js +0 -124
  324. package/test/net/data_uri_plugin_unit.js +0 -105
  325. package/test/net/http_plugin_unit.js +0 -439
  326. package/test/net/networking_engine_unit.js +0 -1236
  327. package/test/net/networking_utils_unit.js +0 -37
  328. package/test/offline/download_progress_estimator_unit.js +0 -90
  329. package/test/offline/indexeddb_storage_unit.js +0 -192
  330. package/test/offline/manifest_convert_unit.js +0 -622
  331. package/test/offline/offline_integration.js +0 -168
  332. package/test/offline/offline_manifest_parser_unit.js +0 -231
  333. package/test/offline/offline_scheme_unit.js +0 -154
  334. package/test/offline/offline_uri_unit.js +0 -59
  335. package/test/offline/storage_compatibility_unit.js +0 -344
  336. package/test/offline/storage_integration.js +0 -1858
  337. package/test/player_external.js +0 -237
  338. package/test/player_integration.js +0 -1371
  339. package/test/player_load_graph_integration.js +0 -865
  340. package/test/player_src_equals_external.js +0 -154
  341. package/test/player_src_equals_integration.js +0 -527
  342. package/test/player_unit.js +0 -4434
  343. package/test/polyfill/media_capabilities_unit.js +0 -277
  344. package/test/polyfill/patchedmediakeys_apple_unit.js +0 -130
  345. package/test/test/assets/3675/chunk-stream0-00001.m4s +0 -0
  346. package/test/test/assets/3675/chunk-stream0-00002.m4s +0 -0
  347. package/test/test/assets/3675/chunk-stream0-00003.m4s +0 -0
  348. package/test/test/assets/3675/chunk-stream0-00004.m4s +0 -0
  349. package/test/test/assets/3675/chunk-stream0-00005.m4s +0 -0
  350. package/test/test/assets/3675/chunk-stream0-00006.m4s +0 -0
  351. package/test/test/assets/3675/chunk-stream0-00007.m4s +0 -0
  352. package/test/test/assets/3675/dash_0.mpd +0 -30
  353. package/test/test/assets/3675/dash_1.mpd +0 -30
  354. package/test/test/assets/3675/dash_2.mpd +0 -30
  355. package/test/test/assets/3675/dash_3.mpd +0 -30
  356. package/test/test/assets/3675/dash_4.mpd +0 -30
  357. package/test/test/assets/3675/dash_5.mpd +0 -26
  358. package/test/test/assets/3675/init-stream0.m4s +0 -0
  359. package/test/test/assets/audio-xhe-aac.mp4 +0 -0
  360. package/test/test/assets/audio.ts +0 -0
  361. package/test/test/assets/captions-test.ts +0 -0
  362. package/test/test/assets/cea-init.mp4 +0 -0
  363. package/test/test/assets/cea-segment.mp4 +0 -0
  364. package/test/test/assets/chapters.srt +0 -11
  365. package/test/test/assets/chapters.vtt +0 -10
  366. package/test/test/assets/chapters2.vtt +0 -10
  367. package/test/test/assets/dash-aes-128/Fragments(video=0,format=mpd-time-csf) +0 -0
  368. package/test/test/assets/dash-aes-128/Fragments(video=20000000,format=mpd-time-csf) +0 -0
  369. package/test/test/assets/dash-aes-128/Fragments(video=40000000,format=mpd-time-csf) +0 -0
  370. package/test/test/assets/dash-aes-128/Fragments(video=60000000,format=mpd-time-csf) +0 -0
  371. package/test/test/assets/dash-aes-128/Fragments(video=i,format=mpd-time-csf) +0 -0
  372. package/test/test/assets/dash-aes-128/dash.mpd +0 -18
  373. package/test/test/assets/dash-aes-128/license +0 -1
  374. package/test/test/assets/dash-multi-codec/audio_en_2c_128k_aac.mp4 +0 -0
  375. package/test/test/assets/dash-multi-codec/audio_es_2c_64k_opus.webm +0 -0
  376. package/test/test/assets/dash-multi-codec/dash.mpd +0 -32
  377. package/test/test/assets/dash-multi-codec/video_144p_108k_h264.mp4 +0 -0
  378. package/test/test/assets/db-dump-v1.json +0 -1
  379. package/test/test/assets/db-dump-v2-broken.json +0 -1
  380. package/test/test/assets/db-dump-v2-clean.json +0 -1
  381. package/test/test/assets/db-dump-v3.json +0 -1
  382. package/test/test/assets/db-dump-v4-broken.json +0 -1
  383. package/test/test/assets/db-dump-v5.json +0 -1
  384. package/test/test/assets/empty_caption_video_init.mp4 +0 -0
  385. package/test/test/assets/empty_caption_video_segment.mp4 +0 -0
  386. package/test/test/assets/encrypted-sintel-audio-init.mp4 +0 -0
  387. package/test/test/assets/encrypted-sintel-audio-segment.mp4 +0 -0
  388. package/test/test/assets/encrypted-sintel-video-init.mp4 +0 -0
  389. package/test/test/assets/encrypted-sintel-video-segment.mp4 +0 -0
  390. package/test/test/assets/green-pixel.mp4 +0 -0
  391. package/test/test/assets/green-pixel.txt +0 -15
  392. package/test/test/assets/h265-cea-init.mp4 +0 -0
  393. package/test/test/assets/h265-cea-segment.mp4 +0 -0
  394. package/test/test/assets/hls-raw-aac/fileSequence0.aac +0 -0
  395. package/test/test/assets/hls-raw-aac/fileSequence1.aac +0 -0
  396. package/test/test/assets/hls-raw-aac/fileSequence2.aac +0 -0
  397. package/test/test/assets/hls-raw-aac/fileSequence3.aac +0 -0
  398. package/test/test/assets/hls-raw-aac/manifest.m3u8 +0 -4
  399. package/test/test/assets/hls-raw-aac/stream.m4a.m3u8 +0 -14
  400. package/test/test/assets/hls-raw-ac3/fileSequence0.ac3 +0 -0
  401. package/test/test/assets/hls-raw-ac3/fileSequence1.ac3 +0 -0
  402. package/test/test/assets/hls-raw-ac3/fileSequence2.ac3 +0 -0
  403. package/test/test/assets/hls-raw-ac3/fileSequence3.ac3 +0 -0
  404. package/test/test/assets/hls-raw-ac3/fileSequence4.ac3 +0 -0
  405. package/test/test/assets/hls-raw-ac3/fileSequence5.ac3 +0 -0
  406. package/test/test/assets/hls-raw-ac3/fileSequence6.ac3 +0 -0
  407. package/test/test/assets/hls-raw-ac3/fileSequence7.ac3 +0 -0
  408. package/test/test/assets/hls-raw-ac3/prog_index.m3u8 +0 -31
  409. package/test/test/assets/hls-raw-ec3/fileSequence0.ec3 +0 -0
  410. package/test/test/assets/hls-raw-ec3/fileSequence1.ec3 +0 -0
  411. package/test/test/assets/hls-raw-ec3/fileSequence2.ec3 +0 -0
  412. package/test/test/assets/hls-raw-ec3/fileSequence3.ec3 +0 -0
  413. package/test/test/assets/hls-raw-ec3/fileSequence4.ec3 +0 -0
  414. package/test/test/assets/hls-raw-ec3/fileSequence5.ec3 +0 -0
  415. package/test/test/assets/hls-raw-ec3/fileSequence6.ec3 +0 -0
  416. package/test/test/assets/hls-raw-ec3/fileSequence7.ec3 +0 -0
  417. package/test/test/assets/hls-raw-ec3/prog_index.m3u8 +0 -31
  418. package/test/test/assets/hls-raw-mp3/chunklist_w905519204.m3u8 +0 -13
  419. package/test/test/assets/hls-raw-mp3/media_w905519204_0.mp3 +0 -0
  420. package/test/test/assets/hls-raw-mp3/media_w905519204_1.mp3 +0 -0
  421. package/test/test/assets/hls-raw-mp3/media_w905519204_2.mp3 +0 -0
  422. package/test/test/assets/hls-raw-mp3/media_w905519204_3.mp3 +0 -0
  423. package/test/test/assets/hls-raw-mp3/playlist.m3u8 +0 -4
  424. package/test/test/assets/hls-ts-aac/playlist.m3u8 +0 -23
  425. package/test/test/assets/hls-ts-aac/segment_0.ts +0 -0
  426. package/test/test/assets/hls-ts-aac/segment_1.ts +0 -0
  427. package/test/test/assets/hls-ts-aac/segment_2.ts +0 -0
  428. package/test/test/assets/hls-ts-aac/segment_3.ts +0 -0
  429. package/test/test/assets/hls-ts-aac/segment_4.ts +0 -0
  430. package/test/test/assets/hls-ts-aac/segment_5.ts +0 -0
  431. package/test/test/assets/hls-ts-aac/segment_6.ts +0 -0
  432. package/test/test/assets/hls-ts-aac/segment_7.ts +0 -0
  433. package/test/test/assets/hls-ts-ac3/ChID_voices_6ch_640kbps_dd_sub_0000.ts +0 -0
  434. package/test/test/assets/hls-ts-ac3/ChID_voices_6ch_640kbps_dd_sub_0001.ts +0 -0
  435. package/test/test/assets/hls-ts-ac3/ChID_voices_6ch_640kbps_dd_sub_0002.ts +0 -0
  436. package/test/test/assets/hls-ts-ac3/ChID_voices_6ch_640kbps_dd_sub_0003.ts +0 -0
  437. package/test/test/assets/hls-ts-ac3/ChID_voices_6ch_640kbps_dd_sub_0004.ts +0 -0
  438. package/test/test/assets/hls-ts-ac3/ChID_voices_6ch_640kbps_dd_sub_0005.ts +0 -0
  439. package/test/test/assets/hls-ts-ac3/prog_index.m3u8 +0 -19
  440. package/test/test/assets/hls-ts-ec3/ChID_voices_6ch_256kbps_ddp_sub_0000.ts +0 -0
  441. package/test/test/assets/hls-ts-ec3/ChID_voices_6ch_256kbps_ddp_sub_0001.ts +0 -0
  442. package/test/test/assets/hls-ts-ec3/ChID_voices_6ch_256kbps_ddp_sub_0002.ts +0 -0
  443. package/test/test/assets/hls-ts-ec3/ChID_voices_6ch_256kbps_ddp_sub_0003.ts +0 -0
  444. package/test/test/assets/hls-ts-ec3/ChID_voices_6ch_256kbps_ddp_sub_0004.ts +0 -0
  445. package/test/test/assets/hls-ts-ec3/ChID_voices_6ch_256kbps_ddp_sub_0005.ts +0 -0
  446. package/test/test/assets/hls-ts-ec3/prog_index.m3u8 +0 -19
  447. package/test/test/assets/hls-ts-h264/fileSequence0.ts +0 -0
  448. package/test/test/assets/hls-ts-h264/fileSequence1.ts +0 -0
  449. package/test/test/assets/hls-ts-h264/fileSequence2.ts +0 -0
  450. package/test/test/assets/hls-ts-h264/fileSequence3.ts +0 -0
  451. package/test/test/assets/hls-ts-h264/fileSequence4.ts +0 -0
  452. package/test/test/assets/hls-ts-h264/fileSequence5.ts +0 -0
  453. package/test/test/assets/hls-ts-h264/prog_index.m3u8 +0 -25
  454. package/test/test/assets/hls-ts-h265/0.ts +0 -0
  455. package/test/test/assets/hls-ts-h265/hevc.m3u8 +0 -6
  456. package/test/test/assets/hls-ts-h265/index.m3u8 +0 -7
  457. package/test/test/assets/hls-ts-mp3/manifest.m3u8 +0 -13
  458. package/test/test/assets/hls-ts-mp3/media_w239891843_0.ts +0 -0
  459. package/test/test/assets/hls-ts-mp3/media_w239891843_1.ts +0 -0
  460. package/test/test/assets/hls-ts-mp3/media_w239891843_2.ts +0 -0
  461. package/test/test/assets/hls-ts-mp3/media_w239891843_3.ts +0 -0
  462. package/test/test/assets/hls-ts-muxed-aac-h264/chunk.m3u8 +0 -17
  463. package/test/test/assets/hls-ts-muxed-aac-h264/n_0_0_0.ts +0 -0
  464. package/test/test/assets/hls-ts-muxed-aac-h264/n_1_0_0.ts +0 -0
  465. package/test/test/assets/hls-ts-muxed-aac-h264/n_2_0_0.ts +0 -0
  466. package/test/test/assets/hls-ts-muxed-aac-h264/n_3_0_0.ts +0 -0
  467. package/test/test/assets/hls-ts-muxed-aac-h264/n_4_0_0.ts +0 -0
  468. package/test/test/assets/hls-ts-muxed-aac-h264/n_5_0_0.ts +0 -0
  469. package/test/test/assets/hls-ts-muxed-aac-h264/playlist.m3u8 +0 -4
  470. package/test/test/assets/hls-ts-muxed-aac-h265/0.ts +0 -0
  471. package/test/test/assets/hls-ts-muxed-aac-h265/1.ts +0 -0
  472. package/test/test/assets/hls-ts-muxed-aac-h265/media.m3u8 +0 -9
  473. package/test/test/assets/hls-ts-muxed-ac3-h264/media.m3u8 +0 -24
  474. package/test/test/assets/hls-ts-muxed-ac3-h264/s_00000.ts +0 -0
  475. package/test/test/assets/hls-ts-muxed-ac3-h264/s_00001.ts +0 -0
  476. package/test/test/assets/hls-ts-muxed-ac3-h264/s_00002.ts +0 -0
  477. package/test/test/assets/hls-ts-muxed-ac3-h264/s_00003.ts +0 -0
  478. package/test/test/assets/hls-ts-muxed-ac3-h264/s_00004.ts +0 -0
  479. package/test/test/assets/hls-ts-muxed-ac3-h264/s_00005.ts +0 -0
  480. package/test/test/assets/hls-ts-muxed-ec3-h264/ChID_voices_1280x720p_25fps_h264_6ch_256kbps_ddp_sub_0000.ts +0 -0
  481. package/test/test/assets/hls-ts-muxed-ec3-h264/ChID_voices_1280x720p_25fps_h264_6ch_256kbps_ddp_sub_0001.ts +0 -0
  482. package/test/test/assets/hls-ts-muxed-ec3-h264/ChID_voices_1280x720p_25fps_h264_6ch_256kbps_ddp_sub_0002.ts +0 -0
  483. package/test/test/assets/hls-ts-muxed-ec3-h264/ChID_voices_1280x720p_25fps_h264_6ch_256kbps_ddp_sub_0003.ts +0 -0
  484. package/test/test/assets/hls-ts-muxed-ec3-h264/prog_index.m3u8 +0 -14
  485. package/test/test/assets/hls-ts-muxed-mp3-h264/index.m3u8 +0 -23
  486. package/test/test/assets/hls-ts-muxed-mp3-h264/seg-1-v1-a1.ts +0 -0
  487. package/test/test/assets/hls-ts-muxed-mp3-h264/seg-2-v1-a1.ts +0 -0
  488. package/test/test/assets/hls-ts-muxed-mp3-h264/seg-3-v1-a1.ts +0 -0
  489. package/test/test/assets/hls-ts-muxed-mp3-h264/seg-4-v1-a1.ts +0 -0
  490. package/test/test/assets/hls-ts-muxed-mp3-h264/seg-5-v1-a1.ts +0 -0
  491. package/test/test/assets/hls-ts-muxed-mp3-h264/seg-6-v1-a1.ts +0 -0
  492. package/test/test/assets/hls-ts-muxed-mp3-h264/seg-7-v1-a1.ts +0 -0
  493. package/test/test/assets/hls-ts-muxed-mp3-h264/seg-8-v1-a1.ts +0 -0
  494. package/test/test/assets/id3-metadata.aac +0 -0
  495. package/test/test/assets/id3-metadata.ts +0 -0
  496. package/test/test/assets/index-segment.mp4 +0 -0
  497. package/test/test/assets/index-segment.webm +0 -0
  498. package/test/test/assets/init-segment.webm +0 -0
  499. package/test/test/assets/large_file.mpd +0 -4930
  500. package/test/test/assets/multidrm-audio-init.mp4 +0 -0
  501. package/test/test/assets/multidrm-audio-segment.mp4 +0 -0
  502. package/test/test/assets/multidrm-video-init.mp4 +0 -0
  503. package/test/test/assets/multidrm-video-segment.mp4 +0 -0
  504. package/test/test/assets/multiple-trun-init.mp4 +0 -0
  505. package/test/test/assets/multiple-trun-segment.mp4 +0 -0
  506. package/test/test/assets/sintel-audio-init.mp4 +0 -0
  507. package/test/test/assets/sintel-audio-segment.mp4 +0 -0
  508. package/test/test/assets/sintel-video-init.mp4 +0 -0
  509. package/test/test/assets/sintel-video-segment.mp4 +0 -0
  510. package/test/test/assets/small.mp4 +0 -0
  511. package/test/test/assets/text-clip-alt.vtt +0 -63
  512. package/test/test/assets/text-clip.vtt +0 -63
  513. package/test/test/assets/thumbnails-sprites.vtt +0 -10
  514. package/test/test/assets/thumbnails.vtt +0 -10
  515. package/test/test/assets/ttml-init.mp4 +0 -0
  516. package/test/test/assets/ttml-segment-multiplemdat.mp4 +0 -0
  517. package/test/test/assets/ttml-segment.mp4 +0 -0
  518. package/test/test/assets/video.ts +0 -0
  519. package/test/test/assets/vtt-init.mp4 +0 -0
  520. package/test/test/assets/vtt-segment-multi-payload.mp4 +0 -0
  521. package/test/test/assets/vtt-segment-no-duration.mp4 +0 -0
  522. package/test/test/assets/vtt-segment-settings.mp4 +0 -0
  523. package/test/test/assets/vtt-segment.mp4 +0 -0
  524. package/test/test/boot.js +0 -495
  525. package/test/test/externs/filters.js +0 -44
  526. package/test/test/externs/fontfaceonload.js +0 -29
  527. package/test/test/externs/jasmine.js +0 -670
  528. package/test/test/externs/karma.js +0 -26
  529. package/test/test/externs/require.js +0 -21
  530. package/test/test/externs/sprintf.js +0 -18
  531. package/test/test/namespace.js +0 -10
  532. package/test/test/util/canned_idb.js +0 -379
  533. package/test/test/util/cea_utils.js +0 -60
  534. package/test/test/util/dash_parser_util.js +0 -329
  535. package/test/test/util/fake_ad.js +0 -321
  536. package/test/test/util/fake_ad_manager.js +0 -122
  537. package/test/test/util/fake_demo_main.js +0 -144
  538. package/test/test/util/fake_drm_engine.js +0 -103
  539. package/test/test/util/fake_media_source_engine.js +0 -464
  540. package/test/test/util/fake_networking_engine.js +0 -381
  541. package/test/test/util/fake_segment_prefetch.js +0 -84
  542. package/test/test/util/fake_text_displayer.js +0 -60
  543. package/test/test/util/id3_generator.js +0 -100
  544. package/test/test/util/indexeddb_utils.js +0 -124
  545. package/test/test/util/jasmine_fetch.js +0 -382
  546. package/test/test/util/layout_tests.js +0 -434
  547. package/test/test/util/loader.js +0 -88
  548. package/test/test/util/manifest_generator.js +0 -705
  549. package/test/test/util/manifest_parser_util.js +0 -101
  550. package/test/test/util/mss_parser_util.js +0 -119
  551. package/test/test/util/offline_utils.js +0 -105
  552. package/test/test/util/simple_fakes.js +0 -535
  553. package/test/test/util/stream_generator.js +0 -676
  554. package/test/test/util/streaming_engine_util.js +0 -506
  555. package/test/test/util/test_scheme.js +0 -778
  556. package/test/test/util/ttml_utils.js +0 -77
  557. package/test/test/util/ui_utils.js +0 -183
  558. package/test/test/util/util.js +0 -374
  559. package/test/test/util/waiter.js +0 -406
  560. package/test/text/cue_integration.js +0 -51
  561. package/test/text/lrc_text_parser_unit.js +0 -98
  562. package/test/text/mp4_ttml_parser_unit.js +0 -171
  563. package/test/text/mp4_vtt_parser_unit.js +0 -195
  564. package/test/text/sbv_text_parser_unit.js +0 -81
  565. package/test/text/simple_text_displayer_unit.js +0 -468
  566. package/test/text/srt_text_parser_unit.js +0 -163
  567. package/test/text/ssa_text_parser_unit.js +0 -382
  568. package/test/text/text_displayer_layout_unit.js +0 -323
  569. package/test/text/text_engine_unit.js +0 -500
  570. package/test/text/text_track_integration.js +0 -186
  571. package/test/text/ttml_text_parser_unit.js +0 -2176
  572. package/test/text/ui_text_displayer_unit.js +0 -608
  573. package/test/text/vtt_text_parser_unit.js +0 -1363
  574. package/test/text/web_vtt_generator_unit.js +0 -144
  575. package/test/text/web_vtt_layout_integration.js +0 -524
  576. package/test/transmuxer/transmuxer_engine_integration.js +0 -69
  577. package/test/transmuxer/transmuxer_integration.js +0 -443
  578. package/test/ui/ad_ui_unit.js +0 -369
  579. package/test/ui/localization_unit.js +0 -508
  580. package/test/ui/ui_customization_unit.js +0 -208
  581. package/test/ui/ui_integration.js +0 -669
  582. package/test/ui/ui_unit.js +0 -902
  583. package/test/util/abortable_operation_unit.js +0 -624
  584. package/test/util/array_utils_unit.js +0 -58
  585. package/test/util/buffer_utils_unit.js +0 -185
  586. package/test/util/cmcd_manager_unit.js +0 -440
  587. package/test/util/content_steering_manager_unit.js +0 -427
  588. package/test/util/data_view_reader_unit.js +0 -254
  589. package/test/util/ebml_parser_unit.js +0 -297
  590. package/test/util/event_manager_unit.js +0 -185
  591. package/test/util/fake_event_target_unit.js +0 -123
  592. package/test/util/id3_utils_unit.js +0 -168
  593. package/test/util/iterables_unit.js +0 -68
  594. package/test/util/language_utils_unit.js +0 -240
  595. package/test/util/manifest_parser_utils_unit.js +0 -55
  596. package/test/util/mime_utils_unit.js +0 -64
  597. package/test/util/mp4_box_parsers_unit.js +0 -246
  598. package/test/util/mp4_parser_unit.js +0 -373
  599. package/test/util/multi_map_unit.js +0 -94
  600. package/test/util/object_utils_unit.js +0 -79
  601. package/test/util/periods_unit.js +0 -1623
  602. package/test/util/pssh_unit.js +0 -226
  603. package/test/util/state_history_unit.js +0 -101
  604. package/test/util/stream_utils_unit.js +0 -1068
  605. package/test/util/string_utils_unit.js +0 -166
  606. package/test/util/text_parser_unit.js +0 -165
  607. package/test/util/ts_parser_unit.js +0 -77
  608. package/test/util/xml_utils_unit.js +0 -444
@@ -1,340 +0,0 @@
1
- /*
2
-
3
- Copyright The Closure Library Authors.
4
- SPDX-License-Identifier: Apache-2.0
5
- */
6
- var COMPILED=!0,goog=goog||{};goog.global=this||self;goog.exportPath_=function(a,b,c,d){a=a.split(".");d=d||goog.global;a[0]in d||"undefined"==typeof d.execScript||d.execScript("var "+a[0]);for(var e;a.length&&(e=a.shift());)if(a.length||void 0===b)d=d[e]&&d[e]!==Object.prototype[e]?d[e]:d[e]={};else if(!c&&goog.isObject(b)&&goog.isObject(d[e]))for(var f in b)b.hasOwnProperty(f)&&(d[e][f]=b[f]);else d[e]=b};
7
- goog.define=function(a,b){if(!COMPILED){var c=goog.global.CLOSURE_UNCOMPILED_DEFINES,d=goog.global.CLOSURE_DEFINES;c&&void 0===c.nodeType&&Object.prototype.hasOwnProperty.call(c,a)?b=c[a]:d&&void 0===d.nodeType&&Object.prototype.hasOwnProperty.call(d,a)&&(b=d[a])}return b};goog.FEATURESET_YEAR=2012;goog.DEBUG=!0;goog.LOCALE="en";goog.getLocale=function(){return goog.LOCALE};goog.TRUSTED_SITE=!0;goog.DISALLOW_TEST_ONLY_CODE=COMPILED&&!goog.DEBUG;goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING=!1;
8
- goog.provide=function(a){if(goog.isInModuleLoader_())throw Error("goog.provide cannot be used within a module.");if(!COMPILED&&goog.isProvided_(a))throw Error('Namespace "'+a+'" already declared.');goog.constructNamespace_(a)};goog.constructNamespace_=function(a,b,c){if(!COMPILED){delete goog.implicitNamespaces_[a];for(var d=a;(d=d.substring(0,d.lastIndexOf(".")))&&!goog.getObjectByName(d);)goog.implicitNamespaces_[d]=!0}goog.exportPath_(a,b,c)};goog.NONCE_PATTERN_=/^[\w+/_-]+[=]{0,2}$/;
9
- goog.getScriptNonce_=function(a){a=(a||goog.global).document;return(a=a.querySelector&&a.querySelector("script[nonce]"))&&(a=a.nonce||a.getAttribute("nonce"))&&goog.NONCE_PATTERN_.test(a)?a:""};goog.VALID_MODULE_RE_=/^[a-zA-Z_$][a-zA-Z0-9._$]*$/;
10
- goog.module=function(a){if("string"!==typeof a||!a||-1==a.search(goog.VALID_MODULE_RE_))throw Error("Invalid module identifier");if(!goog.isInGoogModuleLoader_())throw Error("Module "+a+" has been loaded incorrectly. Note, modules cannot be loaded as normal scripts. They require some kind of pre-processing step. You're likely trying to load a module via a script tag or as a part of a concatenated bundle without rewriting the module. For more info see: https://github.com/google/closure-library/wiki/goog.module:-an-ES6-module-like-alternative-to-goog.provide.");if(goog.moduleLoaderState_.moduleName)throw Error("goog.module may only be called once per module.");
11
- goog.moduleLoaderState_.moduleName=a;if(!COMPILED){if(goog.isProvided_(a))throw Error('Namespace "'+a+'" already declared.');delete goog.implicitNamespaces_[a]}};goog.module.get=function(a){return goog.module.getInternal_(a)};goog.module.getInternal_=function(a){if(!COMPILED){if(a in goog.loadedModules_)return goog.loadedModules_[a].exports;if(!goog.implicitNamespaces_[a])return a=goog.getObjectByName(a),null!=a?a:null}return null};goog.ModuleType={ES6:"es6",GOOG:"goog"};goog.moduleLoaderState_=null;
12
- goog.isInModuleLoader_=function(){return goog.isInGoogModuleLoader_()||goog.isInEs6ModuleLoader_()};goog.isInGoogModuleLoader_=function(){return!!goog.moduleLoaderState_&&goog.moduleLoaderState_.type==goog.ModuleType.GOOG};goog.isInEs6ModuleLoader_=function(){if(goog.moduleLoaderState_&&goog.moduleLoaderState_.type==goog.ModuleType.ES6)return!0;var a=goog.global.$jscomp;return a?"function"!=typeof a.getCurrentModulePath?!1:!!a.getCurrentModulePath():!1};
13
- goog.module.declareLegacyNamespace=function(){if(!COMPILED&&!goog.isInGoogModuleLoader_())throw Error("goog.module.declareLegacyNamespace must be called from within a goog.module");if(!COMPILED&&!goog.moduleLoaderState_.moduleName)throw Error("goog.module must be called prior to goog.module.declareLegacyNamespace.");goog.moduleLoaderState_.declareLegacyNamespace=!0};
14
- goog.declareModuleId=function(a){if(!COMPILED){if(!goog.isInEs6ModuleLoader_())throw Error("goog.declareModuleId may only be called from within an ES6 module");if(goog.moduleLoaderState_&&goog.moduleLoaderState_.moduleName)throw Error("goog.declareModuleId may only be called once per module.");if(a in goog.loadedModules_)throw Error('Module with namespace "'+a+'" already exists.');}if(goog.moduleLoaderState_)goog.moduleLoaderState_.moduleName=a;else{var b=goog.global.$jscomp;if(!b||"function"!=typeof b.getCurrentModulePath)throw Error('Module with namespace "'+
15
- a+'" has been loaded incorrectly.');b=b.require(b.getCurrentModulePath());goog.loadedModules_[a]={exports:b,type:goog.ModuleType.ES6,moduleId:a}}};goog.setTestOnly=function(a){if(goog.DISALLOW_TEST_ONLY_CODE)throw a=a||"",Error("Importing test-only code into non-debug environment"+(a?": "+a:"."));};goog.forwardDeclare=function(a){};COMPILED||(goog.isProvided_=function(a){return a in goog.loadedModules_||!goog.implicitNamespaces_[a]&&null!=goog.getObjectByName(a)},goog.implicitNamespaces_={"goog.module":!0});
16
- goog.getObjectByName=function(a,b){a=a.split(".");b=b||goog.global;for(var c=0;c<a.length;c++)if(b=b[a[c]],null==b)return null;return b};goog.addDependency=function(a,b,c,d){!COMPILED&&goog.DEPENDENCIES_ENABLED&&goog.debugLoader_.addDependency(a,b,c,d)};goog.ENABLE_DEBUG_LOADER=!0;goog.logToConsole_=function(a){goog.global.console&&goog.global.console.error(a)};
17
- goog.require=function(a){if(!COMPILED){goog.ENABLE_DEBUG_LOADER&&goog.debugLoader_.requested(a);if(goog.isProvided_(a)){if(goog.isInModuleLoader_())return goog.module.getInternal_(a)}else if(goog.ENABLE_DEBUG_LOADER){var b=goog.moduleLoaderState_;goog.moduleLoaderState_=null;try{goog.debugLoader_.load_(a)}finally{goog.moduleLoaderState_=b}}return null}};goog.requireType=function(a){return{}};goog.basePath="";goog.abstractMethod=function(){throw Error("unimplemented abstract method");};
18
- goog.addSingletonGetter=function(a){a.instance_=void 0;a.getInstance=function(){if(a.instance_)return a.instance_;goog.DEBUG&&(goog.instantiatedSingletons_[goog.instantiatedSingletons_.length]=a);return a.instance_=new a}};goog.instantiatedSingletons_=[];goog.LOAD_MODULE_USING_EVAL=!0;goog.SEAL_MODULE_EXPORTS=goog.DEBUG;goog.loadedModules_={};goog.DEPENDENCIES_ENABLED=!COMPILED&&goog.ENABLE_DEBUG_LOADER;goog.TRANSPILE="detect";goog.ASSUME_ES_MODULES_TRANSPILED=!1;goog.TRUSTED_TYPES_POLICY_NAME="goog";
19
- goog.hasBadLetScoping=null;
20
- goog.loadModule=function(a){var b=goog.moduleLoaderState_;try{goog.moduleLoaderState_={moduleName:"",declareLegacyNamespace:!1,type:goog.ModuleType.GOOG};var c={},d=c;if("function"===typeof a)d=a.call(void 0,d);else if("string"===typeof a)d=goog.loadModuleFromSource_.call(void 0,d,a);else throw Error("Invalid module definition");var e=goog.moduleLoaderState_.moduleName;if("string"===typeof e&&e)goog.moduleLoaderState_.declareLegacyNamespace?goog.constructNamespace_(e,d,c!==d):goog.SEAL_MODULE_EXPORTS&&
21
- Object.seal&&"object"==typeof d&&null!=d&&Object.seal(d),goog.loadedModules_[e]={exports:d,type:goog.ModuleType.GOOG,moduleId:goog.moduleLoaderState_.moduleName};else throw Error('Invalid module name "'+e+'"');}finally{goog.moduleLoaderState_=b}};goog.loadModuleFromSource_=function(a,b){eval(goog.CLOSURE_EVAL_PREFILTER_.createScript(b));return a};goog.normalizePath_=function(a){a=a.split("/");for(var b=0;b<a.length;)"."==a[b]?a.splice(b,1):b&&".."==a[b]&&a[b-1]&&".."!=a[b-1]?a.splice(--b,2):b++;return a.join("/")};
22
- goog.loadFileSync_=function(a){if(goog.global.CLOSURE_LOAD_FILE_SYNC)return goog.global.CLOSURE_LOAD_FILE_SYNC(a);try{var b=new goog.global.XMLHttpRequest;b.open("get",a,!1);b.send();return 0==b.status||200==b.status?b.responseText:null}catch(c){return null}};goog.typeOf=function(a){var b=typeof a;return"object"!=b?b:a?Array.isArray(a)?"array":b:"null"};goog.isArrayLike=function(a){var b=goog.typeOf(a);return"array"==b||"object"==b&&"number"==typeof a.length};
23
- goog.isDateLike=function(a){return goog.isObject(a)&&"function"==typeof a.getFullYear};goog.isObject=function(a){var b=typeof a;return"object"==b&&null!=a||"function"==b};goog.getUid=function(a){return Object.prototype.hasOwnProperty.call(a,goog.UID_PROPERTY_)&&a[goog.UID_PROPERTY_]||(a[goog.UID_PROPERTY_]=++goog.uidCounter_)};goog.hasUid=function(a){return!!a[goog.UID_PROPERTY_]};goog.removeUid=function(a){null!==a&&"removeAttribute"in a&&a.removeAttribute(goog.UID_PROPERTY_);try{delete a[goog.UID_PROPERTY_]}catch(b){}};
24
- goog.UID_PROPERTY_="closure_uid_"+(1E9*Math.random()>>>0);goog.uidCounter_=0;goog.cloneObject=function(a){var b=goog.typeOf(a);if("object"==b||"array"==b){if("function"===typeof a.clone)return a.clone();if("undefined"!==typeof Map&&a instanceof Map)return new Map(a);if("undefined"!==typeof Set&&a instanceof Set)return new Set(a);b="array"==b?[]:{};for(var c in a)b[c]=goog.cloneObject(a[c]);return b}return a};goog.bindNative_=function(a,b,c){return a.call.apply(a.bind,arguments)};
25
- goog.bindJs_=function(a,b,c){if(!a)throw Error();if(2<arguments.length){var d=Array.prototype.slice.call(arguments,2);return function(){var e=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(e,d);return a.apply(b,e)}}return function(){return a.apply(b,arguments)}};goog.bind=function(a,b,c){Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?goog.bind=goog.bindNative_:goog.bind=goog.bindJs_;return goog.bind.apply(null,arguments)};
26
- goog.partial=function(a,b){var c=Array.prototype.slice.call(arguments,1);return function(){var d=c.slice();d.push.apply(d,arguments);return a.apply(this,d)}};goog.now=function(){return Date.now()};goog.globalEval=function(a){(0,eval)(a)};
27
- goog.getCssName=function(a,b){if("."==String(a).charAt(0))throw Error('className passed in goog.getCssName must not start with ".". You passed: '+a);var c=function(e){return goog.cssNameMapping_[e]||e},d=function(e){e=e.split("-");for(var f=[],g=0;g<e.length;g++)f.push(c(e[g]));return f.join("-")};d=goog.cssNameMapping_?"BY_WHOLE"==goog.cssNameMappingStyle_?c:d:function(e){return e};a=b?a+"-"+d(b):d(a);return goog.global.CLOSURE_CSS_NAME_MAP_FN?goog.global.CLOSURE_CSS_NAME_MAP_FN(a):a};
28
- goog.setCssNameMapping=function(a,b){goog.cssNameMapping_=a;goog.cssNameMappingStyle_=b};!COMPILED&&goog.global.CLOSURE_CSS_NAME_MAPPING&&(goog.cssNameMapping_=goog.global.CLOSURE_CSS_NAME_MAPPING);goog.GetMsgOptions=function(){};
29
- goog.getMsg=function(a,b,c){c&&c.html&&(a=a.replace(/</g,"&lt;"));c&&c.unescapeHtmlEntities&&(a=a.replace(/&lt;/g,"<").replace(/&gt;/g,">").replace(/&apos;/g,"'").replace(/&quot;/g,'"').replace(/&amp;/g,"&"));b&&(a=a.replace(/\{\$([^}]+)}/g,function(d,e){return null!=b&&e in b?b[e]:d}));return a};goog.getMsgWithFallback=function(a,b){return a};goog.exportSymbol=function(a,b,c){goog.exportPath_(a,b,!0,c)};goog.exportProperty=function(a,b,c){a[b]=c};
30
- goog.inherits=function(a,b){function c(){}c.prototype=b.prototype;a.superClass_=b.prototype;a.prototype=new c;a.prototype.constructor=a;a.base=function(d,e,f){for(var g=Array(arguments.length-2),h=2;h<arguments.length;h++)g[h-2]=arguments[h];return b.prototype[e].apply(d,g)}};goog.scope=function(a){if(goog.isInModuleLoader_())throw Error("goog.scope is not supported within a module.");a.call(goog.global)};COMPILED||(goog.global.COMPILED=COMPILED);
31
- goog.defineClass=function(a,b){var c=b.constructor,d=b.statics;c&&c!=Object.prototype.constructor||(c=function(){throw Error("cannot instantiate an interface (no constructor defined).");});c=goog.defineClass.createSealingConstructor_(c,a);a&&goog.inherits(c,a);delete b.constructor;delete b.statics;goog.defineClass.applyProperties_(c.prototype,b);null!=d&&(d instanceof Function?d(c):goog.defineClass.applyProperties_(c,d));return c};goog.defineClass.SEAL_CLASS_INSTANCES=goog.DEBUG;
32
- goog.defineClass.createSealingConstructor_=function(a,b){return goog.defineClass.SEAL_CLASS_INSTANCES?function(){var c=a.apply(this,arguments)||this;c[goog.UID_PROPERTY_]=c[goog.UID_PROPERTY_];return c}:a};goog.defineClass.OBJECT_PROTOTYPE_FIELDS_="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");
33
- goog.defineClass.applyProperties_=function(a,b){for(var c in b)Object.prototype.hasOwnProperty.call(b,c)&&(a[c]=b[c]);for(var d=0;d<goog.defineClass.OBJECT_PROTOTYPE_FIELDS_.length;d++)c=goog.defineClass.OBJECT_PROTOTYPE_FIELDS_[d],Object.prototype.hasOwnProperty.call(b,c)&&(a[c]=b[c])};goog.identity_=function(a){return a};
34
- goog.createTrustedTypesPolicy=function(a){var b=null,c=goog.global.trustedTypes;if(!c||!c.createPolicy)return b;try{b=c.createPolicy(a,{createHTML:goog.identity_,createScript:goog.identity_,createScriptURL:goog.identity_})}catch(d){goog.logToConsole_(d.message)}return b};
35
- !COMPILED&&goog.DEPENDENCIES_ENABLED&&(goog.isEdge_=function(){return!!(goog.global.navigator&&goog.global.navigator.userAgent?goog.global.navigator.userAgent:"").match(/Edge\/(\d+)(\.\d)*/i)},goog.inHtmlDocument_=function(){var a=goog.global.document;return null!=a&&"write"in a},goog.isDocumentLoading_=function(){var a=goog.global.document;return a.attachEvent?"complete"!=a.readyState:"loading"==a.readyState},goog.findBasePath_=function(){if(void 0!=goog.global.CLOSURE_BASE_PATH&&"string"===typeof goog.global.CLOSURE_BASE_PATH)goog.basePath=
36
- goog.global.CLOSURE_BASE_PATH;else if(goog.inHtmlDocument_()){var a=goog.global.document,b=a.currentScript;a=b?[b]:a.getElementsByTagName("SCRIPT");for(b=a.length-1;0<=b;--b){var c=a[b].src,d=c.lastIndexOf("?");d=-1==d?c.length:d;if("base.js"==c.slice(d-7,d)){goog.basePath=c.slice(0,d-7);break}}}},goog.findBasePath_(),goog.protectScriptTag_=function(a){return a.replace(/<\/(SCRIPT)/ig,"\\x3c/$1")},goog.DebugLoader_=function(){this.dependencies_={};this.idToPath_={};this.written_={};this.loadingDeps_=
37
- [];this.depsToLoad_=[];this.paused_=!1;this.factory_=new goog.DependencyFactory;this.deferredCallbacks_={};this.deferredQueue_=[]},goog.DebugLoader_.prototype.bootstrap=function(a,b){function c(){d&&(goog.global.setTimeout(d,0),d=null)}var d=b;if(a.length){b=[];for(var e=0;e<a.length;e++){var f=this.getPathFromDeps_(a[e]);if(!f)throw Error("Unregonized namespace: "+a[e]);b.push(this.dependencies_[f])}f=goog.require;var g=0;for(e=0;e<a.length;e++)f(a[e]),b[e].onLoad(function(){++g==a.length&&c()})}else c()},
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
- 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
- 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,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
- 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
- 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
- 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=
45
- function(a){},goog.LoadController.prototype.clearModuleState=function(){},goog.LoadController.prototype.defer=function(a){},goog.LoadController.prototype.areDepsLoaded=function(){},goog.Dependency=function(a,b,c,d,e){this.path=a;this.relativePath=b;this.provides=c;this.requires=d;this.loadFlags=e;this.loaded_=!1;this.loadCallbacks_=[]},goog.Dependency.prototype.getPathName=function(){var a=this.path,b=a.indexOf("://");0<=b&&(a=a.substring(b+3),b=a.indexOf("/"),0<=b&&(a=a.substring(b+1)));return a},
46
- goog.Dependency.prototype.onLoad=function(a){this.loaded_?a():this.loadCallbacks_.push(a)},goog.Dependency.prototype.loaded=function(){this.loaded_=!0;var a=this.loadCallbacks_;this.loadCallbacks_=[];for(var b=0;b<a.length;b++)a[b]()},goog.Dependency.defer_=!1,goog.Dependency.callbackMap_={},goog.Dependency.registerCallback_=function(a){var b=Math.random().toString(32);goog.Dependency.callbackMap_[b]=a;return b},goog.Dependency.unregisterCallback_=function(a){delete goog.Dependency.callbackMap_[a]},
47
- goog.Dependency.callback_=function(a,b){if(a in goog.Dependency.callbackMap_){for(var c=goog.Dependency.callbackMap_[a],d=[],e=1;e<arguments.length;e++)d.push(arguments[e]);c.apply(void 0,d)}else throw Error("Callback key "+a+" does not exist (was base.js loaded more than once?).");},goog.Dependency.prototype.load=function(a){if(goog.global.CLOSURE_IMPORT_SCRIPT)goog.global.CLOSURE_IMPORT_SCRIPT(this.path)?a.loaded():a.pause();else if(goog.inHtmlDocument_()){var b=goog.global.document;if("complete"==
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
- 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
- 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(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
- 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
- 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
- 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(),
62
- goog.bootstrap=function(a,b){goog.debugLoader_.bootstrap(a,b)});if(!COMPILED){var isChrome87=!1;try{isChrome87=eval(goog.global.trustedTypes.emptyScript)!==goog.global.trustedTypes.emptyScript}catch(a){}goog.CLOSURE_EVAL_PREFILTER_=goog.global.trustedTypes&&isChrome87&&goog.createTrustedTypesPolicy("goog#base#devonly#eval")||{createScript:goog.identity_}};/*
63
- @license
64
- Shaka Player
65
- Copyright 2016 Google LLC
66
- SPDX-License-Identifier: Apache-2.0
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));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=
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=
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")))}};
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)",
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)",
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),
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",
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",
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),
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",
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",
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)",
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",
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",
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",
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),
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),
103
- (new ShakaDemoAssetInfo('"Dig the Uke" by Stefan Kartenberg (audio only, multicodec, Widevine)',"https://storage.googleapis.com/shaka-asset-icons/audio_only.png","https://storage.googleapis.com/shaka-demo-assets/dig-the-uke/dash.mpd",shakaAssets.Source.SHAKA)).addKeySystem(shakaAssets.KeySystem.WIDEVINE).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.AUDIO_ONLY).addFeature(shakaAssets.Feature.WEBM).addFeature(shakaAssets.Feature.OFFLINE).addLicenseServer("com.widevine.alpha",
104
- "https://cwip-shaka-proxy.appspot.com/no_auth"),(new ShakaDemoAssetInfo("Tears of Steel (multicodec, TTML)","https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png","https://storage.googleapis.com/shaka-demo-assets/tos-ttml/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.WEBM).addFeature(shakaAssets.Feature.OFFLINE),
105
- (new ShakaDemoAssetInfo("Tears of Steel (HLS, Server Side ads)","https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png","https://storage.googleapis.com/shaka-demo-assets/tos/hls.m3u8",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.OFFLINE).setIMAContentSourceId("2528370").setIMAVideoId("tears-of-steel").setIMAManifestType("HLS"),(new ShakaDemoAssetInfo("Tears of Steel (live, DASH, Server Side ads)",
106
- "https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png","https://storage.googleapis.com/shaka-demo-assets/tos-ttml/dash.mpd",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.LIVE).setIMAAssetKey("PSzZMzAkSXCmlJOWDmRj8Q").setIMAManifestType("DASH"),(new ShakaDemoAssetInfo("Tears of Steel (multicodec, surround + stereo)","https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png",
107
- "https://storage.googleapis.com/shaka-demo-assets/tos-surround/dash.mpd",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SURROUND).addFeature(shakaAssets.Feature.WEBM).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Tears of Steel (multicodec, surround + stereo, single skippable ad)","https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png","https://storage.googleapis.com/shaka-demo-assets/tos-surround/dash.mpd",
108
- shakaAssets.Source.SHAKA)).setAdTagUri(shakaAssets.AdTag.SINGLE_SKIPPABLE_AD).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SURROUND).addFeature(shakaAssets.Feature.WEBM).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Shaka Player History (multicodec, live, DASH)","https://storage.googleapis.com/shaka-asset-icons/shaka.png","https://storage.googleapis.com/shaka-live-assets/player-source.mpd",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.LIVE).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.WEBM),
109
- (new ShakaDemoAssetInfo("Shaka Player History (live, HLS)","https://storage.googleapis.com/shaka-asset-icons/shaka.png","https://storage.googleapis.com/shaka-live-assets/player-source.m3u8",shakaAssets.Source.SHAKA)).addDescription("A self-indulgent HLS livestream.").markAsFeatured("Shaka Player History").addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.HLS).addFeature(shakaAssets.Feature.LIVE).addFeature(shakaAssets.Feature.MP4),(new ShakaDemoAssetInfo("Multi-DRM","https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png",
110
- "https://media.axprod.net/TestVectors/v7-MultiDRM-SingleKey/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","https://drm-widevine-licensing.axtest.net/AcquireLicense").addLicenseServer("com.microsoft.playready",
111
- "https://drm-playready-licensing.axtest.net/AcquireLicense").addLicenseRequestHeader("X-AxDRM-Message","eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ2ZXJzaW9uIjoxLCJjb21fa2V5X2lkIjoiYjMzNjRlYjUtNTFmNi00YWUzLThjOTgtMzNjZWQ1ZTMxYzc4IiwibWVzc2FnZSI6eyJ0eXBlIjoiZW50aXRsZW1lbnRfbWVzc2FnZSIsImtleXMiOlt7ImlkIjoiOWViNDA1MGQtZTQ0Yi00ODAyLTkzMmUtMjdkNzUwODNlMjY2IiwiZW5jcnlwdGVkX2tleSI6ImxLM09qSExZVzI0Y3Iya3RSNzRmbnc9PSJ9XX19.4lWwW46k-oWcah8oN18LPj5OLS5ZU-_AQv7fe0JhNjA"),(new ShakaDemoAssetInfo("Multi-DRM, multi-key",
112
- "https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png","https://media.axprod.net/TestVectors/v7-MultiDRM-MultiKey/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",
113
- "https://drm-widevine-licensing.axtest.net/AcquireLicense").addLicenseServer("com.microsoft.playready","https://drm-playready-licensing.axtest.net/AcquireLicense").addLicenseRequestHeader("X-AxDRM-Message","eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ2ZXJzaW9uIjoxLCJjb21fa2V5X2lkIjoiYjMzNjRlYjUtNTFmNi00YWUzLThjOTgtMzNjZWQ1ZTMxYzc4IiwibWVzc2FnZSI6eyJ0eXBlIjoiZW50aXRsZW1lbnRfbWVzc2FnZSIsImtleXMiOlt7ImlkIjoiODAzOTliZjUtOGEyMS00MDE0LTgwNTMtZTI3ZTc0OGU5OGMwIiwiZW5jcnlwdGVkX2tleSI6ImxpTkpxVmFZa05oK01LY3hKRms3SWc9PSJ9LHsiaWQiOiI5MDk1M2UwOS02Y2IyLTQ5YTMtYTI2MC03YTVmZWZlYWQ0OTkiLCJlbmNyeXB0ZWRfa2V5Ijoia1l0SEh2cnJmQ01lVmRKNkxrYmtuZz09In0seyJpZCI6IjBlNGRhOTJiLWQwZTgtNGE2Ni04YzNmLWMyNWE5N2ViNjUzMiIsImVuY3J5cHRlZF9rZXkiOiI3dzdOWkhITE1nSjRtUUtFSzVMVE1RPT0ifSx7ImlkIjoiNTg1ZjIzM2YtMzA3Mi00NmYxLTlmYTQtNmRjMjJjNjZhMDE0IiwiZW5jcnlwdGVkX2tleSI6IkFjNFVVbVl0Qko1blBROU4xNXJjM2c9PSJ9LHsiaWQiOiI0MjIyYmQ3OC1iYzQ1LTQxYmYtYjYzZS02ZjgxNGRjMzkxZGYiLCJlbmNyeXB0ZWRfa2V5IjoiTzZGTzBmcVNXb3BwN2JqYy9ENGxNQT09In1dfX0.uF6YlKAREOmbniAeYiH070HSJhV0YS7zSKjlCtiDR5Y"),
114
- (new ShakaDemoAssetInfo("Multi-DRM, multi-key, multi-Period","https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png","https://media.axprod.net/TestVectors/v7-MultiDRM-MultiKey-MultiPeriod/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",
115
- "https://drm-widevine-licensing.axtest.net/AcquireLicense").addLicenseServer("com.microsoft.playready","https://drm-playready-licensing.axtest.net/AcquireLicense").addLicenseRequestHeader("X-AxDRM-Message","eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ2ZXJzaW9uIjoxLCJjb21fa2V5X2lkIjoiYjMzNjRlYjUtNTFmNi00YWUzLThjOTgtMzNjZWQ1ZTMxYzc4IiwibWVzc2FnZSI6eyJ0eXBlIjoiZW50aXRsZW1lbnRfbWVzc2FnZSIsImtleXMiOlt7ImlkIjoiMDg3Mjc4NmUtZjllNy00NjVmLWEzYTItNGU1YjBlZjhmYTQ1IiwiZW5jcnlwdGVkX2tleSI6IlB3NitlRVlOY3ZqWWJmc2gzWDNmbWc9PSJ9LHsiaWQiOiJjMTRmMDcwOS1mMmI5LTQ0MjctOTE2Yi02MWI1MjU4NjUwNmEiLCJlbmNyeXB0ZWRfa2V5IjoiLzErZk5paDM4bXFSdjR5Y1l6bnQvdz09In0seyJpZCI6IjhiMDI5ZTUxLWQ1NmEtNDRiZC05MTBmLWQ0YjVmZDkwZmJhMiIsImVuY3J5cHRlZF9rZXkiOiJrcTBKdVpFanBGTjhzYVRtdDU2ME9nPT0ifSx7ImlkIjoiMmQ2ZTkzODctNjBjYS00MTQ1LWFlYzItYzQwODM3YjRiMDI2IiwiZW5jcnlwdGVkX2tleSI6IlRjUlFlQld4RW9IT0tIcmFkNFNlVlE9PSJ9LHsiaWQiOiJkZTAyZjA3Zi1hMDk4LTRlZTAtYjU1Ni05MDdjMGQxN2ZiYmMiLCJlbmNyeXB0ZWRfa2V5IjoicG9lbmNTN0dnbWVHRmVvSjZQRUFUUT09In0seyJpZCI6IjkxNGU2OWY0LTBhYjMtNDUzNC05ZTlmLTk4NTM2MTVlMjZmNiIsImVuY3J5cHRlZF9rZXkiOiJlaUkvTXNsbHJRNHdDbFJUL0xObUNBPT0ifSx7ImlkIjoiZGE0NDQ1YzItZGI1ZS00OGVmLWIwOTYtM2VmMzQ3YjE2YzdmIiwiZW5jcnlwdGVkX2tleSI6IjJ3K3pkdnFycERWM3hSMGJKeTR1Z3c9PSJ9LHsiaWQiOiIyOWYwNWU4Zi1hMWFlLTQ2ZTQtODBlOS0yMmRjZDQ0Y2Q3YTEiLCJlbmNyeXB0ZWRfa2V5IjoiL3hsU0hweHdxdTNnby9nbHBtU2dhUT09In0seyJpZCI6IjY5ZmU3MDc3LWRhZGQtNGI1NS05NmNkLWMzZWRiMzk5MTg1MyIsImVuY3J5cHRlZF9rZXkiOiJ6dTZpdXpOMnBzaTBaU3hRaUFUa1JRPT0ifV19fQ.BXr93Et1krYMVs-CUnf7F3ywJWFRtxYdkR7Qn4w3-to"),
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",
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",
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"),
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",
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",
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",
124
- shakaAssets.Source.UNIFIED_STREAMING)).addKeySystem(shakaAssets.KeySystem.PLAYREADY).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addLicenseServer("com.microsoft.playready","https://test.playready.microsoft.com/service/rightsmanager.asmx?PlayRight=1&UseSimpleNonPersistentLicense=1"),(new ShakaDemoAssetInfo("Tears of Steel (subtitles)","https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png",
125
- "https://demo.unified-streaming.com/video/tears-of-steel/tears-of-steel-en.ism/.mpd",shakaAssets.Source.UNIFIED_STREAMING)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Tears of Steel (Thumbnails)","https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png","https://demo.unified-streaming.com/video/tears-of-steel/tears-of-steel-tiled-thumbnails-timeline.ism/.mpd",
126
- shakaAssets.Source.UNIFIED_STREAMING)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.OFFLINE).addFeature(shakaAssets.Feature.THUMBNAILS),(new ShakaDemoAssetInfo("Big Buck Bunny (DASH-IF)","https://storage.googleapis.com/shaka-asset-icons/big_buck_bunny.png","https://dash.akamaized.net/dash264/TestCases/1c/qualcomm/2/MultiRate.mpd",shakaAssets.Source.DASH_IF)).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.OFFLINE),
127
- (new ShakaDemoAssetInfo("Live sim (2s segments)","https://storage.googleapis.com/shaka-asset-icons/dash_if_test_pattern.png","https://livesim2.dashif.org/livesim2/utc_head/testpic_2s/Manifest.mpd",shakaAssets.Source.DASH_IF)).addFeature(shakaAssets.Feature.LIVE).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.DASH),(new ShakaDemoAssetInfo("Live sim SegmentTimeline w/ $Time$ (6s segments)","https://storage.googleapis.com/shaka-asset-icons/dash_if_test_pattern.png","https://livesim2.dashif.org/livesim2/segtimeline_1/utc_head/testpic_6s/Manifest.mpd",
128
- shakaAssets.Source.DASH_IF)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.LIVE).addFeature(shakaAssets.Feature.MP4),(new ShakaDemoAssetInfo("Live sim SegmentTimeline w/ $Number$ (6s segments)","https://storage.googleapis.com/shaka-asset-icons/dash_if_test_pattern.png","https://livesim2.dashif.org/livesim2/segtimelinenr_1/utc_head/testpic_6s/Manifest.mpd",shakaAssets.Source.DASH_IF)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.LIVE).addFeature(shakaAssets.Feature.MP4),
129
- (new ShakaDemoAssetInfo("Live sim SegmentTimeline StartOver [-20s, +20s] (2s segments)","https://storage.googleapis.com/shaka-asset-icons/dash_if_test_pattern.png","https://livesim2.dashif.org/livesim2/segtimeline_1/startrel_-20/stoprel_20/timeoffset_0/testpic_2s/Manifest.mpd",shakaAssets.Source.DASH_IF)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4),(new ShakaDemoAssetInfo("Live sim StartOver SegTmpl Duration [-20s, +20s] (2s segments)","https://storage.googleapis.com/shaka-asset-icons/dash_if_test_pattern.png",
130
- "https://livesim2.dashif.org/livesim2/startrel_-20/stoprel_20/timeoffset_0/testpic_2s/Manifest.mpd",shakaAssets.Source.DASH_IF)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4),(new ShakaDemoAssetInfo("Live sim SegTmpl Duration (multi-period 60s)","https://storage.googleapis.com/shaka-asset-icons/dash_if_test_pattern.png","https://livesim2.dashif.org/livesim2/utc_head/periods_60/testpic_2s/Manifest.mpd",shakaAssets.Source.DASH_IF)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.LIVE).addFeature(shakaAssets.Feature.MP4),
131
- (new ShakaDemoAssetInfo("Live sim TTML Image Subtitles embedded (VoD)","https://storage.googleapis.com/shaka-asset-icons/dash_if_test_pattern.png","https://livesim2.dashif.org/dash/testpic_2s/img_subs.mpd",shakaAssets.Source.DASH_IF)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.MP4),(new ShakaDemoAssetInfo("Low Latency DASH Live","https://storage.googleapis.com/shaka-asset-icons/dash_if_test_pattern.png","https://livesim2.dashif.org/livesim2/chunkdur_1/ato_7/testpic4_8s/Manifest300.mpd",
132
- shakaAssets.Source.DASH_IF)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.LIVE).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.LOW_LATENCY).setExtraConfig({streaming:{lowLatencyMode:!0}}),(new ShakaDemoAssetInfo("DASH-IF CEA-608 VOD","https://storage.googleapis.com/shaka-asset-icons/dash_if_test_pattern.png","https://livesim2.dashif.org/dash/testpic_2s/cea608.mpd",shakaAssets.Source.DASH_IF)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.MP4),
133
- (new ShakaDemoAssetInfo("DASH-IF CEA-608 Live","https://storage.googleapis.com/shaka-asset-icons/dash_if_test_pattern.png","https://livesim2.dashif.org/livesim2/testpic_2s/cea608.mpd",shakaAssets.Source.DASH_IF)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.LIVE).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.MP4),(new ShakaDemoAssetInfo("Akamai Low Latency DASH Live","https://storage.googleapis.com/shaka-asset-icons/dash_if_test_pattern.png","https://akamaibroadcasteruseast.akamaized.net/cmaf/live/657078/akasource/out.mpd",
134
- shakaAssets.Source.DASH_IF)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.LIVE).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.LOW_LATENCY).setExtraConfig({streaming:{lowLatencyMode:!0}}),(new ShakaDemoAssetInfo("DASH-IF THUMBNAILS - Single adaptation set, 7 tiles at 10x1, each thumb 320x180","https://storage.googleapis.com/shaka-asset-icons/dash_if_test_pattern.png","https://dash.akamaized.net/akamai/bbb_30fps/bbb_with_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),
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",
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",
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",
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",
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",
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",
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),
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",
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",
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),
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},
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,
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",
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");
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);
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");
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);
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,
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";
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"),
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=
198
- shakaDemo.Input.lastId_;shakaDemo.Input.lastId_+=1;return a+"-labeled-"+b}};shakaDemo.Input.lastId_=0;
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")}};
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)}};
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)})}};
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&&
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"),
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").addTextInput_("Default media playlist full mime type","manifest.hls.mediaPlaylistFullMimeType").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",
217
- "manifest.hls.ignoreManifestTimestampsInSegmentsMode").addBoolInput_("Disable codec guessing","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",
218
- "manifest.dash.enableAudioGroups").addBoolInput_("Ignore Min Buffer Time","manifest.dash.ignoreMinBufferTime").addNumberInput_("Initial Segment Limit","manifest.dash.initialSegmentLimit",!1,!1,!0).addBoolInput_("Enable DASH sequence mode","manifest.dash.sequenceMode").addBoolInput_("Disable Audio","manifest.disableAudio").addBoolInput_("Disable Video","manifest.disableVideo").addBoolInput_("Disable Text","manifest.disableText").addBoolInput_("Disable Thumbnails","manifest.disableThumbnails").addBoolInput_("Enable segment-relative VTT Timing",
219
- "manifest.segmentRelativeVttTiming").addBoolInput_("Enable MSS sequence mode","manifest.mss.sequenceMode");this.addRetrySection_("manifest","Manifest Retry Parameters")}addAbrSection_(){const a=this.resolveExternLink_(".AbrConfiguration");this.addSection_("Adaptation",a).addBoolInput_("Enabled","abr.enabled").addBoolInput_("Use Network Information API","abr.useNetworkInformation").addNumberInput_("Default Bandwidth EstimatZ","abr.defaultBandwidthEstimate").addNumberInput_("Bandwidth Downgrade Target",
220
- "abr.bandwidthDowngradeTarget",!0).addNumberInput_("Bandwidth Upgrade Target","abr.bandwidthUpgradeTarget",!0).addNumberInput_("Switch Interval","abr.switchInterval",!0).addNumberInput_("Min total Bytes","abr.advanced.minTotalBytes").addNumberInput_("Min Bytes","abr.advanced.minBytes").addNumberInput_("Fast half life","abr.advanced.fastHalfLife",!0).addNumberInput_("Slow half life","abr.advanced.slowHalfLife",!0).addBoolInput_("Restrict to element size","abr.restrictToElementSize").addBoolInput_("Restrict to screen size",
221
- "abr.restrictToScreenSize").addBoolInput_("Ignore device pixel ratio","abr.ignoreDevicePixelRatio").addBoolInput_("Clear video buffer on abr rendition switch","abr.clearBufferSwitch").addNumberInput_("Safe margin on abr switch rendition","abr.safeMarginSwitch",!0);this.addRetrictionsSection_("abr","Adaptation Restrictions")}addCmcdSection_(){const a=this.resolveExternLink_(".CmcdConfiguration");this.addSection_("CMCD",a).addBoolInput_("Enabled","cmcd.enabled").addTextInput_("Session ID","cmcd.sessionId").addTextInput_("Content ID",
222
- "cmcd.contentId").addBoolInput_("Use Headers","cmcd.useHeaders")}addLcevcSection_(){const a=this.resolveExternLink_(".LcevcConfiguration");this.addSection_("MPEG-5 Part-2 LCEVC",a).addBoolInput_("Enabled","lcevc.enabled").addBoolInput_("LCEVC Dynamic Performance scaling","lcevc.dynamicPerformanceScaling").addNumberInput_("LCEVC Log Level","lcevc.logLevel").addBoolInput_("Draw LCEVC Logo","lcevc.drawLogo")}addAdsSection_(){const a=this.resolveExternLink_(".AdsConfiguration");this.addSection_("Ads",
223
- a).addBoolInput_("Custom playhead tracker","ads.customPlayheadTracker")}addRetrictionsSection_(a,b){a=(a?a+".":"")+"restrictions.";const c=this.resolveExternLink_(".Restrictions");this.addSection_(b,c).addNumberInput_("Min Width",a+"minWidth").addNumberInput_("Max Width",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",
224
- a+"maxFrameRate").addNumberInput_("Min Bandwidth",a+"minBandwidth").addNumberInput_("Max Bandwidth",a+"maxBandwidth")}addRetrySection_(a,b){a+=".retryParameters.";const c=this.resolveExternLink_(".RetryParameters");this.addSection_(b,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",
225
- a+"stallTimeout",!0).addNumberInput_("Connection Timeout",a+"connectionTimeout",!0)}addOfflineSection_(){const a=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",
226
- "streaming.gapDetectionThreshold",!0).addNumberInput_("Gap Jump Timer Time","streaming.gapJumpTimerTime",!0).addNumberInput_("Buffering Goal","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",
227
- "streaming.stallSkip",!0).addNumberInput_("Inaccurate Manifest Tolerance","streaming.inaccurateManifestTolerance",!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",
228
- "streaming.dispatchAllEmsgBoxes").addBoolInput_("Observe media quality changes","streaming.observeQualityChanges").addNumberInput_("Max Variant Disabled Time","streaming.maxDisabledTime").addBoolInput_("Parse PRFT box","streaming.parsePrftBox").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",
229
- !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()?(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");
230
- 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","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",
231
- "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=shaka.config.CodecSwitchingStrategy,b=this.resolveExternLink_(".MediaSourceConfiguration");this.addSection_("Media source",b).addTextInput_("Source buffer extra features","mediaSource.sourceBufferExtraFeatures").addBoolInput_("Force Transmux",
232
- "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=this.resolveExternLink_(".PlayerConfiguration"),b=shaka.config.AutoShowText;this.addSection_("Language",a).addTextInput_("Preferred Audio Language","preferredAudioLanguage").addTextInput_("Preferred Audio Label",
233
- "preferredAudioLabel").addTextInput_("Preferred Variant Role","preferredVariantRole").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"});this.addCustomTextInput_("Preferred UI Locale",c=>{shakaDemoMain.setUILocale(c.value);shakaDemoMain.remakeHash()});
234
- 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",!0),shakaDemoMain.remakeHash());this.reloadAndSaveState_()});shakaDemoMain.getNativeControlsEnabled()||
235
- (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()&&(this.latestInput_.input().checked=!0));if(shaka.log){var a=shaka.log.Level,b=
236
- 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="info"}}}resolveExternLink_(a){return"../docs/api/shaka.extern.html#"+
237
- 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,c);this.latestInput_=new shakaDemo.BoolInput(this.getLatestSection_(),
238
- 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_(),a,g=>{shakaDemoMain.resetConfiguration(b);
239
- 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,d);this.latestInput_=new shakaDemo.DatalistInput(this.getLatestSection_(),
240
- 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=f);return this}createRow_(a,b){this.getLatestSection_().addRow(a,b||null)}getLatestSection_(){goog.asserts.assert(0<
241
- 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;
242
- 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");
243
- 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,
244
- 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,
245
- 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,
246
- 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,
247
- "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)",
248
- (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,
249
- 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=
250
- 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&&
251
- (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");
252
- 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");
253
- 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!=
254
- 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=
255
- !!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_);
256
- 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");
257
- 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);
258
- 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");
259
- 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");
260
- 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.saveAssetInfos_(this.assets_),this.remakeSavedList_());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?");
261
- b.addStoreButton()})}updateSelected_(){for(const a of this.assetCards_)a.selectByAsset(shakaDemoMain.selectedAsset)}remakeSavedList_(){shaka.util.Dom.removeAllChildren(this.savedList_);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_=
262
- Array.from(this.assets_).map(a=>this.createAssetCardFor_(a)),this.updateSelected_()}};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=
263
- (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;
264
- 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_()});
265
- 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.');
266
- 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=>
267
- 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)}};
268
- 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,
269
- 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",
270
- ()=>{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",
271
- "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;
272
- 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)-
273
- 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");
274
- 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;
275
- 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_=
276
- 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()?
277
- 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)});
278
- 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");
279
- 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();
280
- 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);
281
- 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_=
282
- 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;
283
- 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= `"+
284
- 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=
285
- "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=>
286
- "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;
287
- 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_=
288
- 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");
289
- 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");
290
- 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)==
291
- 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,
292
- 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&&
293
- 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,
294
- !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=>
295
- 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)&&
296
- !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)&&
297
- 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_=
298
- 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,
299
- 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()),
300
- "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()||
301
- (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?
302
- 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(";"));
303
- 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==
304
- 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=
305
- 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&&
306
- 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(),
307
- 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);
308
- 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),
309
- 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()&&
310
- (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);
311
- 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=
312
- [];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="+
313
- 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="+
314
- 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("-")+
315
- "-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,
316
- "",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=
317
- 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),
318
- 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,
319
- 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)&&
320
- 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");
321
- 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=>
322
- 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 "+
323
- 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"),
324
- 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:""}}};
325
- 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)}};
326
- 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;
327
- 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",()=>
328
- {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])&&
329
- 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");
330
- 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_);
331
- 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_=
332
- 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");
333
- (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();
334
- 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",
335
- [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,
336
- 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,
337
- 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.");
338
- 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==
339
- 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});
340
- //# sourceMappingURL=demo.compiled.debug.map