shaka-player 3.3.2 → 4.0.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 (389) hide show
  1. package/.csslintrc +11 -1
  2. package/.github/ISSUE_TEMPLATE/bug_report.md +1 -1
  3. package/.github/pull_request_template.md +6 -34
  4. package/.github/workflows/build-and-test.yaml +129 -0
  5. package/.github/workflows/custom-actions/prep-for-appspot/action.yaml +56 -0
  6. package/.github/workflows/custom-actions/set-commit-status/action.yaml +41 -0
  7. package/.github/workflows/demo-version-index.yaml +37 -0
  8. package/.github/workflows/nightly-demo.yaml +42 -0
  9. package/.github/workflows/release-please.yaml +168 -0
  10. package/.github/workflows/safari-homedir-launcher.sh +18 -0
  11. package/.github/workflows/selenium-lab-tests.yaml +92 -0
  12. package/.github/workflows/sync-labels.yaml +33 -0
  13. package/.github/workflows/update-issues.yaml +29 -0
  14. package/.github/workflows/validate-pr-title.yaml +35 -0
  15. package/AUTHORS +3 -0
  16. package/CHANGELOG.md +1866 -1675
  17. package/CONTRIBUTING.md +2 -2
  18. package/CONTRIBUTORS +3 -0
  19. package/README.md +16 -13
  20. package/app-engine/README.md +9 -0
  21. package/app-engine/demo-version-index/README.md +14 -0
  22. package/app-engine/demo-version-index/app.yaml +28 -0
  23. package/app-engine/demo-version-index/generate.py +164 -0
  24. package/app-engine/demo-version-index/main.py +11 -0
  25. package/app-engine/demo-version-index/requirements.txt +5 -0
  26. package/app-engine/demo-version-index/templates/index.html +114 -0
  27. package/app-engine/shaka-player-demo/README.md +18 -0
  28. package/app-engine/shaka-player-demo/app.yaml +61 -0
  29. package/app-engine/shaka-player-demo/main.py +95 -0
  30. package/app-engine/shaka-player-demo/posters/10yo.png +0 -0
  31. package/app-engine/shaka-player-demo/posters/10yo.xcf +0 -0
  32. package/app-engine/shaka-player-demo/posters/1yo.jpg +0 -0
  33. package/app-engine/shaka-player-demo/posters/2yo.png +0 -0
  34. package/app-engine/shaka-player-demo/posters/2yo.xcf +0 -0
  35. package/app-engine/shaka-player-demo/posters/3yo.png +0 -0
  36. package/app-engine/shaka-player-demo/posters/3yo.xcf +0 -0
  37. package/app-engine/shaka-player-demo/posters/4yo.png +0 -0
  38. package/app-engine/shaka-player-demo/posters/4yo.xcf +0 -0
  39. package/app-engine/shaka-player-demo/posters/5yo.png +0 -0
  40. package/app-engine/shaka-player-demo/posters/5yo.xcf +0 -0
  41. package/app-engine/shaka-player-demo/posters/6yo.png +0 -0
  42. package/app-engine/shaka-player-demo/posters/6yo.xcf +0 -0
  43. package/app-engine/shaka-player-demo/posters/7yo.png +0 -0
  44. package/app-engine/shaka-player-demo/posters/7yo.xcf +0 -0
  45. package/app-engine/shaka-player-demo/posters/8yo.png +0 -0
  46. package/app-engine/shaka-player-demo/posters/8yo.xcf +0 -0
  47. package/app-engine/shaka-player-demo/posters/9yo.png +0 -0
  48. package/app-engine/shaka-player-demo/posters/9yo.xcf +0 -0
  49. package/app-engine/shaka-player-demo/posters/audioOnly.gif +0 -0
  50. package/app-engine/shaka-player-demo/posters/audioRickRoll.gif +0 -0
  51. package/app-engine/shaka-player-demo/posters/colorbars.gif +0 -0
  52. package/app-engine/shaka-player-demo/posters/fireworks.jpg +0 -0
  53. package/app-engine/shaka-player-demo/posters/party-hat.png +0 -0
  54. package/app-engine/shaka-player-demo/posters/sources.txt +46 -0
  55. package/app-engine/shaka-player-demo/posters/standard.png +0 -0
  56. package/app-engine/shaka-player-demo/posters/trek.jpg +0 -0
  57. package/app-engine/shaka-player-demo/posters/valentines.png +0 -0
  58. package/app-engine/shaka-player-demo/posters/zombie.jpg +0 -0
  59. package/app-engine/shaka-player-demo/posters.py +110 -0
  60. package/app-engine/shaka-player-demo/requirements.txt +5 -0
  61. package/app-engine/shaka-player-demo/time.txt +1 -0
  62. package/build/README.md +3 -3
  63. package/build/checkversion.py +1 -1
  64. package/build/compiler.py +1 -1
  65. package/build/conformance.textproto +13 -0
  66. package/build/docker/Dockerfile +20 -0
  67. package/build/docker/docker-compose.yml +10 -0
  68. package/build/gendeps.py +18 -15
  69. package/build/shaka-lab.yaml +161 -0
  70. package/build/shakaBuildHelpers.py +4 -29
  71. package/build/test.py +94 -29
  72. package/build/types/core +0 -1
  73. package/build/types/polyfill +1 -3
  74. package/build/wrapper.template.js +2 -2
  75. package/demo/TengwarTelcontar.woff2 +0 -0
  76. package/demo/asset_card.js +1 -2
  77. package/demo/cast_receiver/index.html +1 -1
  78. package/demo/cast_receiver/receiver_app.css +14 -14
  79. package/demo/common/asset.js +17 -1
  80. package/demo/common/assets.js +31 -0
  81. package/demo/common/message_ids.js +6 -3
  82. package/demo/config.js +10 -12
  83. package/demo/custom.js +39 -1
  84. package/demo/customWarning.txt +2 -2
  85. package/demo/demo.less +29 -18
  86. package/demo/demo_uncompiled.js +1 -13
  87. package/demo/demo_utils.js +0 -1
  88. package/demo/index.html +1 -1
  89. package/demo/locales/en.json +6 -3
  90. package/demo/locales/source.json +22 -10
  91. package/demo/main.js +12 -9
  92. package/demo/search.js +2 -1
  93. package/dist/controls.css +3 -3
  94. package/dist/controls.css.map +1 -1
  95. package/dist/demo.compiled.debug.js +236 -232
  96. package/dist/demo.compiled.debug.map +4 -4
  97. package/dist/demo.compiled.js +236 -232
  98. package/dist/demo.compiled.map +4 -4
  99. package/dist/demo.css +1 -1
  100. package/dist/demo.css.map +1 -1
  101. package/dist/deps.js +229 -226
  102. package/dist/locales.js +34 -32
  103. package/dist/receiver.compiled.debug.js +75 -73
  104. package/dist/receiver.compiled.debug.map +4 -4
  105. package/dist/receiver.compiled.js +75 -73
  106. package/dist/receiver.compiled.map +4 -4
  107. package/dist/shaka-player.compiled.d.ts +321 -314
  108. package/dist/shaka-player.compiled.debug.d.ts +321 -314
  109. package/dist/shaka-player.compiled.debug.externs.js +140 -129
  110. package/dist/shaka-player.compiled.debug.js +527 -592
  111. package/dist/shaka-player.compiled.debug.map +4 -4
  112. package/dist/shaka-player.compiled.externs.js +140 -129
  113. package/dist/shaka-player.compiled.js +836 -860
  114. package/dist/shaka-player.compiled.map +4 -4
  115. package/dist/shaka-player.ui.d.ts +367 -358
  116. package/dist/shaka-player.ui.debug.d.ts +367 -358
  117. package/dist/shaka-player.ui.debug.externs.js +148 -129
  118. package/dist/shaka-player.ui.debug.js +586 -649
  119. package/dist/shaka-player.ui.debug.map +4 -4
  120. package/dist/shaka-player.ui.externs.js +148 -129
  121. package/dist/shaka-player.ui.js +1008 -1028
  122. package/dist/shaka-player.ui.map +4 -4
  123. package/docs/design/REDESIGN.md +33 -33
  124. package/docs/design/bg-fetch.md +2 -2
  125. package/docs/design/codec_preferences.md +1 -1
  126. package/docs/design/dash-audio-channels.md +3 -3
  127. package/docs/design/dash-manifests.md +1 -1
  128. package/docs/design/gap-jumping.md +3 -3
  129. package/docs/design/preload.md +2 -2
  130. package/docs/tutorials/config.md +0 -2
  131. package/docs/tutorials/drm-config.md +5 -0
  132. package/docs/tutorials/fairplay.md +7 -22
  133. package/docs/tutorials/faq.md +8 -19
  134. package/docs/tutorials/index.json +3 -8
  135. package/docs/tutorials/plugins.md +4 -6
  136. package/docs/tutorials/selenium-grid-config.md +122 -0
  137. package/docs/tutorials/upgrade.md +83 -11
  138. package/docs/tutorials/welcome.md +10 -2
  139. package/externs/cmcd.js +1 -1
  140. package/externs/polyfill.js +15 -0
  141. package/externs/shaka/manifest.js +5 -1
  142. package/externs/shaka/net.js +12 -0
  143. package/externs/shaka/offline.js +5 -1
  144. package/externs/shaka/player.js +39 -32
  145. package/externs/shaka/text.js +12 -12
  146. package/externs/sourcebuffer.js +15 -0
  147. package/karma.conf.js +137 -30
  148. package/lib/abr/simple_abr_manager.js +12 -6
  149. package/lib/ads/client_side_ad.js +13 -2
  150. package/lib/ads/client_side_ad_manager.js +22 -4
  151. package/lib/cast/cast_proxy.js +3 -4
  152. package/lib/cast/cast_utils.js +0 -1
  153. package/lib/cea/cea608_data_channel.js +2 -2
  154. package/lib/cea/cea708_service.js +5 -4
  155. package/lib/cea/mp4_cea_parser.js +11 -5
  156. package/lib/cea/sei_processor.js +6 -3
  157. package/lib/dash/content_protection.js +85 -5
  158. package/lib/dash/dash_parser.js +10 -12
  159. package/lib/dash/mpd_utils.js +4 -5
  160. package/lib/dash/segment_list.js +1 -2
  161. package/lib/dash/segment_template.js +3 -3
  162. package/lib/hls/hls_parser.js +386 -749
  163. package/lib/hls/manifest_text_parser.js +5 -6
  164. package/lib/media/adaptation_set.js +1 -2
  165. package/lib/media/content_workarounds.js +2 -2
  166. package/lib/media/drm_engine.js +105 -55
  167. package/lib/media/gap_jumping_controller.js +10 -45
  168. package/lib/media/media_source_engine.js +90 -17
  169. package/lib/media/mp4_segment_index_parser.js +1 -4
  170. package/lib/media/playhead.js +4 -7
  171. package/lib/media/presentation_timeline.js +19 -10
  172. package/lib/media/segment_index.js +13 -46
  173. package/lib/media/segment_reference.js +47 -1
  174. package/lib/media/streaming_engine.js +35 -17
  175. package/lib/media/time_ranges_utils.js +5 -12
  176. package/lib/media/video_wrapper.js +1 -1
  177. package/lib/net/networking_engine.js +4 -1
  178. package/lib/offline/indexeddb/v1_storage_cell.js +1 -0
  179. package/lib/offline/indexeddb/v2_storage_cell.js +1 -0
  180. package/lib/offline/manifest_converter.js +1 -0
  181. package/lib/offline/storage.js +104 -136
  182. package/lib/player.js +50 -216
  183. package/lib/polyfill/all.js +2 -3
  184. package/lib/polyfill/encryption_scheme.js +1 -1
  185. package/lib/polyfill/media_capabilities.js +15 -9
  186. package/lib/polyfill/mediasource.js +0 -28
  187. package/lib/polyfill/patchedmediakeys_nop.js +2 -0
  188. package/lib/polyfill/patchedmediakeys_webkit.js +2 -0
  189. package/lib/polyfill/symbol.js +46 -0
  190. package/lib/text/cue.js +1 -7
  191. package/lib/text/lrc_text_parser.js +8 -0
  192. package/lib/text/mp4_ttml_parser.js +8 -0
  193. package/lib/text/mp4_vtt_parser.js +8 -0
  194. package/lib/text/sbv_text_parser.js +8 -0
  195. package/lib/text/simple_text_displayer.js +3 -8
  196. package/lib/text/srt_text_parser.js +8 -0
  197. package/lib/text/ssa_text_parser.js +8 -0
  198. package/lib/text/text_engine.js +19 -3
  199. package/lib/text/ttml_text_parser.js +16 -5
  200. package/lib/text/ui_text_displayer.js +2 -8
  201. package/lib/text/vtt_text_parser.js +24 -2
  202. package/lib/text/web_vtt_generator.js +1 -7
  203. package/lib/util/buffer_utils.js +1 -3
  204. package/lib/util/ebml_parser.js +3 -3
  205. package/lib/util/error.js +10 -14
  206. package/lib/util/fairplay_utils.js +109 -0
  207. package/lib/util/functional.js +0 -42
  208. package/lib/util/iterables.js +0 -46
  209. package/lib/util/mime_utils.js +2 -0
  210. package/lib/util/mp4_box_parsers.js +1 -4
  211. package/lib/util/mp4_parser.js +5 -7
  212. package/lib/util/periods.js +10 -11
  213. package/lib/util/platform.js +48 -3
  214. package/lib/util/player_configuration.js +12 -6
  215. package/lib/util/pssh.js +24 -8
  216. package/lib/util/stream_utils.js +96 -25
  217. package/lib/util/string_utils.js +3 -5
  218. package/lib/util/uint8array_utils.js +3 -21
  219. package/lib/util/xml_utils.js +16 -8
  220. package/package.json +61 -36
  221. package/roadmap.md +27 -27
  222. package/shaka-player.uncompiled.js +1 -3
  223. package/test/abr/simple_abr_manager_unit.js +3 -8
  224. package/test/ads/ad_manager_unit.js +0 -6
  225. package/test/cast/cast_proxy_unit.js +0 -8
  226. package/test/cast/cast_receiver_integration.js +1 -18
  227. package/test/cast/cast_receiver_unit.js +1 -9
  228. package/test/cast/cast_sender_unit.js +0 -6
  229. package/test/cast/cast_utils_unit.js +1 -13
  230. package/test/cea/cea608_memory_unit.js +0 -5
  231. package/test/cea/cea708_service_unit.js +0 -7
  232. package/test/cea/cea708_window_unit.js +0 -5
  233. package/test/cea/cea_decoder_unit.js +0 -6
  234. package/test/cea/dtvcc_packet_builder_unit.js +0 -3
  235. package/test/cea/dtvcc_packet_unit.js +0 -5
  236. package/test/cea/mp4_cea_parser_unit.js +0 -4
  237. package/test/dash/dash_parser_content_protection_unit.js +45 -10
  238. package/test/dash/dash_parser_live_unit.js +2 -15
  239. package/test/dash/dash_parser_manifest_unit.js +2 -40
  240. package/test/dash/dash_parser_segment_base_unit.js +1 -8
  241. package/test/dash/dash_parser_segment_list_unit.js +1 -7
  242. package/test/dash/dash_parser_segment_template_unit.js +3 -13
  243. package/test/dash/mpd_utils_unit.js +3 -11
  244. package/test/demo/demo_unit.js +2 -6
  245. package/test/deprecate/enforcer_unit.js +0 -4
  246. package/test/deprecate/version_unit.js +0 -2
  247. package/test/hls/hls_live_unit.js +101 -234
  248. package/test/hls/hls_parser_unit.js +517 -447
  249. package/test/hls/manifest_text_parser_unit.js +0 -10
  250. package/test/media/adaptation_set_criteria_unit.js +3 -7
  251. package/test/media/adaptation_set_unit.js +0 -2
  252. package/test/media/buffering_observer_unit.js +1 -4
  253. package/test/media/closed_caption_parser_unit.js +0 -3
  254. package/test/media/drm_engine_integration.js +2 -15
  255. package/test/media/drm_engine_unit.js +90 -144
  256. package/test/media/manifest_parser_unit.js +0 -4
  257. package/test/media/media_source_engine_integration.js +26 -10
  258. package/test/media/media_source_engine_unit.js +8 -20
  259. package/test/media/mp4_segment_index_parser_unit.js +0 -4
  260. package/test/media/play_rate_controller_unit.js +0 -4
  261. package/test/media/playhead_unit.js +35 -207
  262. package/test/media/presentation_timeline_unit.js +4 -7
  263. package/test/media/quality_observer_unit.js +0 -4
  264. package/test/media/region_observer_unit.js +1 -6
  265. package/test/media/region_timeline_unit.js +0 -3
  266. package/test/media/segment_index_unit.js +15 -31
  267. package/test/media/segment_reference_unit.js +0 -3
  268. package/test/media/stall_detector_unit.js +0 -5
  269. package/test/media/streaming_engine_integration.js +13 -75
  270. package/test/media/streaming_engine_unit.js +14 -37
  271. package/test/media/time_ranges_utils_unit.js +0 -7
  272. package/test/media/transmuxer_integration.js +0 -6
  273. package/test/media/webm_segment_index_parser_unit.js +0 -4
  274. package/test/net/data_uri_plugin_unit.js +0 -7
  275. package/test/net/http_plugin_unit.js +0 -9
  276. package/test/net/networking_engine_unit.js +0 -11
  277. package/test/offline/download_progress_estimator_unit.js +0 -2
  278. package/test/offline/indexeddb_storage_unit.js +0 -6
  279. package/test/offline/manifest_convert_unit.js +34 -12
  280. package/test/offline/offline_integration.js +1 -10
  281. package/test/offline/offline_manifest_parser_unit.js +1 -6
  282. package/test/offline/offline_scheme_unit.js +0 -8
  283. package/test/offline/offline_uri_unit.js +0 -2
  284. package/test/offline/storage_compatibility_unit.js +1 -14
  285. package/test/offline/storage_integration.js +6 -31
  286. package/test/player_external.js +1 -15
  287. package/test/player_integration.js +38 -28
  288. package/test/player_load_graph_integration.js +1 -6
  289. package/test/player_src_equals_external.js +3 -9
  290. package/test/player_src_equals_integration.js +0 -7
  291. package/test/player_unit.js +78 -37
  292. package/test/routing/walker_unit.js +0 -8
  293. package/test/test/assets/large_file.mpd +1 -1
  294. package/test/test/boot.js +75 -22
  295. package/test/test/externs/jasmine.js +2 -2
  296. package/test/test/externs/karma.js +4 -0
  297. package/test/test/namespace.js +10 -0
  298. package/test/test/util/canned_idb.js +0 -8
  299. package/test/test/util/cea_utils.js +0 -6
  300. package/test/test/util/dash_parser_util.js +0 -13
  301. package/test/test/util/fake_ad.js +0 -3
  302. package/test/test/util/fake_ad_manager.js +0 -9
  303. package/test/test/util/fake_demo_main.js +0 -5
  304. package/test/test/util/fake_drm_engine.js +0 -6
  305. package/test/test/util/fake_media_source_engine.js +11 -11
  306. package/test/test/util/fake_networking_engine.js +0 -5
  307. package/test/test/util/fake_text_displayer.js +0 -5
  308. package/test/test/util/indexeddb_utils.js +1 -10
  309. package/test/test/util/jasmine_fetch.js +0 -1
  310. package/test/test/util/loader.js +0 -18
  311. package/test/test/util/manifest_generator.js +12 -15
  312. package/test/test/util/manifest_parser_util.js +4 -7
  313. package/test/test/util/offline_utils.js +1 -5
  314. package/test/test/util/simple_fakes.js +9 -26
  315. package/test/test/util/stream_generator.js +0 -14
  316. package/test/test/util/streaming_engine_util.js +1 -15
  317. package/test/test/util/test_scheme.js +25 -20
  318. package/test/test/util/ttml_utils.js +0 -2
  319. package/test/test/util/ui_utils.js +0 -9
  320. package/test/test/util/util.js +9 -23
  321. package/test/test/util/waiter.js +84 -43
  322. package/test/text/cue_integration.js +2 -6
  323. package/test/text/lrc_text_parser_unit.js +6 -11
  324. package/test/text/mp4_ttml_parser_unit.js +6 -10
  325. package/test/text/mp4_vtt_parser_unit.js +7 -12
  326. package/test/text/sbv_text_parser_unit.js +5 -10
  327. package/test/text/simple_text_displayer_unit.js +1 -8
  328. package/test/text/srt_text_parser_unit.js +5 -10
  329. package/test/text/ssa_text_parser_unit.js +17 -34
  330. package/test/text/text_engine_unit.js +47 -12
  331. package/test/text/text_track_integration.js +0 -2
  332. package/test/text/ttml_text_parser_unit.js +79 -88
  333. package/test/text/ui_text_displayer_unit.js +44 -41
  334. package/test/text/vtt_text_parser_unit.js +55 -66
  335. package/test/text/web_vtt_generator_unit.js +0 -3
  336. package/test/ui/ad_ui_unit.js +0 -11
  337. package/test/ui/localization_unit.js +0 -3
  338. package/test/ui/text_displayer_layout_unit.js +1 -12
  339. package/test/ui/ui_customization_unit.js +0 -6
  340. package/test/ui/ui_integration.js +0 -32
  341. package/test/ui/ui_unit.js +28 -17
  342. package/test/util/abortable_operation_unit.js +4 -9
  343. package/test/util/array_utils_unit.js +0 -2
  344. package/test/util/buffer_utils_unit.js +0 -2
  345. package/test/util/cmcd_manager_unit.js +3 -3
  346. package/test/util/data_view_reader_unit.js +0 -4
  347. package/test/util/ebml_parser_unit.js +0 -4
  348. package/test/util/event_manager_unit.js +0 -3
  349. package/test/util/fake_event_target_unit.js +0 -5
  350. package/test/util/iterables_unit.js +0 -64
  351. package/test/util/language_utils_unit.js +0 -3
  352. package/test/util/manifest_parser_utils_unit.js +0 -2
  353. package/test/util/mp4_box_parsers_unit.js +0 -5
  354. package/test/util/mp4_parser_unit.js +0 -4
  355. package/test/util/multi_map_unit.js +0 -3
  356. package/test/util/object_utils_unit.js +0 -2
  357. package/test/util/periods_unit.js +14 -7
  358. package/test/util/pssh_unit.js +0 -5
  359. package/test/util/state_history_unit.js +0 -2
  360. package/test/util/stream_utils_unit.js +26 -15
  361. package/test/util/string_utils_unit.js +0 -6
  362. package/test/util/text_parser_unit.js +0 -2
  363. package/test/util/xml_utils_unit.js +0 -4
  364. package/ui/controls.js +65 -40
  365. package/ui/fullscreen_button.js +26 -6
  366. package/ui/less/ad_controls.less +6 -6
  367. package/ui/less/buttons.less +6 -6
  368. package/ui/less/containers.less +10 -12
  369. package/ui/less/overflow_menu.less +4 -4
  370. package/ui/less/range_elements.less +7 -2
  371. package/ui/less/tooltip.less +4 -4
  372. package/ui/locales/en.json +1 -0
  373. package/ui/locales/sjn-translations.yaml +257 -0
  374. package/ui/locales/sjn.json +42 -0
  375. package/ui/locales/source.json +5 -0
  376. package/ui/resolution_selection.js +31 -33
  377. package/ui/seek_bar.js +2 -1
  378. package/ui/ui.js +0 -17
  379. package/.github/workflows/build_and_test.yaml +0 -73
  380. package/.github/workflows/release.yaml +0 -53
  381. package/docs/tutorials/upgrade-v2-5.md +0 -441
  382. package/docs/tutorials/upgrade-v3.md +0 -38
  383. package/externs/svgelement.js +0 -18
  384. package/externs/webcrypto.js +0 -18
  385. package/lib/polyfill/mathround.js +0 -49
  386. package/lib/polyfill/patchedmediakeys_apple.js +0 -744
  387. package/lib/polyfill/patchedmediakeys_ms.js +0 -698
  388. package/lib/util/mutex.js +0 -52
  389. package/test/util/functional_unit.js +0 -82
@@ -248,14 +248,12 @@ shaka.util.Error.Code = {
248
248
  'HLS_INVALID_PLAYLIST_HIERARCHY': 4017,
249
249
  'DASH_DUPLICATE_REPRESENTATION_ID': 4018,
250
250
  'HLS_MULTIPLE_MEDIA_INIT_SECTIONS_FOUND': 4020,
251
- 'HLS_MASTER_PLAYLIST_NOT_PROVIDED': 4022,
252
251
  'HLS_REQUIRED_ATTRIBUTE_MISSING': 4023,
253
252
  'HLS_REQUIRED_TAG_MISSING': 4024,
254
253
  'HLS_COULD_NOT_GUESS_CODECS': 4025,
255
254
  'HLS_KEYFORMATS_NOT_SUPPORTED': 4026,
256
255
  'DASH_UNSUPPORTED_XLINK_ACTUATE': 4027,
257
256
  'DASH_XLINK_DEPTH_LIMIT': 4028,
258
- 'HLS_COULD_NOT_PARSE_SEGMENT_START_TIME': 4030,
259
257
  'CONTENT_UNSUPPORTED_BY_BROWSER': 4032,
260
258
  'CANNOT_ADD_EXTERNAL_TEXT_TO_LIVE_STREAM': 4033,
261
259
  'HLS_AES_128_ENCRYPTION_NOT_SUPPORTED': 4034,
@@ -264,6 +262,7 @@ shaka.util.Error.Code = {
264
262
  'PERIOD_FLATTENING_FAILED': 4037,
265
263
  'INCONSISTENT_DRM_ACROSS_PERIODS': 4038,
266
264
  'HLS_VARIABLE_NOT_FOUND': 4039,
265
+ 'HLS_MSE_ENCRYPTED_MP2T_NOT_SUPPORTED': 4040,
267
266
  'STREAMING_ENGINE_STARTUP_INVALID_STATE': 5006,
268
267
  'NO_RECOGNIZED_KEY_SYSTEMS': 6000,
269
268
  'REQUESTED_KEY_SYSTEM_CONFIG_UNAVAILABLE': 6001,
@@ -711,10 +710,6 @@ shaka.text.Cue.prototype.isContainer;
711
710
  * @override
712
711
  */
713
712
  shaka.text.Cue.prototype.lineBreak;
714
- /**
715
- * @override
716
- */
717
- shaka.text.Cue.prototype.spacer;
718
713
  /**
719
714
  * @override
720
715
  */
@@ -1031,14 +1026,6 @@ shaka.util.StringUtils = class {
1031
1026
  * @summary A set of Uint8Array utility functions.
1032
1027
  */
1033
1028
  shaka.util.Uint8ArrayUtils = class {
1034
- /**
1035
- * Compare two Uint8Arrays for equality.
1036
- * @param {Uint8Array} arr1
1037
- * @param {Uint8Array} arr2
1038
- * @return {boolean}
1039
- * @deprecated
1040
- */
1041
- static equal(arr1, arr2) {}
1042
1029
  /**
1043
1030
  * Convert a buffer to a base64 string. The output will be standard
1044
1031
  * alphabet as opposed to base64url safe alphabet.
@@ -1081,6 +1068,19 @@ shaka.util.Uint8ArrayUtils = class {
1081
1068
  */
1082
1069
  static concat(...varArgs) {}
1083
1070
  };
1071
+ /**
1072
+ * @summary A set of utility functions for dealing with MIME types.
1073
+ */
1074
+ shaka.util.MimeUtils = class {
1075
+ /**
1076
+ * Takes a MIME type and optional codecs string and produces the full MIME
1077
+ * type.
1078
+ * @param {string} mimeType
1079
+ * @param {string=} codecs
1080
+ * @return {string}
1081
+ */
1082
+ static getFullType(mimeType, codecs) {}
1083
+ };
1084
1084
  /**
1085
1085
  * @summary Manages text parsers and cues.
1086
1086
  * @implements {shaka.util.IDestroyable}
@@ -1521,35 +1521,6 @@ shaka.util.EventManager = class {
1521
1521
  * @typedef {function(!Event)}
1522
1522
  */
1523
1523
  shaka.util.EventManager.ListenerType;
1524
- /**
1525
- * @summary A set of FairPlay utility functions.
1526
- */
1527
- shaka.util.FairPlayUtils = class {
1528
- /**
1529
- * Using the default method, extract a content ID from the init data. This is
1530
- * based on the FairPlay example documentation.
1531
- * @param {!BufferSource} initData
1532
- * @return {string}
1533
- */
1534
- static defaultGetContentId(initData) {}
1535
- /**
1536
- * Transforms the init data buffer using the given data. The format is:
1537
- * <pre>
1538
- * [4 bytes] initDataSize
1539
- * [initDataSize bytes] initData
1540
- * [4 bytes] contentIdSize
1541
- * [contentIdSize bytes] contentId
1542
- * [4 bytes] certSize
1543
- * [certSize bytes] cert
1544
- * </pre>
1545
- * @param {!BufferSource} initData
1546
- * @param {!BufferSource|string} contentId
1547
- * @param {?BufferSource} cert The server certificate; this will throw if not
1548
- * provided.
1549
- * @return {!Uint8Array}
1550
- */
1551
- static initDataTransform(initData, contentId, cert) {}
1552
- };
1553
1524
  /**
1554
1525
  * @summary An interface to register manifest parsers.
1555
1526
  */
@@ -1825,8 +1796,14 @@ shaka.media.SegmentReference = class {
1825
1796
  * The explicit duration of an individual tile within the tiles grid.
1826
1797
  * If not provided, the duration should be automatically calculated based on
1827
1798
  * the duration of the reference.
1799
+ * @param {?number=} syncTime
1800
+ * A time value, expressed in the same scale as the start and end time, which
1801
+ * is used to synchronize between streams.
1802
+ * @param {shaka.media.SegmentReference.Status=} status
1803
+ * The segment status is used to indicate that a segment does not exist or is
1804
+ * not available.
1828
1805
  */
1829
- constructor(startTime, endTime, uris, startByte, endByte, initSegmentReference, timestampOffset, appendWindowStart, appendWindowEnd, partialReferences, tilesLayout, tileDuration) {}
1806
+ constructor(startTime, endTime, uris, startByte, endByte, initSegmentReference, timestampOffset, appendWindowStart, appendWindowEnd, partialReferences, tilesLayout, tileDuration, syncTime, status) {}
1830
1807
  /**
1831
1808
  * Creates and returns the URIs of the resource containing the segment.
1832
1809
  * @return {!Array.<string>}
@@ -1866,6 +1843,25 @@ shaka.media.SegmentReference = class {
1866
1843
  * @return {?number}
1867
1844
  */
1868
1845
  getTileDuration() {}
1846
+ /**
1847
+ * Returns the segment's status.
1848
+ * @return {shaka.media.SegmentReference.Status}
1849
+ */
1850
+ getStatus() {}
1851
+ /**
1852
+ * Mark the reference as unavailable.
1853
+ */
1854
+ markAsUnavailable() {}
1855
+ };
1856
+ /**
1857
+ * Rather than using booleans to communicate what the state of the reference,
1858
+ * we have this enum.
1859
+ * @enum {number}
1860
+ */
1861
+ shaka.media.SegmentReference.Status = {
1862
+ AVAILABLE: 0,
1863
+ UNAVAILABLE: 1,
1864
+ MISSING: 2
1869
1865
  };
1870
1866
  /**
1871
1867
  * PresentationTimeline.
@@ -1986,8 +1982,9 @@ shaka.media.PresentationTimeline = class {
1986
1982
  * Gets the presentation's current segment availability end time. Segments
1987
1983
  * starting after this time should be assumed to be unavailable.
1988
1984
  * @return {number} The current segment availability end time, in seconds,
1989
- * relative to the start of the presentation. Always returns the
1990
- * presentation's duration for video-on-demand.
1985
+ * relative to the start of the presentation. For VOD, the availability
1986
+ * end time is the content's duration. If the Player's playRangeEnd
1987
+ * configuration is used, this can override the duration.
1991
1988
  */
1992
1989
  getSegmentAvailabilityEnd() {}
1993
1990
  /**
@@ -2040,13 +2037,6 @@ shaka.media.SegmentIndex = class {
2040
2037
  * (ascending) and second by their end times (ascending).
2041
2038
  */
2042
2039
  constructor(references) {}
2043
- /**
2044
- * SegmentIndex used to be an IDestroyable. Now it is an IReleasable.
2045
- * This method is provided for backward compatibility.
2046
- * @deprecated
2047
- * @return {!Promise}
2048
- */
2049
- destroy() {}
2050
2040
  /**
2051
2041
  * @override
2052
2042
  */
@@ -2081,20 +2071,6 @@ shaka.media.SegmentIndex = class {
2081
2071
  * times.
2082
2072
  */
2083
2073
  offset(offset) {}
2084
- /**
2085
- * Merges the given SegmentReferences. Supports extending the original
2086
- * references only. Will replace old references with equivalent new ones, and
2087
- * keep any unique old ones.
2088
- * Used, for example, by the DASH and HLS parser, where manifests may not list
2089
- * all available references, so we must keep available references in memory to
2090
- * fill the availability window.
2091
- * @param {!Array.<!shaka.media.SegmentReference>} references The list of
2092
- * SegmentReferences, which must be sorted first by their start times
2093
- * (ascending) and second by their end times (ascending).
2094
- * @deprecated Not used directly by our own parsers, so will become private in
2095
- * v4. Use mergeAndEvict() instead.
2096
- */
2097
- merge(references) {}
2098
2074
  /**
2099
2075
  * Merges the given SegmentReferences and evicts the ones that end before the
2100
2076
  * given time. Supports extending the original references only.
@@ -2163,13 +2139,6 @@ shaka.media.SegmentIterator = class {
2163
2139
  * @param {number} partialSegmentIndex
2164
2140
  */
2165
2141
  constructor(segmentIndex, index, partialSegmentIndex) {}
2166
- /**
2167
- * Move the iterator to a given timestamp in the underlying SegmentIndex.
2168
- * @param {number} time
2169
- * @return {shaka.media.SegmentReference}
2170
- * @deprecated Use SegmentIndex.getIteratorForTime instead
2171
- */
2172
- seek(time) {}
2173
2142
  /**
2174
2143
  * @return {shaka.media.SegmentReference}
2175
2144
  */
@@ -2369,6 +2338,10 @@ shaka.util.ConfigUtils = class {
2369
2338
  * @final
2370
2339
  */
2371
2340
  shaka.util.PlayerConfiguration = class {
2341
+ /**
2342
+ * @return {shaka.extern.PlayerConfiguration}
2343
+ */
2344
+ static createDefault() {}
2372
2345
  /**
2373
2346
  * Merges the given configuration changes into the given destination. This
2374
2347
  * uses the default Player configurations as the template.
@@ -2831,21 +2804,6 @@ shaka.Player = class extends shaka.util.FakeEventTarget {
2831
2804
  * @return {shaka.extern.Stats}
2832
2805
  */
2833
2806
  getStats() {}
2834
- /**
2835
- * Adds the given text track to the loaded manifest. <code>load()</code> must
2836
- * resolve before calling. The presentation must have a duration.
2837
- * This returns the created track, which can immediately be selected by the
2838
- * application. The track will not be automatically selected.
2839
- * @param {string} uri
2840
- * @param {string} language
2841
- * @param {string} kind
2842
- * @param {string=} mimeType
2843
- * @param {string=} codec
2844
- * @param {string=} label
2845
- * @param {boolean=} forced
2846
- * @return {shaka.extern.Track}
2847
- */
2848
- addTextTrack(uri, language, kind, mimeType, codec, label, forced) {}
2849
2807
  /**
2850
2808
  * Adds the given text track to the loaded manifest. <code>load()</code> must
2851
2809
  * resolve before calling. The presentation must have a duration.
@@ -2943,8 +2901,9 @@ shaka.ads.ClientSideAd = class {
2943
2901
  /**
2944
2902
  * @param {!google.ima.Ad} imaAd
2945
2903
  * @param {!google.ima.AdsManager} imaAdManager
2904
+ * @param {HTMLMediaElement} video
2946
2905
  */
2947
- constructor(imaAd, imaAdManager) {}
2906
+ constructor(imaAd, imaAdManager, video) {}
2948
2907
  /**
2949
2908
  * @override
2950
2909
  */
@@ -3721,12 +3680,6 @@ shaka.offline.Storage = class {
3721
3680
  * AbortableOperation.
3722
3681
  */
3723
3682
  store(uri, appMetadata, mimeType) {}
3724
- /**
3725
- * Returns true if an asset is currently downloading.
3726
- * @return {boolean}
3727
- * @deprecated
3728
- */
3729
- getStoreInProgress() {}
3730
3683
  /**
3731
3684
  * Removes the given stored content. This will also attempt to release the
3732
3685
  * licenses, if any.
@@ -3793,7 +3746,7 @@ shaka.polyfill.Aria = class {
3793
3746
  * @summary A polyfill to add support for EncryptionScheme queries in EME.
3794
3747
  * @see https://wicg.github.io/encrypted-media-encryption-scheme/
3795
3748
  * @see https://github.com/w3c/encrypted-media/pull/457
3796
- * @see https://github.com/google/eme-encryption-scheme-polyfill
3749
+ * @see https://github.com/shaka-project/eme-encryption-scheme-polyfill
3797
3750
  */
3798
3751
  shaka.polyfill.EncryptionScheme = class {
3799
3752
  /**
@@ -3814,16 +3767,6 @@ shaka.polyfill.Fullscreen = class {
3814
3767
  */
3815
3768
  static install() {}
3816
3769
  };
3817
- /**
3818
- * @summary A polyfill to patch math round bug on some browsers.
3819
- * @see https://stackoverflow.com/q/12830742
3820
- */
3821
- shaka.polyfill.MathRound = class {
3822
- /**
3823
- * Install the polyfill if needed.
3824
- */
3825
- static install() {}
3826
- };
3827
3770
  /**
3828
3771
  * @summary A polyfill to provide navigator.mediaCapabilities on all browsers.
3829
3772
  * This is necessary for Tizen 3, Xbox One and possibly others we have yet to
@@ -3863,28 +3806,6 @@ shaka.polyfill.Orientation = class {
3863
3806
  */
3864
3807
  static install() {}
3865
3808
  };
3866
- /**
3867
- * @summary A polyfill to implement modern, standardized EME on top of Apple's
3868
- * prefixed EME in Safari.
3869
- */
3870
- shaka.polyfill.PatchedMediaKeysApple = class {
3871
- /**
3872
- * Installs the polyfill if needed.
3873
- */
3874
- static install() {}
3875
- };
3876
- /**
3877
- * @summary A polyfill to implement
3878
- * {@link https://bit.ly/EmeMar15 EME draft 12 March 2015}
3879
- * on top of ms-prefixed
3880
- * {@link https://www.w3.org/TR/2014/WD-encrypted-media-20140218/ EME v20140218}
3881
- */
3882
- shaka.polyfill.PatchedMediaKeysMs = class {
3883
- /**
3884
- * Installs the polyfill if needed.
3885
- */
3886
- static install() {}
3887
- };
3888
3809
  /**
3889
3810
  * @summary A polyfill to stub out
3890
3811
  * {@link https://bit.ly/EmeMar15 EME draft 12 March 2015} on browsers without
@@ -3938,6 +3859,16 @@ shaka.polyfill.StorageEstimate = class {
3938
3859
  */
3939
3860
  static install() {}
3940
3861
  };
3862
+ /**
3863
+ * @summary A polyfill to provide Symbol.prototype.description in all browsers.
3864
+ * See: https://caniuse.com/mdn-javascript_builtins_symbol_description
3865
+ */
3866
+ shaka.polyfill.Symbol = class {
3867
+ /**
3868
+ * Install the polyfill if needed.
3869
+ */
3870
+ static install() {}
3871
+ };
3941
3872
  /**
3942
3873
  * @summary A polyfill to silence the play() Promise in HTML5 video.
3943
3874
  */
@@ -3976,6 +3907,10 @@ shaka.text.LrcTextParser = class {
3976
3907
  * @override
3977
3908
  */
3978
3909
  parseInit(data) {}
3910
+ /**
3911
+ * @override
3912
+ */
3913
+ setSequenceMode(sequenceMode) {}
3979
3914
  /**
3980
3915
  * @override
3981
3916
  */
@@ -3989,6 +3924,10 @@ shaka.text.TtmlTextParser = class {
3989
3924
  * @override
3990
3925
  */
3991
3926
  parseInit(data) {}
3927
+ /**
3928
+ * @override
3929
+ */
3930
+ setSequenceMode(sequenceMode) {}
3992
3931
  /**
3993
3932
  * @override
3994
3933
  */
@@ -4004,6 +3943,10 @@ shaka.text.Mp4TtmlParser = class {
4004
3943
  * @override
4005
3944
  */
4006
3945
  parseInit(data) {}
3946
+ /**
3947
+ * @override
3948
+ */
3949
+ setSequenceMode(sequenceMode) {}
4007
3950
  /**
4008
3951
  * @override
4009
3952
  */
@@ -4013,10 +3956,16 @@ shaka.text.Mp4TtmlParser = class {
4013
3956
  * @implements {shaka.extern.TextParser}
4014
3957
  */
4015
3958
  shaka.text.VttTextParser = class {
3959
+ /** Constructs a VTT parser. */
3960
+ constructor() {}
4016
3961
  /**
4017
3962
  * @override
4018
3963
  */
4019
3964
  parseInit(data) {}
3965
+ /**
3966
+ * @override
3967
+ */
3968
+ setSequenceMode(sequenceMode) {}
4020
3969
  /**
4021
3970
  * @override
4022
3971
  */
@@ -4032,6 +3981,10 @@ shaka.text.Mp4VttParser = class {
4032
3981
  * @override
4033
3982
  */
4034
3983
  parseInit(data) {}
3984
+ /**
3985
+ * @override
3986
+ */
3987
+ setSequenceMode(sequenceMode) {}
4035
3988
  /**
4036
3989
  * @override
4037
3990
  */
@@ -4045,6 +3998,10 @@ shaka.text.SbvTextParser = class {
4045
3998
  * @override
4046
3999
  */
4047
4000
  parseInit(data) {}
4001
+ /**
4002
+ * @override
4003
+ */
4004
+ setSequenceMode(sequenceMode) {}
4048
4005
  /**
4049
4006
  * @override
4050
4007
  */
@@ -4060,6 +4017,10 @@ shaka.text.SrtTextParser = class {
4060
4017
  * @override
4061
4018
  */
4062
4019
  parseInit(data) {}
4020
+ /**
4021
+ * @override
4022
+ */
4023
+ setSequenceMode(sequenceMode) {}
4063
4024
  /**
4064
4025
  * @override
4065
4026
  */
@@ -4081,11 +4042,61 @@ shaka.text.SsaTextParser = class {
4081
4042
  * @override
4082
4043
  */
4083
4044
  parseInit(data) {}
4045
+ /**
4046
+ * @override
4047
+ */
4048
+ setSequenceMode(sequenceMode) {}
4084
4049
  /**
4085
4050
  * @override
4086
4051
  */
4087
4052
  parseMedia(data, time) {}
4088
4053
  };
4054
+ /**
4055
+ * @summary A set of FairPlay utility functions.
4056
+ */
4057
+ shaka.util.FairPlayUtils = class {
4058
+ /**
4059
+ * Check if FairPlay is supported.
4060
+ * @return {!Promise.<boolean>}
4061
+ */
4062
+ static isFairPlaySupported() {}
4063
+ /**
4064
+ * Using the default method, extract a content ID from the init data. This is
4065
+ * based on the FairPlay example documentation.
4066
+ * @param {!BufferSource} initData
4067
+ * @return {string}
4068
+ */
4069
+ static defaultGetContentId(initData) {}
4070
+ /**
4071
+ * Transforms the init data buffer using the given data. The format is:
4072
+ * <pre>
4073
+ * [4 bytes] initDataSize
4074
+ * [initDataSize bytes] initData
4075
+ * [4 bytes] contentIdSize
4076
+ * [contentIdSize bytes] contentId
4077
+ * [4 bytes] certSize
4078
+ * [certSize bytes] cert
4079
+ * </pre>
4080
+ * @param {!BufferSource} initData
4081
+ * @param {!BufferSource|string} contentId
4082
+ * @param {?BufferSource} cert The server certificate; this will throw if not
4083
+ * provided.
4084
+ * @return {!Uint8Array}
4085
+ */
4086
+ static initDataTransform(initData, contentId, cert) {}
4087
+ /**
4088
+ * SPC FairPlay request.
4089
+ * @param {shaka.net.NetworkingEngine.RequestType} type
4090
+ * @param {shaka.extern.Request} request
4091
+ */
4092
+ static spcFairPlayRequest(type, request) {}
4093
+ /**
4094
+ * Common FairPlay response transform for some DRMs providers.
4095
+ * @param {shaka.net.NetworkingEngine.RequestType} type
4096
+ * @param {shaka.extern.Response} response
4097
+ */
4098
+ static commonFairPlayResponse(type, response) {}
4099
+ };
4089
4100
  /**
4090
4101
  * @implements {shaka.extern.IUIElement}
4091
4102
  * @abstract
@@ -4390,6 +4401,14 @@ shaka.ui.Controls = class extends shaka.util.FakeEventTarget {
4390
4401
  anySettingsMenusAreOpen() {}
4391
4402
  /** */
4392
4403
  hideSettingsMenus() {}
4404
+ /**
4405
+ * @return {boolean}
4406
+ */
4407
+ isFullScreenSupported() {}
4408
+ /**
4409
+ * @return {boolean}
4410
+ */
4411
+ isFullScreenEnabled() {}
4393
4412
  /** */
4394
4413
  toggleFullScreen() {}
4395
4414
  /** */