shaka-player 3.3.1 → 3.3.4

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 (336) 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 +130 -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 +29 -0
  8. package/.github/workflows/nightly-demo.yaml +42 -0
  9. package/.github/workflows/release-please.yaml +147 -0
  10. package/.github/workflows/safari-homedir-launcher.sh +18 -0
  11. package/.github/workflows/selenium-lab-tests.yaml +93 -0
  12. package/AUTHORS +2 -0
  13. package/CHANGELOG.md +1707 -1670
  14. package/CONTRIBUTING.md +2 -2
  15. package/CONTRIBUTORS +2 -0
  16. package/README.md +7 -7
  17. package/app-engine/README.md +9 -0
  18. package/app-engine/demo-version-index/README.md +14 -0
  19. package/app-engine/demo-version-index/app.yaml +2 -0
  20. package/app-engine/demo-version-index/main.py +162 -0
  21. package/app-engine/demo-version-index/requirements.txt +6 -0
  22. package/app-engine/demo-version-index/templates/index.html +114 -0
  23. package/app-engine/shaka-player-demo/README.md +18 -0
  24. package/app-engine/shaka-player-demo/app.yaml +61 -0
  25. package/app-engine/shaka-player-demo/main.py +95 -0
  26. package/app-engine/shaka-player-demo/posters/10yo.png +0 -0
  27. package/app-engine/shaka-player-demo/posters/10yo.xcf +0 -0
  28. package/app-engine/shaka-player-demo/posters/1yo.jpg +0 -0
  29. package/app-engine/shaka-player-demo/posters/2yo.png +0 -0
  30. package/app-engine/shaka-player-demo/posters/2yo.xcf +0 -0
  31. package/app-engine/shaka-player-demo/posters/3yo.png +0 -0
  32. package/app-engine/shaka-player-demo/posters/3yo.xcf +0 -0
  33. package/app-engine/shaka-player-demo/posters/4yo.png +0 -0
  34. package/app-engine/shaka-player-demo/posters/4yo.xcf +0 -0
  35. package/app-engine/shaka-player-demo/posters/5yo.png +0 -0
  36. package/app-engine/shaka-player-demo/posters/5yo.xcf +0 -0
  37. package/app-engine/shaka-player-demo/posters/6yo.png +0 -0
  38. package/app-engine/shaka-player-demo/posters/6yo.xcf +0 -0
  39. package/app-engine/shaka-player-demo/posters/7yo.png +0 -0
  40. package/app-engine/shaka-player-demo/posters/7yo.xcf +0 -0
  41. package/app-engine/shaka-player-demo/posters/8yo.png +0 -0
  42. package/app-engine/shaka-player-demo/posters/8yo.xcf +0 -0
  43. package/app-engine/shaka-player-demo/posters/9yo.png +0 -0
  44. package/app-engine/shaka-player-demo/posters/9yo.xcf +0 -0
  45. package/app-engine/shaka-player-demo/posters/audioOnly.gif +0 -0
  46. package/app-engine/shaka-player-demo/posters/audioRickRoll.gif +0 -0
  47. package/app-engine/shaka-player-demo/posters/colorbars.gif +0 -0
  48. package/app-engine/shaka-player-demo/posters/fireworks.jpg +0 -0
  49. package/app-engine/shaka-player-demo/posters/party-hat.png +0 -0
  50. package/app-engine/shaka-player-demo/posters/sources.txt +46 -0
  51. package/app-engine/shaka-player-demo/posters/standard.png +0 -0
  52. package/app-engine/shaka-player-demo/posters/trek.jpg +0 -0
  53. package/app-engine/shaka-player-demo/posters/valentines.png +0 -0
  54. package/app-engine/shaka-player-demo/posters/zombie.jpg +0 -0
  55. package/app-engine/shaka-player-demo/posters.py +110 -0
  56. package/app-engine/shaka-player-demo/requirements.txt +5 -0
  57. package/app-engine/shaka-player-demo/time.txt +1 -0
  58. package/build/README.md +1 -1
  59. package/build/checkversion.py +1 -1
  60. package/build/conformance.textproto +13 -0
  61. package/build/docker/Dockerfile +20 -0
  62. package/build/docker/docker-compose.yml +10 -0
  63. package/build/gendeps.py +18 -15
  64. package/build/generateTsDefs.py +2 -0
  65. package/build/shaka-lab.yaml +163 -0
  66. package/build/shakaBuildHelpers.py +4 -29
  67. package/build/test.py +93 -28
  68. package/build/types/polyfill +1 -0
  69. package/build/wrapper.template.js +2 -2
  70. package/demo/TengwarTelcontar.woff2 +0 -0
  71. package/demo/asset_card.js +1 -2
  72. package/demo/cast_receiver/index.html +1 -1
  73. package/demo/cast_receiver/receiver_app.css +14 -14
  74. package/demo/common/assets.js +2 -0
  75. package/demo/config.js +0 -1
  76. package/demo/custom.js +0 -1
  77. package/demo/customWarning.txt +2 -2
  78. package/demo/demo.less +29 -18
  79. package/demo/demo_uncompiled.js +1 -13
  80. package/demo/index.html +1 -1
  81. package/demo/main.js +3 -3
  82. package/dist/controls.css +3 -3
  83. package/dist/controls.css.map +1 -1
  84. package/dist/demo.compiled.debug.js +191 -194
  85. package/dist/demo.compiled.debug.map +4 -4
  86. package/dist/demo.compiled.js +191 -194
  87. package/dist/demo.compiled.map +4 -4
  88. package/dist/demo.css +1 -1
  89. package/dist/demo.css.map +1 -1
  90. package/dist/deps.js +233 -226
  91. package/dist/locales.js +32 -32
  92. package/dist/receiver.compiled.debug.js +43 -45
  93. package/dist/receiver.compiled.debug.map +4 -4
  94. package/dist/receiver.compiled.js +43 -45
  95. package/dist/receiver.compiled.map +4 -4
  96. package/dist/shaka-player.compiled.d.ts +250 -237
  97. package/dist/shaka-player.compiled.debug.d.ts +250 -237
  98. package/dist/shaka-player.compiled.debug.externs.js +31 -15
  99. package/dist/shaka-player.compiled.debug.js +252 -257
  100. package/dist/shaka-player.compiled.debug.map +4 -4
  101. package/dist/shaka-player.compiled.externs.js +31 -15
  102. package/dist/shaka-player.compiled.js +844 -849
  103. package/dist/shaka-player.compiled.map +4 -4
  104. package/dist/shaka-player.ui.d.ts +296 -292
  105. package/dist/shaka-player.ui.debug.d.ts +296 -292
  106. package/dist/shaka-player.ui.debug.externs.js +33 -26
  107. package/dist/shaka-player.ui.debug.js +345 -351
  108. package/dist/shaka-player.ui.debug.map +4 -4
  109. package/dist/shaka-player.ui.externs.js +33 -26
  110. package/dist/shaka-player.ui.js +1002 -1008
  111. package/dist/shaka-player.ui.map +4 -4
  112. package/docs/design/REDESIGN.md +33 -33
  113. package/docs/design/bg-fetch.md +2 -2
  114. package/docs/design/codec_preferences.md +1 -1
  115. package/docs/design/dash-audio-channels.md +3 -3
  116. package/docs/design/dash-manifests.md +1 -1
  117. package/docs/design/gap-jumping.md +3 -3
  118. package/docs/design/preload.md +2 -2
  119. package/docs/tutorials/faq.md +8 -8
  120. package/docs/tutorials/index.json +1 -0
  121. package/docs/tutorials/plugins.md +3 -3
  122. package/docs/tutorials/selenium-grid-config.md +122 -0
  123. package/docs/tutorials/welcome.md +10 -2
  124. package/externs/cmcd.js +1 -1
  125. package/karma.conf.js +156 -45
  126. package/lib/abr/simple_abr_manager.js +12 -6
  127. package/lib/ads/ad_manager.js +1 -0
  128. package/lib/cast/cast_proxy.js +6 -4
  129. package/lib/cast/cast_receiver.js +3 -0
  130. package/lib/cea/cea608_data_channel.js +2 -2
  131. package/lib/cea/cea708_service.js +5 -4
  132. package/lib/cea/mp4_cea_parser.js +11 -5
  133. package/lib/cea/sei_processor.js +6 -3
  134. package/lib/dash/dash_parser.js +40 -30
  135. package/lib/dash/mpd_utils.js +4 -5
  136. package/lib/dash/segment_list.js +1 -2
  137. package/lib/dash/segment_template.js +3 -3
  138. package/lib/hls/hls_parser.js +11 -9
  139. package/lib/hls/manifest_text_parser.js +4 -3
  140. package/lib/media/adaptation_set.js +1 -2
  141. package/lib/media/content_workarounds.js +2 -2
  142. package/lib/media/drm_engine.js +3 -2
  143. package/lib/media/media_source_engine.js +3 -2
  144. package/lib/media/mp4_segment_index_parser.js +1 -4
  145. package/lib/media/playhead.js +2 -2
  146. package/lib/media/presentation_timeline.js +18 -8
  147. package/lib/media/quality_observer.js +17 -34
  148. package/lib/media/region_observer.js +39 -33
  149. package/lib/media/region_timeline.js +17 -19
  150. package/lib/media/streaming_engine.js +7 -7
  151. package/lib/media/time_ranges_utils.js +1 -3
  152. package/lib/media/video_wrapper.js +1 -1
  153. package/lib/net/networking_engine.js +5 -1
  154. package/lib/offline/storage.js +12 -13
  155. package/lib/player.js +65 -25
  156. package/lib/polyfill/all.js +2 -3
  157. package/lib/polyfill/encryption_scheme.js +1 -1
  158. package/lib/polyfill/media_capabilities.js +3 -3
  159. package/lib/polyfill/mediasource.js +1 -1
  160. package/lib/polyfill/symbol.js +46 -0
  161. package/lib/text/cue.js +1 -1
  162. package/lib/text/simple_text_displayer.js +2 -1
  163. package/lib/text/ttml_text_parser.js +8 -5
  164. package/lib/text/ui_text_displayer.js +1 -1
  165. package/lib/util/buffer_utils.js +1 -3
  166. package/lib/util/ebml_parser.js +3 -3
  167. package/lib/util/error.js +1 -1
  168. package/lib/util/fake_event_target.js +21 -1
  169. package/lib/util/iterables.js +0 -46
  170. package/lib/util/mp4_box_parsers.js +1 -4
  171. package/lib/util/mp4_parser.js +5 -7
  172. package/lib/util/periods.js +10 -11
  173. package/lib/util/platform.js +3 -3
  174. package/lib/util/pssh.js +1 -4
  175. package/lib/util/stream_utils.js +4 -3
  176. package/lib/util/string_utils.js +3 -5
  177. package/lib/util/uint8array_utils.js +3 -5
  178. package/lib/util/xml_utils.js +15 -7
  179. package/package.json +62 -40
  180. package/roadmap.md +17 -17
  181. package/shaka-player.uncompiled.js +1 -0
  182. package/test/abr/simple_abr_manager_unit.js +3 -8
  183. package/test/ads/ad_manager_unit.js +0 -6
  184. package/test/cast/cast_proxy_unit.js +0 -8
  185. package/test/cast/cast_receiver_integration.js +1 -18
  186. package/test/cast/cast_receiver_unit.js +1 -9
  187. package/test/cast/cast_sender_unit.js +0 -6
  188. package/test/cast/cast_utils_unit.js +0 -13
  189. package/test/cea/cea608_memory_unit.js +0 -5
  190. package/test/cea/cea708_service_unit.js +0 -7
  191. package/test/cea/cea708_window_unit.js +0 -5
  192. package/test/cea/cea_decoder_unit.js +0 -6
  193. package/test/cea/dtvcc_packet_builder_unit.js +0 -3
  194. package/test/cea/dtvcc_packet_unit.js +0 -5
  195. package/test/cea/mp4_cea_parser_unit.js +0 -4
  196. package/test/dash/dash_parser_content_protection_unit.js +1 -10
  197. package/test/dash/dash_parser_live_unit.js +45 -15
  198. package/test/dash/dash_parser_manifest_unit.js +4 -17
  199. package/test/dash/dash_parser_segment_base_unit.js +1 -8
  200. package/test/dash/dash_parser_segment_list_unit.js +1 -7
  201. package/test/dash/dash_parser_segment_template_unit.js +0 -9
  202. package/test/dash/mpd_utils_unit.js +3 -11
  203. package/test/demo/demo_unit.js +0 -5
  204. package/test/deprecate/enforcer_unit.js +0 -4
  205. package/test/deprecate/version_unit.js +0 -2
  206. package/test/hls/hls_live_unit.js +2 -14
  207. package/test/hls/hls_parser_unit.js +76 -15
  208. package/test/hls/manifest_text_parser_unit.js +0 -10
  209. package/test/media/adaptation_set_criteria_unit.js +3 -7
  210. package/test/media/adaptation_set_unit.js +0 -2
  211. package/test/media/buffering_observer_unit.js +1 -4
  212. package/test/media/closed_caption_parser_unit.js +0 -3
  213. package/test/media/drm_engine_integration.js +2 -15
  214. package/test/media/drm_engine_unit.js +4 -24
  215. package/test/media/manifest_parser_unit.js +0 -4
  216. package/test/media/media_source_engine_integration.js +0 -7
  217. package/test/media/media_source_engine_unit.js +1 -14
  218. package/test/media/mp4_segment_index_parser_unit.js +0 -4
  219. package/test/media/play_rate_controller_unit.js +0 -4
  220. package/test/media/playhead_unit.js +8 -16
  221. package/test/media/presentation_timeline_unit.js +4 -7
  222. package/test/media/quality_observer_unit.js +4 -5
  223. package/test/media/region_observer_unit.js +40 -10
  224. package/test/media/region_timeline_unit.js +40 -25
  225. package/test/media/segment_index_unit.js +0 -6
  226. package/test/media/segment_reference_unit.js +0 -3
  227. package/test/media/stall_detector_unit.js +0 -5
  228. package/test/media/streaming_engine_integration.js +9 -36
  229. package/test/media/streaming_engine_unit.js +11 -35
  230. package/test/media/time_ranges_utils_unit.js +0 -2
  231. package/test/media/transmuxer_integration.js +0 -6
  232. package/test/media/webm_segment_index_parser_unit.js +0 -4
  233. package/test/net/data_uri_plugin_unit.js +0 -7
  234. package/test/net/http_plugin_unit.js +0 -9
  235. package/test/net/networking_engine_unit.js +0 -11
  236. package/test/offline/download_progress_estimator_unit.js +0 -2
  237. package/test/offline/indexeddb_storage_unit.js +0 -6
  238. package/test/offline/manifest_convert_unit.js +0 -8
  239. package/test/offline/offline_integration.js +1 -10
  240. package/test/offline/offline_manifest_parser_unit.js +0 -6
  241. package/test/offline/offline_scheme_unit.js +0 -8
  242. package/test/offline/offline_uri_unit.js +0 -2
  243. package/test/offline/storage_compatibility_unit.js +1 -14
  244. package/test/offline/storage_integration.js +1 -27
  245. package/test/player_external.js +2 -10
  246. package/test/player_integration.js +22 -28
  247. package/test/player_load_graph_integration.js +1 -6
  248. package/test/player_src_equals_external.js +3 -9
  249. package/test/player_src_equals_integration.js +0 -7
  250. package/test/player_unit.js +52 -37
  251. package/test/routing/walker_unit.js +0 -8
  252. package/test/test/assets/large_file.mpd +1 -1
  253. package/test/test/boot.js +75 -22
  254. package/test/test/externs/jasmine.js +2 -2
  255. package/test/test/externs/karma.js +4 -0
  256. package/test/test/namespace.js +10 -0
  257. package/test/test/util/canned_idb.js +0 -8
  258. package/test/test/util/cea_utils.js +0 -6
  259. package/test/test/util/dash_parser_util.js +0 -13
  260. package/test/test/util/fake_ad.js +0 -3
  261. package/test/test/util/fake_ad_manager.js +0 -9
  262. package/test/test/util/fake_demo_main.js +0 -5
  263. package/test/test/util/fake_drm_engine.js +0 -6
  264. package/test/test/util/fake_media_source_engine.js +0 -7
  265. package/test/test/util/fake_networking_engine.js +0 -5
  266. package/test/test/util/fake_text_displayer.js +0 -5
  267. package/test/test/util/indexeddb_utils.js +1 -10
  268. package/test/test/util/jasmine_fetch.js +0 -1
  269. package/test/test/util/loader.js +0 -18
  270. package/test/test/util/manifest_generator.js +9 -14
  271. package/test/test/util/manifest_parser_util.js +0 -6
  272. package/test/test/util/offline_utils.js +0 -5
  273. package/test/test/util/simple_fakes.js +9 -26
  274. package/test/test/util/stream_generator.js +0 -14
  275. package/test/test/util/streaming_engine_util.js +0 -15
  276. package/test/test/util/test_scheme.js +1 -19
  277. package/test/test/util/ttml_utils.js +0 -2
  278. package/test/test/util/ui_utils.js +0 -9
  279. package/test/test/util/util.js +15 -26
  280. package/test/test/util/waiter.js +84 -43
  281. package/test/text/cue_integration.js +0 -4
  282. package/test/text/lrc_text_parser_unit.js +0 -4
  283. package/test/text/mp4_ttml_parser_unit.js +0 -6
  284. package/test/text/mp4_vtt_parser_unit.js +1 -7
  285. package/test/text/sbv_text_parser_unit.js +0 -4
  286. package/test/text/simple_text_displayer_unit.js +1 -8
  287. package/test/text/srt_text_parser_unit.js +0 -4
  288. package/test/text/ssa_text_parser_unit.js +0 -5
  289. package/test/text/text_engine_unit.js +2 -7
  290. package/test/text/text_track_integration.js +0 -2
  291. package/test/text/ttml_text_parser_unit.js +2 -11
  292. package/test/text/ui_text_displayer_unit.js +44 -41
  293. package/test/text/vtt_text_parser_unit.js +0 -9
  294. package/test/text/web_vtt_generator_unit.js +0 -3
  295. package/test/ui/ad_ui_unit.js +0 -11
  296. package/test/ui/localization_unit.js +0 -3
  297. package/test/ui/text_displayer_layout_unit.js +9 -19
  298. package/test/ui/ui_customization_unit.js +0 -6
  299. package/test/ui/ui_integration.js +0 -16
  300. package/test/ui/ui_unit.js +1 -17
  301. package/test/util/abortable_operation_unit.js +4 -9
  302. package/test/util/array_utils_unit.js +0 -2
  303. package/test/util/buffer_utils_unit.js +0 -2
  304. package/test/util/cmcd_manager_unit.js +0 -3
  305. package/test/util/data_view_reader_unit.js +0 -4
  306. package/test/util/ebml_parser_unit.js +0 -4
  307. package/test/util/event_manager_unit.js +0 -3
  308. package/test/util/fake_event_target_unit.js +0 -5
  309. package/test/util/functional_unit.js +1 -1
  310. package/test/util/iterables_unit.js +0 -64
  311. package/test/util/language_utils_unit.js +0 -3
  312. package/test/util/manifest_parser_utils_unit.js +0 -2
  313. package/test/util/mp4_box_parsers_unit.js +0 -5
  314. package/test/util/mp4_parser_unit.js +0 -4
  315. package/test/util/multi_map_unit.js +0 -3
  316. package/test/util/object_utils_unit.js +0 -2
  317. package/test/util/periods_unit.js +14 -7
  318. package/test/util/pssh_unit.js +0 -5
  319. package/test/util/state_history_unit.js +0 -2
  320. package/test/util/stream_utils_unit.js +3 -8
  321. package/test/util/string_utils_unit.js +0 -6
  322. package/test/util/text_parser_unit.js +0 -2
  323. package/test/util/xml_utils_unit.js +0 -4
  324. package/ui/controls.js +3 -0
  325. package/ui/less/ad_controls.less +6 -6
  326. package/ui/less/buttons.less +6 -6
  327. package/ui/less/containers.less +13 -15
  328. package/ui/less/overflow_menu.less +4 -4
  329. package/ui/less/range_elements.less +7 -2
  330. package/ui/less/tooltip.less +4 -4
  331. package/ui/locales/sjn-translations.yaml +257 -0
  332. package/ui/locales/sjn.json +42 -0
  333. package/ui/localization.js +12 -36
  334. package/ui/seek_bar.js +2 -1
  335. package/externs/svgelement.js +0 -18
  336. package/externs/webcrypto.js +0 -18
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "shaka-player",
3
3
  "description": "DASH/EME video player library",
4
- "version": "3.3.1",
5
- "homepage": "https://github.com/google/shaka-player",
4
+ "version": "3.3.4",
5
+ "homepage": "https://github.com/shaka-project/shaka-player",
6
6
  "author": "Google",
7
7
  "maintainers": [
8
8
  {
@@ -11,63 +11,85 @@
11
11
  }
12
12
  ],
13
13
  "devDependencies": {
14
- "@chiragrupani/karma-chromium-edge-launcher": "^2.1.0",
15
- "@onslip/karma-safari-launcher": "^1.0.1",
14
+ "@babel/core": "^7.17.5",
15
+ "@babel/polyfill": "^7.12.1",
16
+ "@babel/preset-env": "^7.16.11",
16
17
  "@teppeis/clutz": "^1.0.29-4c95e12.v20190929",
17
- "awesomplete": "^1.1.4",
18
- "babel-core": "^6.26.3",
19
- "babel-plugin-istanbul": "^4.1.6",
20
- "babel-polyfill": "^6.26.0",
21
- "babel-preset-env": "^1.7.0",
18
+ "awesomplete": "^1.1.5",
19
+ "babel-plugin-istanbul": "^6.1.1",
22
20
  "cajon": "^0.4.4",
23
- "core-js": "^3.6.5",
24
- "dialog-polyfill": "^0.5.0",
21
+ "code-prettify": "^0.1.0",
22
+ "color-themes-for-google-code-prettify": "^2.0.4",
23
+ "core-js": "^3.21.1",
24
+ "dialog-polyfill": "^0.5.6",
25
25
  "es6-promise-polyfill": "^1.2.0",
26
- "eslint": "^7.18.0",
27
- "eslint-config-google": "^0.13.0",
26
+ "eslint": "^8.9.0",
27
+ "eslint-config-google": "^0.14.0",
28
28
  "eslint-plugin-shaka-rules": "file:./build/eslint-plugin-shaka-rules",
29
29
  "esprima": "^4.0.1",
30
30
  "fastestsmallesttextencoderdecoder": "^1.0.22",
31
31
  "fontfaceonload": "^1.0.2",
32
- "google-closure-compiler-java": "^20210505.0.0",
33
- "google-closure-library": "^20210406.0.0",
34
- "htmlhint": "^0.11.0",
32
+ "google-closure-compiler-java": "^20220301.0.0",
33
+ "google-closure-deps": "https://gitpkg.now.sh/google/closure-library/closure-deps?d7736da6",
34
+ "google-closure-library": "^20220301.0.0",
35
+ "htmlhint": "^1.1.3",
35
36
  "jasmine-ajax": "^4.0.0",
36
- "jimp": "^0.11.0",
37
- "jsdoc": "github:joeyparrish/jsdoc#45c271fa",
38
- "karma": "^6.2.0",
39
- "karma-babel-preprocessor": "^7.0.0",
40
- "karma-chrome-launcher": "^2.2.0",
41
- "karma-coverage": "^1.1.2",
42
- "karma-edge-launcher": "^0.4.2",
43
- "karma-firefox-launcher": "^1.1.0",
44
- "karma-ie-launcher": "^1.0.0",
45
- "karma-jasmine": "^3.3.1",
37
+ "jimp": "^0.16.1",
38
+ "js-yaml": "^4.1.0",
39
+ "jsdoc": "github:joeyparrish/jsdoc#2ca85bb6",
40
+ "karma": "^6.3.16",
41
+ "karma-babel-preprocessor": "^8.0.2",
42
+ "karma-coverage": "^2.2.0",
43
+ "karma-jasmine": "^4.0.1",
46
44
  "karma-jasmine-ajax": "^0.1.13",
45
+ "karma-local-wd-launcher": "^1.6.1",
47
46
  "karma-opera-launcher": "^1.0.0",
48
- "karma-sourcemap-loader": "^0.3.7",
49
- "karma-spec-reporter": "0.0.32",
47
+ "karma-sourcemap-loader": "^0.3.8",
48
+ "karma-spec-reporter": "^0.0.34",
50
49
  "karma-webdriver-launcher": "^1.0.8",
51
- "less": "^3.13.1",
52
- "less-plugin-clean-css": "^1.5.1",
50
+ "less": "https://gitpkg.now.sh/joeyparrish/less.js/packages/less?28c63a43",
51
+ "less-plugin-clean-css": "github:austingardner/less-plugin-clean-css#4e9e77bf",
53
52
  "material-design-lite": "^1.3.0",
54
- "mux.js": "^5.7.0",
55
- "pwacompat": "^2.0.10",
56
- "rimraf": "^2.6.3",
53
+ "mux.js": "^5.14.1",
54
+ "open-sans-fonts": "^1.6.2",
55
+ "postcss-less": "^6.0.0",
56
+ "pwacompat": "^2.0.17",
57
+ "rimraf": "^3.0.2",
57
58
  "sprintf-js": "^1.1.2",
58
- "stylelint": "^13.8.0",
59
- "stylelint-config-standard": "^20.0.0",
60
- "tippy.js": "^4.3.1",
61
- "ua-parser-js": "^0.7.24",
62
- "which": "^1.3.1"
59
+ "ssim.js": "^3.5.0",
60
+ "stylelint": "^14.5.1",
61
+ "stylelint-config-standard": "^25.0.0",
62
+ "tippy.js": "^4.3.5",
63
+ "which": "^2.0.2"
64
+ },
65
+ "shakaCustom": {
66
+ "purposeOfDemoDeps": "These are the files from node_modules that need to be deployed with the demo app.",
67
+ "demoDeps": [
68
+ "awesomplete/awesomplete.css",
69
+ "awesomplete/awesomplete.min.js",
70
+ "dialog-polyfill/dialog-polyfill.css",
71
+ "dialog-polyfill/dist/dialog-polyfill.js",
72
+ "eme-encryption-scheme-polyfill/index.js",
73
+ "es6-promise-polyfill/promise.min.js",
74
+ "fastestsmallesttextencoderdecoder/EncoderDecoderTogether.min.js",
75
+ "google-closure-library/closure/goog/base.js",
76
+ "less/dist/less.js",
77
+ "material-design-lite/dist/material.indigo-blue.min.css",
78
+ "material-design-lite/dist/material.min.js",
79
+ "mux.js/dist/mux.min.js",
80
+ "popper.js/dist/umd/popper.min.js",
81
+ "pwacompat/pwacompat.min.js",
82
+ "tippy.js/umd/index.min.js",
83
+ "tippy.js/index.css"
84
+ ]
63
85
  },
64
86
  "main": "dist/shaka-player.compiled.js",
65
87
  "repository": {
66
88
  "type": "git",
67
- "url": "https://github.com/google/shaka-player.git"
89
+ "url": "https://github.com/shaka-project/shaka-player.git"
68
90
  },
69
91
  "bugs": {
70
- "url": "https://github.com/google/shaka-player/issues"
92
+ "url": "https://github.com/shaka-project/shaka-player/issues"
71
93
  },
72
94
  "license": "Apache-2.0",
73
95
  "scripts": {
package/roadmap.md CHANGED
@@ -10,49 +10,49 @@ so the exact milestone for future features is not pre-determined.
10
10
 
11
11
  Priority features up next:
12
12
  - Support containerless formats
13
- https://github.com/google/shaka-player/issues/2337
13
+ https://github.com/shaka-project/shaka-player/issues/2337
14
14
  - Preload API
15
- https://github.com/google/shaka-player/issues/880
15
+ https://github.com/shaka-project/shaka-player/issues/880
16
16
  - Codec-switching and order preference
17
- https://github.com/google/shaka-player/issues/1528
18
- https://github.com/google/shaka-player/issues/2179
17
+ https://github.com/shaka-project/shaka-player/issues/1528
18
+ https://github.com/shaka-project/shaka-player/issues/2179
19
19
 
20
20
  Candidate features for future release cycles:
21
21
  - HLS interstitial support
22
- https://github.com/google/shaka-player/issues/3364
22
+ https://github.com/shaka-project/shaka-player/issues/3364
23
23
  - Support ID3 tags in mp4
24
- https://github.com/google/shaka-player/issues/3351
24
+ https://github.com/shaka-project/shaka-player/issues/3351
25
25
  - MSE support for FairPlay
26
- https://github.com/google/shaka-player/issues/3346
26
+ https://github.com/shaka-project/shaka-player/issues/3346
27
27
  - Smaller, more modular binary
28
28
  - Official TypeScript defs, generated from source
29
- https://github.com/google/shaka-player/issues/1030
29
+ https://github.com/shaka-project/shaka-player/issues/1030
30
30
  - Shaka Analytics Component and an integration with BigQuery Analytics
31
- https://github.com/google/shaka-player/issues/3359
31
+ https://github.com/shaka-project/shaka-player/issues/3359
32
32
  - Integration with Google Video ML/Cloud AI
33
33
 
34
34
  v3.3 - 2021 Q3 or Q4
35
35
  - Background fetch for offline storage
36
- https://github.com/google/shaka-player/issues/879
36
+ https://github.com/shaka-project/shaka-player/issues/879
37
37
  - HLS performance improvements
38
- https://github.com/google/shaka-player/issues/3363
38
+ https://github.com/shaka-project/shaka-player/issues/3363
39
39
 
40
40
  =====
41
41
 
42
42
  v3.2 - 2021 Q3
43
43
  - MediaCapabilities to make performance-based decisions
44
- https://github.com/google/shaka-player/issues/1391
44
+ https://github.com/shaka-project/shaka-player/issues/1391
45
45
  - Configurable key-system priority
46
- https://github.com/google/shaka-player/issues/3002
46
+ https://github.com/shaka-project/shaka-player/issues/3002
47
47
 
48
48
  v3.1 - 2021 Q2
49
49
  - Low-latency live (LL-HLS, LL-DASH)
50
- https://github.com/google/shaka-player/issues/1525
50
+ https://github.com/shaka-project/shaka-player/issues/1525
51
51
  - Own CEA parser, use mux.js only for TS
52
- https://github.com/google/shaka-player/issues/2648
52
+ https://github.com/shaka-project/shaka-player/issues/2648
53
53
  - Thumbnail tracks
54
- DASH: https://github.com/google/shaka-player/issues/559
55
- HLS: https://github.com/google/shaka-player/issues/2429
54
+ DASH: https://github.com/shaka-project/shaka-player/issues/559
55
+ HLS: https://github.com/shaka-project/shaka-player/issues/2429
56
56
 
57
57
  v3.0 - 2020 Q2
58
58
  - Code health improvements
@@ -45,6 +45,7 @@ goog.require('shaka.polyfill.PatchedMediaKeysNop');
45
45
  goog.require('shaka.polyfill.PatchedMediaKeysWebkit');
46
46
  goog.require('shaka.polyfill.PiPWebkit');
47
47
  goog.require('shaka.polyfill.RandomUUID');
48
+ goog.require('shaka.polyfill.Symbol');
48
49
  goog.require('shaka.polyfill.VTTCue');
49
50
  goog.require('shaka.polyfill.VideoPlayPromise');
50
51
  goog.require('shaka.polyfill.VideoPlaybackQuality');
@@ -4,11 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.abr.SimpleAbrManager');
8
- goog.require('shaka.test.ManifestGenerator');
9
- goog.require('shaka.test.Util');
10
- goog.require('shaka.util.PlayerConfiguration');
11
-
12
7
  describe('SimpleAbrManager', () => {
13
8
  const sufficientBWMultiplier = 1.06;
14
9
  const defaultBandwidthEstimate = 500e3; // 500kbps
@@ -91,7 +86,7 @@ describe('SimpleAbrManager', () => {
91
86
  config.defaultBandwidthEstimate = 3e6;
92
87
  abrManager.configure(config);
93
88
  const chosen = abrManager.chooseVariant();
94
- expect(chosen.id).toBe(104);
89
+ expect(chosen.id).toBe(103);
95
90
  });
96
91
 
97
92
  it('can handle empty variants', () => {
@@ -170,7 +165,7 @@ describe('SimpleAbrManager', () => {
170
165
  it('can handle 0 duration segments', () => {
171
166
  // Makes sure bandwidth estimate doesn't get set to NaN
172
167
  // when a 0 duration segment is encountered.
173
- // https://github.com/google/shaka-player/issues/582
168
+ // https://github.com/shaka-project/shaka-player/issues/582
174
169
  const bandwidth = 5e5;
175
170
  const bytesPerSecond = sufficientBWMultiplier * bandwidth / 8.0;
176
171
 
@@ -208,7 +203,7 @@ describe('SimpleAbrManager', () => {
208
203
  abrManager.segmentDownloaded(1000, bytesPerSecond);
209
204
 
210
205
  // Expect variants 4 to be chosen
211
- const expectedVariant = variants[4];
206
+ const expectedVariant = variants[3];
212
207
 
213
208
  expect(switchCallback).toHaveBeenCalledWith(expectedVariant);
214
209
  });
@@ -4,12 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.Player');
8
- goog.require('shaka.ads.AdManager');
9
- goog.require('shaka.test.FakeVideo');
10
- goog.require('shaka.test.Util');
11
- goog.require('shaka.util.Error');
12
-
13
7
  describe('Ad manager', () => {
14
8
  /** @type {!shaka.test.FakeVideo} */
15
9
  let mockVideo;
@@ -4,14 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.cast.CastProxy');
8
- goog.require('shaka.cast.CastSender');
9
- goog.require('shaka.test.FakeVideo');
10
- goog.require('shaka.test.Util');
11
- goog.require('shaka.util.Error');
12
- goog.require('shaka.util.FakeEvent');
13
- goog.require('shaka.util.PublicPromise');
14
-
15
7
  describe('CastProxy', () => {
16
8
  const CastProxy = shaka.cast.CastProxy;
17
9
  const FakeEvent = shaka.util.FakeEvent;
@@ -4,22 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.Player');
8
- goog.require('shaka.cast.CastReceiver');
9
- goog.require('shaka.cast.CastUtils');
10
- goog.require('shaka.log');
11
- goog.require('shaka.media.DrmEngine');
12
- goog.require('shaka.media.ManifestParser');
13
- goog.require('shaka.media.StreamingEngine');
14
- goog.require('shaka.net.NetworkingEngine');
15
- goog.require('shaka.test.TestScheme');
16
- goog.require('shaka.test.UiUtils');
17
- goog.require('shaka.util.EventManager');
18
- goog.require('shaka.util.Functional');
19
- goog.require('shaka.util.Iterables');
20
- goog.require('shaka.util.Platform');
21
- goog.require('shaka.util.PublicPromise');
22
-
23
7
  // The receiver is only meant to run on the Chromecast, so we have the
24
8
  // ability to use modern APIs there that may not be available on all of the
25
9
  // browsers our library supports. Because of this, CastReceiver tests will
@@ -198,8 +182,7 @@ filterDescribe('CastReceiver', castReceiverIntegrationSupport, () => {
198
182
  // the average length is expected to be lower than the length of the first
199
183
  // update message.
200
184
  let totalLength = 0;
201
- for (const _ of shaka.util.Iterables.range(50)) {
202
- shaka.util.Functional.ignored(_);
185
+ for (let i = 0; i < 50; i++) {
203
186
  // eslint-disable-next-line no-await-in-loop
204
187
  const message = await waitForUpdateMessage();
205
188
  totalLength += message.length;
@@ -4,14 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.cast.CastReceiver');
8
- goog.require('shaka.cast.CastUtils');
9
- goog.require('shaka.test.FakeVideo');
10
- goog.require('shaka.test.Util');
11
- goog.require('shaka.util.Error');
12
- goog.require('shaka.util.Platform');
13
- goog.require('shaka.util.PublicPromise');
14
-
15
7
  // The receiver is only meant to run on the Chromecast, so we have the
16
8
  // ability to use modern APIs there that may not be available on all of the
17
9
  // browsers our library supports. Because of this, CastReceiver tests will
@@ -756,7 +748,7 @@ filterDescribe('CastReceiver', castReceiverSupport, () => {
756
748
  expect(mockGenericMessageBus.broadcast).toHaveBeenCalledTimes(1);
757
749
 
758
750
  // This covers the lack of scrubber in the Google Home app, as described
759
- // in https://github.com/google/shaka-player/issues/2606
751
+ // in https://github.com/shaka-project/shaka-player/issues/2606
760
752
  expectMediaInfo('URI A', 1);
761
753
  });
762
754
 
@@ -4,12 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.cast.CastSender');
8
- goog.require('shaka.cast.CastUtils');
9
- goog.require('shaka.test.StatusPromise');
10
- goog.require('shaka.test.Util');
11
- goog.require('shaka.util.Error');
12
-
13
7
  describe('CastSender', () => {
14
8
  const CastSender = shaka.cast.CastSender;
15
9
  const CastUtils = shaka.cast.CastUtils;
@@ -4,19 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.Player');
8
- goog.require('shaka.cast.CastUtils');
9
- goog.require('shaka.media.MediaSourceEngine');
10
- goog.require('shaka.media.TimeRangesUtils');
11
- goog.require('shaka.test.FakeClosedCaptionParser');
12
- goog.require('shaka.test.FakeTextDisplayer');
13
- goog.require('shaka.test.UiUtils');
14
- goog.require('shaka.test.Util');
15
- goog.require('shaka.util.EventManager');
16
- goog.require('shaka.util.FakeEvent');
17
- goog.require('shaka.util.FakeEventTarget');
18
- goog.require('shaka.util.ManifestParserUtils');
19
-
20
7
  describe('CastUtils', () => {
21
8
  const CastUtils = shaka.cast.CastUtils;
22
9
  const FakeEvent = shaka.util.FakeEvent;
@@ -4,11 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.cea.Cea608Memory');
8
- goog.require('shaka.cea.CeaUtils');
9
- goog.require('shaka.test.CeaUtils');
10
- goog.require('shaka.text.Cue');
11
-
12
7
  describe('Cea608Memory', () => {
13
8
  const CeaUtils = shaka.test.CeaUtils;
14
9
 
@@ -4,13 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.cea.Cea708Service');
8
- goog.require('shaka.cea.CeaUtils');
9
- goog.require('shaka.cea.DtvccPacket');
10
- goog.require('shaka.cea.DtvccPacketBuilder');
11
- goog.require('shaka.test.CeaUtils');
12
- goog.require('shaka.text.Cue');
13
-
14
7
  describe('Cea708Service', () => {
15
8
  const CeaUtils = shaka.test.CeaUtils;
16
9
 
@@ -4,11 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.cea.Cea708Window');
8
- goog.require('shaka.cea.CeaUtils');
9
- goog.require('shaka.test.CeaUtils');
10
- goog.require('shaka.text.Cue');
11
-
12
7
  describe('Cea708Window', () => {
13
8
  const CeaUtils = shaka.test.CeaUtils;
14
9
 
@@ -4,12 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.cea.CeaDecoder');
8
- goog.require('shaka.cea.CeaUtils');
9
- goog.require('shaka.log');
10
- goog.require('shaka.test.CeaUtils');
11
- goog.require('shaka.text.Cue');
12
-
13
7
  describe('CeaDecoder', () => {
14
8
  const CeaUtils = shaka.test.CeaUtils;
15
9
 
@@ -4,9 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.cea.DtvccPacket');
8
- goog.require('shaka.cea.DtvccPacketBuilder');
9
-
10
7
  describe('DtvccPacketBuilder', () => {
11
8
  /** @type {!shaka.cea.DtvccPacketBuilder} */
12
9
  let dtvccPacketBuilder;
@@ -4,11 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.cea.DtvccPacket');
8
- goog.require('shaka.cea.DtvccPacketBuilder');
9
- goog.require('shaka.test.Util');
10
- goog.require('shaka.util.Error');
11
-
12
7
  describe('DtvccPacket', () => {
13
8
  /** @type {!shaka.cea.DtvccPacket} */
14
9
  let dtvccPacket;
@@ -4,10 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.cea.Mp4CeaParser');
8
- goog.require('shaka.test.Util');
9
- goog.require('shaka.util.Error');
10
-
11
7
  describe('Mp4CeaParser', () => {
12
8
  const ceaInitSegmentUri = '/base/test/test/assets/cea-init.mp4';
13
9
  const ceaSegmentUri = '/base/test/test/assets/cea-segment.mp4';
@@ -4,15 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.dash.ContentProtection');
8
- goog.require('shaka.dash.DashParser');
9
- goog.require('shaka.test.Dash');
10
- goog.require('shaka.test.FakeNetworkingEngine');
11
- goog.require('shaka.util.Error');
12
- goog.require('shaka.util.Iterables');
13
- goog.require('shaka.util.PlayerConfiguration');
14
- goog.require('shaka.util.Uint8ArrayUtils');
15
-
16
7
  // Test DRM-related parsing.
17
8
  describe('DashParser ContentProtection', () => {
18
9
  const Dash = shaka.test.Dash;
@@ -142,7 +133,7 @@ describe('DashParser ContentProtection', () => {
142
133
 
143
134
  const variants = [];
144
135
  const numVariants = 2;
145
- for (const i of shaka.util.Iterables.range(numVariants)) {
136
+ for (let i = 0; i < numVariants; i++) {
146
137
  const variant = jasmine.objectContaining({
147
138
  video: jasmine.objectContaining({
148
139
  keyIds: new Set(keyIds[i] ? [keyIds[i]] : []),
@@ -4,19 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('goog.asserts');
8
- goog.require('shaka.dash.DashParser');
9
- goog.require('shaka.media.SegmentReference');
10
- goog.require('shaka.net.NetworkingEngine');
11
- goog.require('shaka.test.FakeNetworkingEngine');
12
- goog.require('shaka.test.ManifestParser');
13
- goog.require('shaka.test.Util');
14
- goog.require('shaka.util.AbortableOperation');
15
- goog.require('shaka.util.Error');
16
- goog.require('shaka.util.PlayerConfiguration');
17
- goog.require('shaka.util.StringUtils');
18
- goog.requireType('shaka.util.PublicPromise');
19
-
20
7
  describe('DashParser Live', () => {
21
8
  const Util = shaka.test.Util;
22
9
  const ManifestParser = shaka.test.ManifestParser;
@@ -1228,8 +1215,8 @@ describe('DashParser Live', () => {
1228
1215
  const liveEdge =
1229
1216
  manifest.presentationTimeline.getSegmentAvailabilityEnd();
1230
1217
 
1231
- // In https://github.com/google/shaka-player/issues/1204, a get on the
1232
- // final segment failed an assertion and returned endTime == 0.
1218
+ // In https://github.com/shaka-project/shaka-player/issues/1204, a get on
1219
+ // the final segment failed an assertion and returned endTime == 0.
1233
1220
  // Find the last segment by looking just before the live edge. Looking
1234
1221
  // right on the live edge creates test flake, and the segments are 2
1235
1222
  // seconds in duration.
@@ -1389,6 +1376,49 @@ describe('DashParser Live', () => {
1389
1376
  .toHaveBeenCalledWith(
1390
1377
  jasmine.objectContaining({id: '2', startTime: 10, endTime: 25}));
1391
1378
  });
1379
+
1380
+ it('will not add timeline regions outside the DVR window', async () => {
1381
+ const manifest = [
1382
+ '<MPD type="dynamic" minimumUpdatePeriod="PT' + updateTime + 'S"',
1383
+ ' availabilityStartTime="1970-01-01T00:00:00Z"',
1384
+ ' suggestedPresentationDelay="PT0S"',
1385
+ ' timeShiftBufferDepth="PT30S">',
1386
+ ' <Period id="1">',
1387
+ ' <EventStream schemeIdUri="http://example.com" timescale="1">',
1388
+ ' <Event id="0" presentationTime="0" duration="10"/>',
1389
+ ' <Event id="1" presentationTime="10" duration="10"/>',
1390
+ ' <Event id="2" presentationTime="20" duration="10"/>',
1391
+ ' <Event id="3" presentationTime="30" duration="10"/>',
1392
+ ' <Event id="4" presentationTime="40" duration="10"/>',
1393
+ ' </EventStream>',
1394
+ ' <AdaptationSet mimeType="video/mp4">',
1395
+ ' <Representation bandwidth="1">',
1396
+ ' <SegmentTemplate startNumber="1" media="s$Number$.mp4"',
1397
+ ' duration="2" />',
1398
+ ' </Representation>',
1399
+ ' </AdaptationSet>',
1400
+ ' </Period>',
1401
+ '</MPD>',
1402
+ ].join('\n');
1403
+
1404
+ // 45 seconds after the epoch, which is also 45 seconds after the
1405
+ // presentation started. Only the last 30 seconds are available, from
1406
+ // time 15 to 45.
1407
+ Date.now = () => 45 * 1000;
1408
+
1409
+ fakeNetEngine.setResponseText('dummy://foo', manifest);
1410
+ await parser.start('dummy://foo', playerInterface);
1411
+
1412
+ expect(onTimelineRegionAddedSpy).toHaveBeenCalledTimes(4);
1413
+ expect(onTimelineRegionAddedSpy).toHaveBeenCalledWith(
1414
+ jasmine.objectContaining({id: '1'}));
1415
+ expect(onTimelineRegionAddedSpy).toHaveBeenCalledWith(
1416
+ jasmine.objectContaining({id: '2'}));
1417
+ expect(onTimelineRegionAddedSpy).toHaveBeenCalledWith(
1418
+ jasmine.objectContaining({id: '3'}));
1419
+ expect(onTimelineRegionAddedSpy).toHaveBeenCalledWith(
1420
+ jasmine.objectContaining({id: '4'}));
1421
+ });
1392
1422
  });
1393
1423
 
1394
1424
  it('honors clockSyncUri for in-progress recordings', async () => {
@@ -4,21 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('goog.asserts');
8
- goog.require('shaka.media.SegmentReference');
9
- goog.require('shaka.net.NetworkingEngine');
10
- goog.require('shaka.test.Dash');
11
- goog.require('shaka.test.FakeNetworkingEngine');
12
- goog.require('shaka.test.ManifestGenerator');
13
- goog.require('shaka.test.Util');
14
- goog.require('shaka.util.AbortableOperation');
15
- goog.require('shaka.util.Error');
16
- goog.require('shaka.util.LanguageUtils');
17
- goog.require('shaka.util.ManifestParserUtils');
18
- goog.require('shaka.util.PlayerConfiguration');
19
- goog.require('shaka.util.StringUtils');
20
- goog.requireType('shaka.dash.DashParser');
21
-
22
7
  // Test basic manifest parsing functionality.
23
8
  describe('DashParser Manifest', () => {
24
9
  const ContentType = shaka.util.ManifestParserUtils.ContentType;
@@ -985,7 +970,8 @@ describe('DashParser Manifest', () => {
985
970
 
986
971
  it('duplicate Representation ids with live', async () => {
987
972
  const source = [
988
- '<MPD minBufferTime="PT75S" type="dynamic">',
973
+ '<MPD minBufferTime="PT75S" type="dynamic"',
974
+ ' availabilityStartTime="1970-01-01T00:00:00Z">',
989
975
  ' <Period id="1" duration="PT30S">',
990
976
  ' <AdaptationSet mimeType="video/mp4">',
991
977
  ' <Representation id="1" bandwidth="1">',
@@ -1276,7 +1262,8 @@ describe('DashParser Manifest', () => {
1276
1262
  });
1277
1263
 
1278
1264
  it('handles bandwidth of 0 or missing', async () => {
1279
- // Regression test for https://github.com/google/shaka-player/issues/938
1265
+ // Regression test for
1266
+ // https://github.com/shaka-project/shaka-player/issues/938
1280
1267
  const source = [
1281
1268
  '<MPD minBufferTime="PT75S">',
1282
1269
  ' <Period id="1" duration="PT30S">',
@@ -4,13 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('goog.asserts');
8
- goog.require('shaka.test.Dash');
9
- goog.require('shaka.test.FakeNetworkingEngine');
10
- goog.require('shaka.test.Util');
11
- goog.require('shaka.util.Error');
12
- goog.requireType('shaka.dash.DashParser');
13
-
14
7
  describe('DashParser SegmentBase', () => {
15
8
  const Dash = shaka.test.Dash;
16
9
 
@@ -308,7 +301,7 @@ describe('DashParser SegmentBase', () => {
308
301
  expect(reference.endTime).toBe(10); // would be 12 without PTO
309
302
  });
310
303
 
311
- // https://github.com/google/shaka-player/issues/3230
304
+ // https://github.com/shaka-project/shaka-player/issues/3230
312
305
  it('works with multi-Period with eviction', async () => {
313
306
  const source = [
314
307
  '<MPD mediaPresentationDuration="PT75S">',