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
@@ -186,10 +186,6 @@ shaka.text.Cue.prototype.isContainer;
186
186
  * @override
187
187
  */
188
188
  shaka.text.Cue.prototype.lineBreak;
189
- /**
190
- * @override
191
- */
192
- shaka.text.Cue.prototype.spacer;
193
189
  /**
194
190
  * @override
195
191
  */
@@ -587,14 +583,12 @@ shaka.util.Error.Code = {
587
583
  'HLS_INVALID_PLAYLIST_HIERARCHY': 4017,
588
584
  'DASH_DUPLICATE_REPRESENTATION_ID': 4018,
589
585
  'HLS_MULTIPLE_MEDIA_INIT_SECTIONS_FOUND': 4020,
590
- 'HLS_MASTER_PLAYLIST_NOT_PROVIDED': 4022,
591
586
  'HLS_REQUIRED_ATTRIBUTE_MISSING': 4023,
592
587
  'HLS_REQUIRED_TAG_MISSING': 4024,
593
588
  'HLS_COULD_NOT_GUESS_CODECS': 4025,
594
589
  'HLS_KEYFORMATS_NOT_SUPPORTED': 4026,
595
590
  'DASH_UNSUPPORTED_XLINK_ACTUATE': 4027,
596
591
  'DASH_XLINK_DEPTH_LIMIT': 4028,
597
- 'HLS_COULD_NOT_PARSE_SEGMENT_START_TIME': 4030,
598
592
  'CONTENT_UNSUPPORTED_BY_BROWSER': 4032,
599
593
  'CANNOT_ADD_EXTERNAL_TEXT_TO_LIVE_STREAM': 4033,
600
594
  'HLS_AES_128_ENCRYPTION_NOT_SUPPORTED': 4034,
@@ -603,6 +597,7 @@ shaka.util.Error.Code = {
603
597
  'PERIOD_FLATTENING_FAILED': 4037,
604
598
  'INCONSISTENT_DRM_ACROSS_PERIODS': 4038,
605
599
  'HLS_VARIABLE_NOT_FOUND': 4039,
600
+ 'HLS_MSE_ENCRYPTED_MP2T_NOT_SUPPORTED': 4040,
606
601
  'STREAMING_ENGINE_STARTUP_INVALID_STATE': 5006,
607
602
  'NO_RECOGNIZED_KEY_SYSTEMS': 6000,
608
603
  'REQUESTED_KEY_SYSTEM_CONFIG_UNAVAILABLE': 6001,
@@ -704,14 +699,6 @@ shaka.util.StringUtils = class {
704
699
  * @summary A set of Uint8Array utility functions.
705
700
  */
706
701
  shaka.util.Uint8ArrayUtils = class {
707
- /**
708
- * Compare two Uint8Arrays for equality.
709
- * @param {Uint8Array} arr1
710
- * @param {Uint8Array} arr2
711
- * @return {boolean}
712
- * @deprecated
713
- */
714
- static equal(arr1, arr2) {}
715
702
  /**
716
703
  * Convert a buffer to a base64 string. The output will be standard
717
704
  * alphabet as opposed to base64url safe alphabet.
@@ -754,6 +741,19 @@ shaka.util.Uint8ArrayUtils = class {
754
741
  */
755
742
  static concat(...varArgs) {}
756
743
  };
744
+ /**
745
+ * @summary A set of utility functions for dealing with MIME types.
746
+ */
747
+ shaka.util.MimeUtils = class {
748
+ /**
749
+ * Takes a MIME type and optional codecs string and produces the full MIME
750
+ * type.
751
+ * @param {string} mimeType
752
+ * @param {string=} codecs
753
+ * @return {string}
754
+ */
755
+ static getFullType(mimeType, codecs) {}
756
+ };
757
757
  /**
758
758
  * @summary Manages text parsers and cues.
759
759
  * @implements {shaka.util.IDestroyable}
@@ -1414,35 +1414,6 @@ shaka.util.EventManager = class {
1414
1414
  * @typedef {function(!Event)}
1415
1415
  */
1416
1416
  shaka.util.EventManager.ListenerType;
1417
- /**
1418
- * @summary A set of FairPlay utility functions.
1419
- */
1420
- shaka.util.FairPlayUtils = class {
1421
- /**
1422
- * Using the default method, extract a content ID from the init data. This is
1423
- * based on the FairPlay example documentation.
1424
- * @param {!BufferSource} initData
1425
- * @return {string}
1426
- */
1427
- static defaultGetContentId(initData) {}
1428
- /**
1429
- * Transforms the init data buffer using the given data. The format is:
1430
- * <pre>
1431
- * [4 bytes] initDataSize
1432
- * [initDataSize bytes] initData
1433
- * [4 bytes] contentIdSize
1434
- * [contentIdSize bytes] contentId
1435
- * [4 bytes] certSize
1436
- * [certSize bytes] cert
1437
- * </pre>
1438
- * @param {!BufferSource} initData
1439
- * @param {!BufferSource|string} contentId
1440
- * @param {?BufferSource} cert The server certificate; this will throw if not
1441
- * provided.
1442
- * @return {!Uint8Array}
1443
- */
1444
- static initDataTransform(initData, contentId, cert) {}
1445
- };
1446
1417
  /**
1447
1418
  * @summary An interface to register manifest parsers.
1448
1419
  */
@@ -1718,8 +1689,14 @@ shaka.media.SegmentReference = class {
1718
1689
  * The explicit duration of an individual tile within the tiles grid.
1719
1690
  * If not provided, the duration should be automatically calculated based on
1720
1691
  * the duration of the reference.
1692
+ * @param {?number=} syncTime
1693
+ * A time value, expressed in the same scale as the start and end time, which
1694
+ * is used to synchronize between streams.
1695
+ * @param {shaka.media.SegmentReference.Status=} status
1696
+ * The segment status is used to indicate that a segment does not exist or is
1697
+ * not available.
1721
1698
  */
1722
- constructor(startTime, endTime, uris, startByte, endByte, initSegmentReference, timestampOffset, appendWindowStart, appendWindowEnd, partialReferences, tilesLayout, tileDuration) {}
1699
+ constructor(startTime, endTime, uris, startByte, endByte, initSegmentReference, timestampOffset, appendWindowStart, appendWindowEnd, partialReferences, tilesLayout, tileDuration, syncTime, status) {}
1723
1700
  /**
1724
1701
  * Creates and returns the URIs of the resource containing the segment.
1725
1702
  * @return {!Array.<string>}
@@ -1759,6 +1736,25 @@ shaka.media.SegmentReference = class {
1759
1736
  * @return {?number}
1760
1737
  */
1761
1738
  getTileDuration() {}
1739
+ /**
1740
+ * Returns the segment's status.
1741
+ * @return {shaka.media.SegmentReference.Status}
1742
+ */
1743
+ getStatus() {}
1744
+ /**
1745
+ * Mark the reference as unavailable.
1746
+ */
1747
+ markAsUnavailable() {}
1748
+ };
1749
+ /**
1750
+ * Rather than using booleans to communicate what the state of the reference,
1751
+ * we have this enum.
1752
+ * @enum {number}
1753
+ */
1754
+ shaka.media.SegmentReference.Status = {
1755
+ AVAILABLE: 0,
1756
+ UNAVAILABLE: 1,
1757
+ MISSING: 2
1762
1758
  };
1763
1759
  /**
1764
1760
  * PresentationTimeline.
@@ -1879,8 +1875,9 @@ shaka.media.PresentationTimeline = class {
1879
1875
  * Gets the presentation's current segment availability end time. Segments
1880
1876
  * starting after this time should be assumed to be unavailable.
1881
1877
  * @return {number} The current segment availability end time, in seconds,
1882
- * relative to the start of the presentation. Always returns the
1883
- * presentation's duration for video-on-demand.
1878
+ * relative to the start of the presentation. For VOD, the availability
1879
+ * end time is the content's duration. If the Player's playRangeEnd
1880
+ * configuration is used, this can override the duration.
1884
1881
  */
1885
1882
  getSegmentAvailabilityEnd() {}
1886
1883
  /**
@@ -1933,13 +1930,6 @@ shaka.media.SegmentIndex = class {
1933
1930
  * (ascending) and second by their end times (ascending).
1934
1931
  */
1935
1932
  constructor(references) {}
1936
- /**
1937
- * SegmentIndex used to be an IDestroyable. Now it is an IReleasable.
1938
- * This method is provided for backward compatibility.
1939
- * @deprecated
1940
- * @return {!Promise}
1941
- */
1942
- destroy() {}
1943
1933
  /**
1944
1934
  * @override
1945
1935
  */
@@ -1974,20 +1964,6 @@ shaka.media.SegmentIndex = class {
1974
1964
  * times.
1975
1965
  */
1976
1966
  offset(offset) {}
1977
- /**
1978
- * Merges the given SegmentReferences. Supports extending the original
1979
- * references only. Will replace old references with equivalent new ones, and
1980
- * keep any unique old ones.
1981
- * Used, for example, by the DASH and HLS parser, where manifests may not list
1982
- * all available references, so we must keep available references in memory to
1983
- * fill the availability window.
1984
- * @param {!Array.<!shaka.media.SegmentReference>} references The list of
1985
- * SegmentReferences, which must be sorted first by their start times
1986
- * (ascending) and second by their end times (ascending).
1987
- * @deprecated Not used directly by our own parsers, so will become private in
1988
- * v4. Use mergeAndEvict() instead.
1989
- */
1990
- merge(references) {}
1991
1967
  /**
1992
1968
  * Merges the given SegmentReferences and evicts the ones that end before the
1993
1969
  * given time. Supports extending the original references only.
@@ -2056,13 +2032,6 @@ shaka.media.SegmentIterator = class {
2056
2032
  * @param {number} partialSegmentIndex
2057
2033
  */
2058
2034
  constructor(segmentIndex, index, partialSegmentIndex) {}
2059
- /**
2060
- * Move the iterator to a given timestamp in the underlying SegmentIndex.
2061
- * @param {number} time
2062
- * @return {shaka.media.SegmentReference}
2063
- * @deprecated Use SegmentIndex.getIteratorForTime instead
2064
- */
2065
- seek(time) {}
2066
2035
  /**
2067
2036
  * @return {shaka.media.SegmentReference}
2068
2037
  */
@@ -2262,6 +2231,10 @@ shaka.util.ConfigUtils = class {
2262
2231
  * @final
2263
2232
  */
2264
2233
  shaka.util.PlayerConfiguration = class {
2234
+ /**
2235
+ * @return {shaka.extern.PlayerConfiguration}
2236
+ */
2237
+ static createDefault() {}
2265
2238
  /**
2266
2239
  * Merges the given configuration changes into the given destination. This
2267
2240
  * uses the default Player configurations as the template.
@@ -2724,21 +2697,6 @@ shaka.Player = class extends shaka.util.FakeEventTarget {
2724
2697
  * @return {shaka.extern.Stats}
2725
2698
  */
2726
2699
  getStats() {}
2727
- /**
2728
- * Adds the given text track to the loaded manifest. <code>load()</code> must
2729
- * resolve before calling. The presentation must have a duration.
2730
- * This returns the created track, which can immediately be selected by the
2731
- * application. The track will not be automatically selected.
2732
- * @param {string} uri
2733
- * @param {string} language
2734
- * @param {string} kind
2735
- * @param {string=} mimeType
2736
- * @param {string=} codec
2737
- * @param {string=} label
2738
- * @param {boolean=} forced
2739
- * @return {shaka.extern.Track}
2740
- */
2741
- addTextTrack(uri, language, kind, mimeType, codec, label, forced) {}
2742
2700
  /**
2743
2701
  * Adds the given text track to the loaded manifest. <code>load()</code> must
2744
2702
  * resolve before calling. The presentation must have a duration.
@@ -2836,8 +2794,9 @@ shaka.ads.ClientSideAd = class {
2836
2794
  /**
2837
2795
  * @param {!google.ima.Ad} imaAd
2838
2796
  * @param {!google.ima.AdsManager} imaAdManager
2797
+ * @param {HTMLMediaElement} video
2839
2798
  */
2840
- constructor(imaAd, imaAdManager) {}
2799
+ constructor(imaAd, imaAdManager, video) {}
2841
2800
  /**
2842
2801
  * @override
2843
2802
  */
@@ -3614,12 +3573,6 @@ shaka.offline.Storage = class {
3614
3573
  * AbortableOperation.
3615
3574
  */
3616
3575
  store(uri, appMetadata, mimeType) {}
3617
- /**
3618
- * Returns true if an asset is currently downloading.
3619
- * @return {boolean}
3620
- * @deprecated
3621
- */
3622
- getStoreInProgress() {}
3623
3576
  /**
3624
3577
  * Removes the given stored content. This will also attempt to release the
3625
3578
  * licenses, if any.
@@ -3686,7 +3639,7 @@ shaka.polyfill.Aria = class {
3686
3639
  * @summary A polyfill to add support for EncryptionScheme queries in EME.
3687
3640
  * @see https://wicg.github.io/encrypted-media-encryption-scheme/
3688
3641
  * @see https://github.com/w3c/encrypted-media/pull/457
3689
- * @see https://github.com/google/eme-encryption-scheme-polyfill
3642
+ * @see https://github.com/shaka-project/eme-encryption-scheme-polyfill
3690
3643
  */
3691
3644
  shaka.polyfill.EncryptionScheme = class {
3692
3645
  /**
@@ -3707,16 +3660,6 @@ shaka.polyfill.Fullscreen = class {
3707
3660
  */
3708
3661
  static install() {}
3709
3662
  };
3710
- /**
3711
- * @summary A polyfill to patch math round bug on some browsers.
3712
- * @see https://stackoverflow.com/q/12830742
3713
- */
3714
- shaka.polyfill.MathRound = class {
3715
- /**
3716
- * Install the polyfill if needed.
3717
- */
3718
- static install() {}
3719
- };
3720
3663
  /**
3721
3664
  * @summary A polyfill to provide navigator.mediaCapabilities on all browsers.
3722
3665
  * This is necessary for Tizen 3, Xbox One and possibly others we have yet to
@@ -3756,28 +3699,6 @@ shaka.polyfill.Orientation = class {
3756
3699
  */
3757
3700
  static install() {}
3758
3701
  };
3759
- /**
3760
- * @summary A polyfill to implement modern, standardized EME on top of Apple's
3761
- * prefixed EME in Safari.
3762
- */
3763
- shaka.polyfill.PatchedMediaKeysApple = class {
3764
- /**
3765
- * Installs the polyfill if needed.
3766
- */
3767
- static install() {}
3768
- };
3769
- /**
3770
- * @summary A polyfill to implement
3771
- * {@link https://bit.ly/EmeMar15 EME draft 12 March 2015}
3772
- * on top of ms-prefixed
3773
- * {@link https://www.w3.org/TR/2014/WD-encrypted-media-20140218/ EME v20140218}
3774
- */
3775
- shaka.polyfill.PatchedMediaKeysMs = class {
3776
- /**
3777
- * Installs the polyfill if needed.
3778
- */
3779
- static install() {}
3780
- };
3781
3702
  /**
3782
3703
  * @summary A polyfill to stub out
3783
3704
  * {@link https://bit.ly/EmeMar15 EME draft 12 March 2015} on browsers without
@@ -3831,6 +3752,16 @@ shaka.polyfill.StorageEstimate = class {
3831
3752
  */
3832
3753
  static install() {}
3833
3754
  };
3755
+ /**
3756
+ * @summary A polyfill to provide Symbol.prototype.description in all browsers.
3757
+ * See: https://caniuse.com/mdn-javascript_builtins_symbol_description
3758
+ */
3759
+ shaka.polyfill.Symbol = class {
3760
+ /**
3761
+ * Install the polyfill if needed.
3762
+ */
3763
+ static install() {}
3764
+ };
3834
3765
  /**
3835
3766
  * @summary A polyfill to silence the play() Promise in HTML5 video.
3836
3767
  */
@@ -3869,6 +3800,10 @@ shaka.text.LrcTextParser = class {
3869
3800
  * @override
3870
3801
  */
3871
3802
  parseInit(data) {}
3803
+ /**
3804
+ * @override
3805
+ */
3806
+ setSequenceMode(sequenceMode) {}
3872
3807
  /**
3873
3808
  * @override
3874
3809
  */
@@ -3882,6 +3817,10 @@ shaka.text.TtmlTextParser = class {
3882
3817
  * @override
3883
3818
  */
3884
3819
  parseInit(data) {}
3820
+ /**
3821
+ * @override
3822
+ */
3823
+ setSequenceMode(sequenceMode) {}
3885
3824
  /**
3886
3825
  * @override
3887
3826
  */
@@ -3897,6 +3836,10 @@ shaka.text.Mp4TtmlParser = class {
3897
3836
  * @override
3898
3837
  */
3899
3838
  parseInit(data) {}
3839
+ /**
3840
+ * @override
3841
+ */
3842
+ setSequenceMode(sequenceMode) {}
3900
3843
  /**
3901
3844
  * @override
3902
3845
  */
@@ -3906,10 +3849,16 @@ shaka.text.Mp4TtmlParser = class {
3906
3849
  * @implements {shaka.extern.TextParser}
3907
3850
  */
3908
3851
  shaka.text.VttTextParser = class {
3852
+ /** Constructs a VTT parser. */
3853
+ constructor() {}
3909
3854
  /**
3910
3855
  * @override
3911
3856
  */
3912
3857
  parseInit(data) {}
3858
+ /**
3859
+ * @override
3860
+ */
3861
+ setSequenceMode(sequenceMode) {}
3913
3862
  /**
3914
3863
  * @override
3915
3864
  */
@@ -3925,6 +3874,10 @@ shaka.text.Mp4VttParser = class {
3925
3874
  * @override
3926
3875
  */
3927
3876
  parseInit(data) {}
3877
+ /**
3878
+ * @override
3879
+ */
3880
+ setSequenceMode(sequenceMode) {}
3928
3881
  /**
3929
3882
  * @override
3930
3883
  */
@@ -3938,6 +3891,10 @@ shaka.text.SbvTextParser = class {
3938
3891
  * @override
3939
3892
  */
3940
3893
  parseInit(data) {}
3894
+ /**
3895
+ * @override
3896
+ */
3897
+ setSequenceMode(sequenceMode) {}
3941
3898
  /**
3942
3899
  * @override
3943
3900
  */
@@ -3953,6 +3910,10 @@ shaka.text.SrtTextParser = class {
3953
3910
  * @override
3954
3911
  */
3955
3912
  parseInit(data) {}
3913
+ /**
3914
+ * @override
3915
+ */
3916
+ setSequenceMode(sequenceMode) {}
3956
3917
  /**
3957
3918
  * @override
3958
3919
  */
@@ -3974,8 +3935,58 @@ shaka.text.SsaTextParser = class {
3974
3935
  * @override
3975
3936
  */
3976
3937
  parseInit(data) {}
3938
+ /**
3939
+ * @override
3940
+ */
3941
+ setSequenceMode(sequenceMode) {}
3977
3942
  /**
3978
3943
  * @override
3979
3944
  */
3980
3945
  parseMedia(data, time) {}
3981
3946
  };
3947
+ /**
3948
+ * @summary A set of FairPlay utility functions.
3949
+ */
3950
+ shaka.util.FairPlayUtils = class {
3951
+ /**
3952
+ * Check if FairPlay is supported.
3953
+ * @return {!Promise.<boolean>}
3954
+ */
3955
+ static isFairPlaySupported() {}
3956
+ /**
3957
+ * Using the default method, extract a content ID from the init data. This is
3958
+ * based on the FairPlay example documentation.
3959
+ * @param {!BufferSource} initData
3960
+ * @return {string}
3961
+ */
3962
+ static defaultGetContentId(initData) {}
3963
+ /**
3964
+ * Transforms the init data buffer using the given data. The format is:
3965
+ * <pre>
3966
+ * [4 bytes] initDataSize
3967
+ * [initDataSize bytes] initData
3968
+ * [4 bytes] contentIdSize
3969
+ * [contentIdSize bytes] contentId
3970
+ * [4 bytes] certSize
3971
+ * [certSize bytes] cert
3972
+ * </pre>
3973
+ * @param {!BufferSource} initData
3974
+ * @param {!BufferSource|string} contentId
3975
+ * @param {?BufferSource} cert The server certificate; this will throw if not
3976
+ * provided.
3977
+ * @return {!Uint8Array}
3978
+ */
3979
+ static initDataTransform(initData, contentId, cert) {}
3980
+ /**
3981
+ * SPC FairPlay request.
3982
+ * @param {shaka.net.NetworkingEngine.RequestType} type
3983
+ * @param {shaka.extern.Request} request
3984
+ */
3985
+ static spcFairPlayRequest(type, request) {}
3986
+ /**
3987
+ * Common FairPlay response transform for some DRMs providers.
3988
+ * @param {shaka.net.NetworkingEngine.RequestType} type
3989
+ * @param {shaka.extern.Response} response
3990
+ */
3991
+ static commonFairPlayResponse(type, response) {}
3992
+ };