shaka-player 3.2.3 → 3.2.6

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 (325) hide show
  1. package/.csslintrc +11 -1
  2. package/.github/ISSUE_TEMPLATE/bug_report.md +1 -1
  3. package/.github/workflows/build-and-test.yaml +130 -0
  4. package/.github/workflows/custom-actions/prep-for-appspot/action.yaml +56 -0
  5. package/.github/workflows/custom-actions/set-commit-status/action.yaml +41 -0
  6. package/.github/workflows/demo-version-index.yaml +29 -0
  7. package/.github/workflows/nightly-demo.yaml +42 -0
  8. package/.github/workflows/release-please.yaml +147 -0
  9. package/.github/workflows/safari-homedir-launcher.sh +18 -0
  10. package/.github/workflows/selenium-lab-tests.yaml +93 -0
  11. package/AUTHORS +2 -0
  12. package/CHANGELOG.md +1587 -1551
  13. package/CONTRIBUTING.md +2 -2
  14. package/CONTRIBUTORS +2 -0
  15. package/README.md +7 -7
  16. package/app-engine/README.md +9 -0
  17. package/app-engine/demo-version-index/README.md +14 -0
  18. package/app-engine/demo-version-index/app.yaml +2 -0
  19. package/app-engine/demo-version-index/main.py +162 -0
  20. package/app-engine/demo-version-index/requirements.txt +6 -0
  21. package/app-engine/demo-version-index/templates/index.html +114 -0
  22. package/app-engine/shaka-player-demo/README.md +18 -0
  23. package/app-engine/shaka-player-demo/app.yaml +61 -0
  24. package/app-engine/shaka-player-demo/main.py +95 -0
  25. package/app-engine/shaka-player-demo/posters/10yo.png +0 -0
  26. package/app-engine/shaka-player-demo/posters/10yo.xcf +0 -0
  27. package/app-engine/shaka-player-demo/posters/1yo.jpg +0 -0
  28. package/app-engine/shaka-player-demo/posters/2yo.png +0 -0
  29. package/app-engine/shaka-player-demo/posters/2yo.xcf +0 -0
  30. package/app-engine/shaka-player-demo/posters/3yo.png +0 -0
  31. package/app-engine/shaka-player-demo/posters/3yo.xcf +0 -0
  32. package/app-engine/shaka-player-demo/posters/4yo.png +0 -0
  33. package/app-engine/shaka-player-demo/posters/4yo.xcf +0 -0
  34. package/app-engine/shaka-player-demo/posters/5yo.png +0 -0
  35. package/app-engine/shaka-player-demo/posters/5yo.xcf +0 -0
  36. package/app-engine/shaka-player-demo/posters/6yo.png +0 -0
  37. package/app-engine/shaka-player-demo/posters/6yo.xcf +0 -0
  38. package/app-engine/shaka-player-demo/posters/7yo.png +0 -0
  39. package/app-engine/shaka-player-demo/posters/7yo.xcf +0 -0
  40. package/app-engine/shaka-player-demo/posters/8yo.png +0 -0
  41. package/app-engine/shaka-player-demo/posters/8yo.xcf +0 -0
  42. package/app-engine/shaka-player-demo/posters/9yo.png +0 -0
  43. package/app-engine/shaka-player-demo/posters/9yo.xcf +0 -0
  44. package/app-engine/shaka-player-demo/posters/audioOnly.gif +0 -0
  45. package/app-engine/shaka-player-demo/posters/audioRickRoll.gif +0 -0
  46. package/app-engine/shaka-player-demo/posters/colorbars.gif +0 -0
  47. package/app-engine/shaka-player-demo/posters/fireworks.jpg +0 -0
  48. package/app-engine/shaka-player-demo/posters/party-hat.png +0 -0
  49. package/app-engine/shaka-player-demo/posters/sources.txt +46 -0
  50. package/app-engine/shaka-player-demo/posters/standard.png +0 -0
  51. package/app-engine/shaka-player-demo/posters/trek.jpg +0 -0
  52. package/app-engine/shaka-player-demo/posters/valentines.png +0 -0
  53. package/app-engine/shaka-player-demo/posters/zombie.jpg +0 -0
  54. package/app-engine/shaka-player-demo/posters.py +110 -0
  55. package/app-engine/shaka-player-demo/requirements.txt +5 -0
  56. package/app-engine/shaka-player-demo/time.txt +1 -0
  57. package/build/README.md +1 -1
  58. package/build/checkversion.py +1 -1
  59. package/build/conformance.textproto +13 -0
  60. package/build/docker/Dockerfile +20 -0
  61. package/build/docker/docker-compose.yml +10 -0
  62. package/build/gendeps.py +18 -15
  63. package/build/generateTsDefs.py +2 -0
  64. package/build/shaka-lab.yaml +163 -0
  65. package/build/shakaBuildHelpers.py +4 -29
  66. package/build/test.py +93 -28
  67. package/build/wrapper.template.js +2 -2
  68. package/demo/TengwarTelcontar.woff2 +0 -0
  69. package/demo/asset_card.js +1 -2
  70. package/demo/cast_receiver/index.html +1 -1
  71. package/demo/cast_receiver/receiver_app.css +14 -14
  72. package/demo/common/assets.js +2 -0
  73. package/demo/config.js +0 -1
  74. package/demo/custom.js +0 -1
  75. package/demo/customWarning.txt +2 -2
  76. package/demo/demo.less +29 -18
  77. package/demo/demo_uncompiled.js +1 -13
  78. package/demo/index.html +1 -1
  79. package/demo/main.js +3 -3
  80. package/dist/controls.css +2 -2
  81. package/dist/controls.css.map +1 -1
  82. package/dist/demo.compiled.debug.js +191 -194
  83. package/dist/demo.compiled.debug.map +4 -4
  84. package/dist/demo.compiled.js +191 -194
  85. package/dist/demo.compiled.map +4 -4
  86. package/dist/demo.css +1 -1
  87. package/dist/demo.css.map +1 -1
  88. package/dist/deps.js +225 -219
  89. package/dist/locales.js +27 -27
  90. package/dist/receiver.compiled.debug.js +43 -45
  91. package/dist/receiver.compiled.debug.map +4 -4
  92. package/dist/receiver.compiled.js +43 -45
  93. package/dist/receiver.compiled.map +4 -4
  94. package/dist/shaka-player.compiled.d.ts +228 -225
  95. package/dist/shaka-player.compiled.debug.d.ts +228 -225
  96. package/dist/shaka-player.compiled.debug.externs.js +21 -15
  97. package/dist/shaka-player.compiled.debug.js +326 -333
  98. package/dist/shaka-player.compiled.debug.map +4 -4
  99. package/dist/shaka-player.compiled.externs.js +21 -15
  100. package/dist/shaka-player.compiled.js +818 -821
  101. package/dist/shaka-player.compiled.map +4 -4
  102. package/dist/shaka-player.ui.d.ts +272 -278
  103. package/dist/shaka-player.ui.debug.d.ts +272 -278
  104. package/dist/shaka-player.ui.debug.externs.js +23 -26
  105. package/dist/shaka-player.ui.debug.js +259 -267
  106. package/dist/shaka-player.ui.debug.map +4 -4
  107. package/dist/shaka-player.ui.externs.js +23 -26
  108. package/dist/shaka-player.ui.js +963 -968
  109. package/dist/shaka-player.ui.map +4 -4
  110. package/docs/design/REDESIGN.md +33 -33
  111. package/docs/design/codec_preferences.md +1 -1
  112. package/docs/design/dash-audio-channels.md +3 -3
  113. package/docs/design/dash-manifests.md +1 -1
  114. package/docs/design/gap-jumping.md +3 -3
  115. package/docs/design/preload.md +2 -2
  116. package/docs/tutorials/faq.md +8 -8
  117. package/docs/tutorials/index.json +1 -0
  118. package/docs/tutorials/plugins.md +3 -3
  119. package/docs/tutorials/selenium-grid-config.md +122 -0
  120. package/docs/tutorials/welcome.md +10 -2
  121. package/karma.conf.js +156 -45
  122. package/lib/abr/simple_abr_manager.js +12 -6
  123. package/lib/ads/ad_manager.js +1 -0
  124. package/lib/cast/cast_proxy.js +6 -4
  125. package/lib/cast/cast_receiver.js +3 -0
  126. package/lib/cea/cea608_data_channel.js +2 -2
  127. package/lib/cea/cea708_service.js +5 -4
  128. package/lib/cea/mp4_cea_parser.js +11 -5
  129. package/lib/cea/sei_processor.js +6 -3
  130. package/lib/dash/dash_parser.js +40 -30
  131. package/lib/dash/mpd_utils.js +4 -5
  132. package/lib/dash/segment_list.js +1 -2
  133. package/lib/dash/segment_template.js +3 -3
  134. package/lib/hls/hls_parser.js +11 -9
  135. package/lib/hls/manifest_text_parser.js +4 -3
  136. package/lib/media/adaptation_set.js +1 -2
  137. package/lib/media/content_workarounds.js +2 -2
  138. package/lib/media/drm_engine.js +3 -2
  139. package/lib/media/media_source_engine.js +3 -2
  140. package/lib/media/mp4_segment_index_parser.js +1 -4
  141. package/lib/media/playhead.js +2 -2
  142. package/lib/media/presentation_timeline.js +18 -8
  143. package/lib/media/region_observer.js +39 -33
  144. package/lib/media/region_timeline.js +17 -19
  145. package/lib/media/streaming_engine.js +7 -7
  146. package/lib/media/time_ranges_utils.js +1 -3
  147. package/lib/media/video_wrapper.js +1 -1
  148. package/lib/net/networking_engine.js +5 -1
  149. package/lib/offline/storage.js +12 -13
  150. package/lib/player.js +58 -24
  151. package/lib/polyfill/all.js +2 -3
  152. package/lib/polyfill/encryption_scheme.js +1 -1
  153. package/lib/polyfill/media_capabilities.js +3 -3
  154. package/lib/polyfill/mediasource.js +1 -1
  155. package/lib/text/cue.js +1 -1
  156. package/lib/text/simple_text_displayer.js +2 -1
  157. package/lib/text/ttml_text_parser.js +8 -5
  158. package/lib/text/ui_text_displayer.js +1 -1
  159. package/lib/util/buffer_utils.js +1 -3
  160. package/lib/util/ebml_parser.js +3 -3
  161. package/lib/util/error.js +1 -1
  162. package/lib/util/fake_event_target.js +21 -1
  163. package/lib/util/iterables.js +0 -46
  164. package/lib/util/mp4_box_parsers.js +1 -4
  165. package/lib/util/mp4_parser.js +5 -7
  166. package/lib/util/periods.js +8 -9
  167. package/lib/util/platform.js +3 -3
  168. package/lib/util/pssh.js +1 -4
  169. package/lib/util/stream_utils.js +4 -3
  170. package/lib/util/string_utils.js +3 -5
  171. package/lib/util/uint8array_utils.js +3 -5
  172. package/lib/util/xml_utils.js +15 -7
  173. package/package.json +62 -40
  174. package/roadmap.md +17 -17
  175. package/test/abr/simple_abr_manager_unit.js +3 -8
  176. package/test/ads/ad_manager_unit.js +0 -6
  177. package/test/cast/cast_proxy_unit.js +0 -8
  178. package/test/cast/cast_receiver_integration.js +1 -18
  179. package/test/cast/cast_receiver_unit.js +1 -9
  180. package/test/cast/cast_sender_unit.js +0 -6
  181. package/test/cast/cast_utils_unit.js +0 -13
  182. package/test/cea/cea608_memory_unit.js +0 -5
  183. package/test/cea/cea708_service_unit.js +0 -7
  184. package/test/cea/cea708_window_unit.js +0 -5
  185. package/test/cea/cea_decoder_unit.js +0 -6
  186. package/test/cea/dtvcc_packet_builder_unit.js +0 -3
  187. package/test/cea/dtvcc_packet_unit.js +0 -5
  188. package/test/cea/mp4_cea_parser_unit.js +0 -4
  189. package/test/dash/dash_parser_content_protection_unit.js +1 -10
  190. package/test/dash/dash_parser_live_unit.js +45 -15
  191. package/test/dash/dash_parser_manifest_unit.js +4 -17
  192. package/test/dash/dash_parser_segment_base_unit.js +1 -8
  193. package/test/dash/dash_parser_segment_list_unit.js +1 -7
  194. package/test/dash/dash_parser_segment_template_unit.js +0 -9
  195. package/test/dash/mpd_utils_unit.js +3 -11
  196. package/test/demo/demo_unit.js +0 -5
  197. package/test/deprecate/enforcer_unit.js +0 -4
  198. package/test/deprecate/version_unit.js +0 -2
  199. package/test/hls/hls_live_unit.js +2 -14
  200. package/test/hls/hls_parser_unit.js +76 -15
  201. package/test/hls/manifest_text_parser_unit.js +0 -10
  202. package/test/media/adaptation_set_criteria_unit.js +3 -7
  203. package/test/media/adaptation_set_unit.js +0 -2
  204. package/test/media/buffering_observer_unit.js +1 -4
  205. package/test/media/closed_caption_parser_unit.js +0 -3
  206. package/test/media/drm_engine_integration.js +2 -15
  207. package/test/media/drm_engine_unit.js +4 -24
  208. package/test/media/manifest_parser_unit.js +0 -4
  209. package/test/media/media_source_engine_integration.js +0 -7
  210. package/test/media/media_source_engine_unit.js +1 -14
  211. package/test/media/mp4_segment_index_parser_unit.js +0 -4
  212. package/test/media/play_rate_controller_unit.js +0 -4
  213. package/test/media/playhead_unit.js +8 -16
  214. package/test/media/presentation_timeline_unit.js +4 -7
  215. package/test/media/region_observer_unit.js +40 -10
  216. package/test/media/region_timeline_unit.js +40 -25
  217. package/test/media/segment_index_unit.js +0 -6
  218. package/test/media/segment_reference_unit.js +0 -3
  219. package/test/media/stall_detector_unit.js +0 -5
  220. package/test/media/streaming_engine_integration.js +9 -36
  221. package/test/media/streaming_engine_unit.js +11 -35
  222. package/test/media/time_ranges_utils_unit.js +0 -2
  223. package/test/media/transmuxer_integration.js +0 -6
  224. package/test/media/webm_segment_index_parser_unit.js +0 -4
  225. package/test/net/data_uri_plugin_unit.js +0 -7
  226. package/test/net/http_plugin_unit.js +0 -9
  227. package/test/net/networking_engine_unit.js +0 -11
  228. package/test/offline/download_progress_estimator_unit.js +0 -2
  229. package/test/offline/indexeddb_storage_unit.js +0 -6
  230. package/test/offline/manifest_convert_unit.js +0 -8
  231. package/test/offline/offline_integration.js +1 -10
  232. package/test/offline/offline_manifest_parser_unit.js +0 -6
  233. package/test/offline/offline_scheme_unit.js +0 -8
  234. package/test/offline/offline_uri_unit.js +0 -2
  235. package/test/offline/storage_compatibility_unit.js +1 -14
  236. package/test/offline/storage_integration.js +1 -25
  237. package/test/player_external.js +2 -10
  238. package/test/player_integration.js +21 -28
  239. package/test/player_load_graph_integration.js +1 -6
  240. package/test/player_src_equals_external.js +3 -9
  241. package/test/player_src_equals_integration.js +0 -7
  242. package/test/player_unit.js +52 -37
  243. package/test/routing/walker_unit.js +0 -8
  244. package/test/test/assets/large_file.mpd +1 -1
  245. package/test/test/boot.js +75 -22
  246. package/test/test/externs/jasmine.js +2 -2
  247. package/test/test/externs/karma.js +4 -0
  248. package/test/test/namespace.js +10 -0
  249. package/test/test/util/canned_idb.js +0 -8
  250. package/test/test/util/cea_utils.js +0 -6
  251. package/test/test/util/dash_parser_util.js +0 -13
  252. package/test/test/util/fake_ad.js +0 -3
  253. package/test/test/util/fake_ad_manager.js +0 -9
  254. package/test/test/util/fake_demo_main.js +0 -5
  255. package/test/test/util/fake_drm_engine.js +0 -6
  256. package/test/test/util/fake_media_source_engine.js +0 -7
  257. package/test/test/util/fake_networking_engine.js +0 -5
  258. package/test/test/util/fake_text_displayer.js +0 -5
  259. package/test/test/util/indexeddb_utils.js +1 -10
  260. package/test/test/util/jasmine_fetch.js +0 -1
  261. package/test/test/util/loader.js +0 -18
  262. package/test/test/util/manifest_generator.js +9 -14
  263. package/test/test/util/manifest_parser_util.js +0 -6
  264. package/test/test/util/offline_utils.js +0 -5
  265. package/test/test/util/simple_fakes.js +9 -26
  266. package/test/test/util/stream_generator.js +0 -14
  267. package/test/test/util/streaming_engine_util.js +0 -15
  268. package/test/test/util/test_scheme.js +1 -19
  269. package/test/test/util/ttml_utils.js +0 -2
  270. package/test/test/util/ui_utils.js +0 -9
  271. package/test/test/util/util.js +15 -26
  272. package/test/test/util/waiter.js +84 -43
  273. package/test/text/cue_integration.js +0 -4
  274. package/test/text/lrc_text_parser_unit.js +0 -4
  275. package/test/text/mp4_ttml_parser_unit.js +0 -6
  276. package/test/text/mp4_vtt_parser_unit.js +1 -7
  277. package/test/text/sbv_text_parser_unit.js +0 -4
  278. package/test/text/simple_text_displayer_unit.js +1 -8
  279. package/test/text/srt_text_parser_unit.js +0 -4
  280. package/test/text/ssa_text_parser_unit.js +0 -5
  281. package/test/text/text_engine_unit.js +2 -7
  282. package/test/text/text_track_integration.js +0 -2
  283. package/test/text/ttml_text_parser_unit.js +2 -11
  284. package/test/text/ui_text_displayer_unit.js +44 -41
  285. package/test/text/vtt_text_parser_unit.js +0 -9
  286. package/test/text/web_vtt_generator_unit.js +0 -3
  287. package/test/ui/ad_ui_unit.js +0 -11
  288. package/test/ui/localization_unit.js +0 -3
  289. package/test/ui/text_displayer_layout_unit.js +9 -19
  290. package/test/ui/ui_customization_unit.js +0 -6
  291. package/test/ui/ui_integration.js +0 -16
  292. package/test/ui/ui_unit.js +1 -17
  293. package/test/util/abortable_operation_unit.js +4 -9
  294. package/test/util/array_utils_unit.js +0 -2
  295. package/test/util/buffer_utils_unit.js +0 -2
  296. package/test/util/data_view_reader_unit.js +0 -4
  297. package/test/util/ebml_parser_unit.js +0 -4
  298. package/test/util/event_manager_unit.js +0 -3
  299. package/test/util/fake_event_target_unit.js +0 -5
  300. package/test/util/functional_unit.js +1 -1
  301. package/test/util/iterables_unit.js +0 -64
  302. package/test/util/language_utils_unit.js +0 -3
  303. package/test/util/manifest_parser_utils_unit.js +0 -2
  304. package/test/util/mp4_box_parsers_unit.js +0 -5
  305. package/test/util/mp4_parser_unit.js +0 -4
  306. package/test/util/multi_map_unit.js +0 -3
  307. package/test/util/object_utils_unit.js +0 -2
  308. package/test/util/periods_unit.js +14 -7
  309. package/test/util/pssh_unit.js +0 -5
  310. package/test/util/state_history_unit.js +0 -2
  311. package/test/util/stream_utils_unit.js +3 -8
  312. package/test/util/string_utils_unit.js +0 -6
  313. package/test/util/text_parser_unit.js +0 -2
  314. package/test/util/xml_utils_unit.js +0 -4
  315. package/ui/controls.js +3 -0
  316. package/ui/less/ad_controls.less +6 -6
  317. package/ui/less/buttons.less +6 -6
  318. package/ui/less/containers.less +9 -11
  319. package/ui/less/overflow_menu.less +4 -4
  320. package/ui/less/range_elements.less +7 -2
  321. package/ui/locales/sjn-translations.yaml +257 -0
  322. package/ui/locales/sjn.json +42 -0
  323. package/ui/localization.js +12 -36
  324. package/ui/seek_bar.js +2 -1
  325. package/externs/svgelement.js +0 -18
@@ -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;
@@ -140,7 +131,7 @@ describe('DashParser ContentProtection', () => {
140
131
 
141
132
  const variants = [];
142
133
  const numVariants = 2;
143
- for (const i of shaka.util.Iterables.range(numVariants)) {
134
+ for (let i = 0; i < numVariants; i++) {
144
135
  const variant = jasmine.objectContaining({
145
136
  video: jasmine.objectContaining({
146
137
  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;
@@ -1128,8 +1115,8 @@ describe('DashParser Live', () => {
1128
1115
  const liveEdge =
1129
1116
  manifest.presentationTimeline.getSegmentAvailabilityEnd();
1130
1117
 
1131
- // In https://github.com/google/shaka-player/issues/1204, a get on the
1132
- // final segment failed an assertion and returned endTime == 0.
1118
+ // In https://github.com/shaka-project/shaka-player/issues/1204, a get on
1119
+ // the final segment failed an assertion and returned endTime == 0.
1133
1120
  // Find the last segment by looking just before the live edge. Looking
1134
1121
  // right on the live edge creates test flake, and the segments are 2
1135
1122
  // seconds in duration.
@@ -1289,6 +1276,49 @@ describe('DashParser Live', () => {
1289
1276
  .toHaveBeenCalledWith(
1290
1277
  jasmine.objectContaining({id: '2', startTime: 10, endTime: 25}));
1291
1278
  });
1279
+
1280
+ it('will not add timeline regions outside the DVR window', async () => {
1281
+ const manifest = [
1282
+ '<MPD type="dynamic" minimumUpdatePeriod="PT' + updateTime + 'S"',
1283
+ ' availabilityStartTime="1970-01-01T00:00:00Z"',
1284
+ ' suggestedPresentationDelay="PT0S"',
1285
+ ' timeShiftBufferDepth="PT30S">',
1286
+ ' <Period id="1">',
1287
+ ' <EventStream schemeIdUri="http://example.com" timescale="1">',
1288
+ ' <Event id="0" presentationTime="0" duration="10"/>',
1289
+ ' <Event id="1" presentationTime="10" duration="10"/>',
1290
+ ' <Event id="2" presentationTime="20" duration="10"/>',
1291
+ ' <Event id="3" presentationTime="30" duration="10"/>',
1292
+ ' <Event id="4" presentationTime="40" duration="10"/>',
1293
+ ' </EventStream>',
1294
+ ' <AdaptationSet mimeType="video/mp4">',
1295
+ ' <Representation bandwidth="1">',
1296
+ ' <SegmentTemplate startNumber="1" media="s$Number$.mp4"',
1297
+ ' duration="2" />',
1298
+ ' </Representation>',
1299
+ ' </AdaptationSet>',
1300
+ ' </Period>',
1301
+ '</MPD>',
1302
+ ].join('\n');
1303
+
1304
+ // 45 seconds after the epoch, which is also 45 seconds after the
1305
+ // presentation started. Only the last 30 seconds are available, from
1306
+ // time 15 to 45.
1307
+ Date.now = () => 45 * 1000;
1308
+
1309
+ fakeNetEngine.setResponseText('dummy://foo', manifest);
1310
+ await parser.start('dummy://foo', playerInterface);
1311
+
1312
+ expect(onTimelineRegionAddedSpy).toHaveBeenCalledTimes(4);
1313
+ expect(onTimelineRegionAddedSpy).toHaveBeenCalledWith(
1314
+ jasmine.objectContaining({id: '1'}));
1315
+ expect(onTimelineRegionAddedSpy).toHaveBeenCalledWith(
1316
+ jasmine.objectContaining({id: '2'}));
1317
+ expect(onTimelineRegionAddedSpy).toHaveBeenCalledWith(
1318
+ jasmine.objectContaining({id: '3'}));
1319
+ expect(onTimelineRegionAddedSpy).toHaveBeenCalledWith(
1320
+ jasmine.objectContaining({id: '4'}));
1321
+ });
1292
1322
  });
1293
1323
 
1294
1324
  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;
@@ -983,7 +968,8 @@ describe('DashParser Manifest', () => {
983
968
 
984
969
  it('duplicate Representation ids with live', async () => {
985
970
  const source = [
986
- '<MPD minBufferTime="PT75S" type="dynamic">',
971
+ '<MPD minBufferTime="PT75S" type="dynamic"',
972
+ ' availabilityStartTime="1970-01-01T00:00:00Z">',
987
973
  ' <Period id="1" duration="PT30S">',
988
974
  ' <AdaptationSet mimeType="video/mp4">',
989
975
  ' <Representation id="1" bandwidth="1">',
@@ -1274,7 +1260,8 @@ describe('DashParser Manifest', () => {
1274
1260
  });
1275
1261
 
1276
1262
  it('handles bandwidth of 0 or missing', async () => {
1277
- // Regression test for https://github.com/google/shaka-player/issues/938
1263
+ // Regression test for
1264
+ // https://github.com/shaka-project/shaka-player/issues/938
1278
1265
  const source = [
1279
1266
  '<MPD minBufferTime="PT75S">',
1280
1267
  ' <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
 
@@ -306,7 +299,7 @@ describe('DashParser SegmentBase', () => {
306
299
  expect(reference.endTime).toBe(10); // would be 12 without PTO
307
300
  });
308
301
 
309
- // https://github.com/google/shaka-player/issues/3230
302
+ // https://github.com/shaka-project/shaka-player/issues/3230
310
303
  it('works with multi-Period with eviction', async () => {
311
304
  const source = [
312
305
  '<MPD mediaPresentationDuration="PT75S">',
@@ -4,12 +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.ManifestParser');
11
- goog.require('shaka.util.Error');
12
-
13
7
  describe('DashParser SegmentList', () => {
14
8
  const Dash = shaka.test.Dash;
15
9
  const ManifestParser = shaka.test.ManifestParser;
@@ -308,7 +302,7 @@ describe('DashParser SegmentList', () => {
308
302
  });
309
303
  });
310
304
 
311
- // https://github.com/google/shaka-player/issues/3230
305
+ // https://github.com/shaka-project/shaka-player/issues/3230
312
306
  it('works with multi-Period with eviction', async () => {
313
307
  const setFormat = [
314
308
  ' <AdaptationSet mimeType="video/mp4">',
@@ -4,15 +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.ManifestParser');
11
- goog.require('shaka.test.Util');
12
- goog.require('shaka.util.Error');
13
- goog.require('shaka.util.PlayerConfiguration');
14
- goog.requireType('shaka.dash.DashParser');
15
-
16
7
  describe('DashParser SegmentTemplate', () => {
17
8
  const Dash = shaka.test.Dash;
18
9
  const ManifestParser = shaka.test.ManifestParser;
@@ -4,14 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.dash.MpdUtils');
8
- goog.require('shaka.net.NetworkingEngine');
9
- goog.require('shaka.test.FakeNetworkingEngine');
10
- goog.require('shaka.test.Util');
11
- goog.require('shaka.util.Error');
12
- goog.require('shaka.util.Iterables');
13
- goog.requireType('shaka.util.PublicPromise');
14
-
15
7
  describe('MpdUtils', () => {
16
8
  const MpdUtils = shaka.dash.MpdUtils;
17
9
 
@@ -384,7 +376,7 @@ describe('MpdUtils', () => {
384
376
 
385
377
  it('adjust start time w/ t missing', () => {
386
378
  // No S@t is equivalent to t=0, which should use PTO to make negative.
387
- // See https://github.com/google/shaka-player/issues/2590
379
+ // See https://github.com/shaka-project/shaka-player/issues/2590
388
380
  const timePoints = [
389
381
  createTimePoint(null, 10, 0),
390
382
  createTimePoint(10, 10, 0),
@@ -536,7 +528,7 @@ describe('MpdUtils', () => {
536
528
  '<ToReplace xlink:href="https://xlink0" xlink:actuate="onLoad" />');
537
529
  // Create a large but finite number of links, so this won't
538
530
  // infinitely recurse if there isn't a depth limit.
539
- for (const i of shaka.util.Iterables.range(20)) {
531
+ for (let i = 0; i < 20; i++) {
540
532
  const key = 'https://xlink' + i;
541
533
  const value = makeRecursiveXMLString(0, 'https://xlink' + (i + 1));
542
534
 
@@ -659,7 +651,7 @@ describe('MpdUtils', () => {
659
651
  '<ToReplace xlink:href="https://xlink0" xlink:actuate="onLoad" />');
660
652
  // Create a few links. This is few enough that it would succeed if we
661
653
  // didn't abort it.
662
- for (const i of shaka.util.Iterables.range(4)) {
654
+ for (let i = 0; i < 4; i++) {
663
655
  const key = 'https://xlink' + i;
664
656
  const value = makeRecursiveXMLString(0, 'https://xlink' + (i + 1));
665
657
 
@@ -4,11 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.test.FakeDemoMain');
8
- goog.require('shaka.test.Util');
9
- goog.require('shaka.util.StringUtils');
10
- goog.require('shakaDemo.MessageIds');
11
-
12
7
  describe('Demo', () => {
13
8
  beforeEach(() => {
14
9
  // Make mock versions of misc third-party libraries.
@@ -4,10 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.deprecate.Enforcer');
8
- goog.require('shaka.deprecate.Version');
9
- goog.require('shaka.test.Util');
10
-
11
7
  describe('Enforcer', () => {
12
8
  const Enforcer = shaka.deprecate.Enforcer;
13
9
  const Version = shaka.deprecate.Version;
@@ -4,8 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.deprecate.Version');
8
-
9
7
  describe('Version', () => {
10
8
  const Version = shaka.deprecate.Version;
11
9
 
@@ -4,18 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('goog.asserts');
8
- goog.require('shaka.hls.HlsParser');
9
- goog.require('shaka.net.NetworkingEngine');
10
- goog.require('shaka.test.FakeNetworkingEngine');
11
- goog.require('shaka.test.ManifestParser');
12
- goog.require('shaka.test.Util');
13
- goog.require('shaka.util.Functional');
14
- goog.require('shaka.util.Iterables');
15
- goog.require('shaka.util.PlayerConfiguration');
16
- goog.require('shaka.util.Uint8ArrayUtils');
17
- goog.requireType('shaka.util.PublicPromise');
18
-
19
7
  describe('HlsParser live', () => {
20
8
  const ManifestParser = shaka.test.ManifestParser;
21
9
 
@@ -435,8 +423,8 @@ describe('HlsParser live', () => {
435
423
  '#EXT-X-MAP:URI="init.mp4",BYTERANGE="616@0"\n',
436
424
  '#EXT-X-MEDIA-SEQUENCE:0\n',
437
425
  ].join('');
438
- for (const _ of shaka.util.Iterables.range(1000)) {
439
- shaka.util.Functional.ignored(_);
426
+
427
+ for (let i = 0; i < 1000; i++) {
440
428
  mediaWithManySegments += '#EXTINF:2,\n';
441
429
  mediaWithManySegments += 'main.mp4\n';
442
430
  }
@@ -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.hls.HlsParser');
9
- goog.require('shaka.log');
10
- goog.require('shaka.net.NetworkingEngine');
11
- goog.require('shaka.test.FakeNetworkingEngine');
12
- goog.require('shaka.test.ManifestGenerator');
13
- goog.require('shaka.test.ManifestParser');
14
- goog.require('shaka.test.Util');
15
- goog.require('shaka.util.Error');
16
- goog.require('shaka.util.ManifestParserUtils');
17
- goog.require('shaka.util.PlayerConfiguration');
18
- goog.require('shaka.util.Uint8ArrayUtils');
19
-
20
7
  describe('HlsParser', () => {
21
8
  const ContentType = shaka.util.ManifestParserUtils.ContentType;
22
9
  const ManifestParser = shaka.test.ManifestParser;
@@ -209,6 +196,80 @@ describe('HlsParser', () => {
209
196
  expect(actual).toEqual(manifest);
210
197
  });
211
198
 
199
+ it('parses manifest attributes with space', async () => {
200
+ const master = [
201
+ '#EXTM3U\n',
202
+ '#EXT-X-MEDIA:TYPE=AUDIO, GROUP-ID="aud1", LANGUAGE="eng", ',
203
+ 'CHANNELS="16/JOC", URI="audio"\n',
204
+ '#EXT-X-MEDIA:TYPE=SUBTITLES, GROUP-ID="sub1", LANGUAGE="eng", ',
205
+ 'URI="text"\n',
206
+ '#EXT-X-MEDIA:TYPE=SUBTITLES, GROUP-ID="sub2", LANGUAGE="es", ',
207
+ 'URI="text2"\n',
208
+ '#EXT-X-STREAM-INF:BANDWIDTH=200, CODECS="avc1,mp4a", ',
209
+ 'RESOLUTION=960x540, FRAME-RATE=60, AUDIO="aud1"\n',
210
+ 'video\n',
211
+ ].join('');
212
+
213
+ const media = [
214
+ '#EXTM3U\n',
215
+ '#EXT-X-PLAYLIST-TYPE:VOD\n',
216
+ '#EXT-X-MAP:URI="init.mp4",BYTERANGE="616@0"\n',
217
+ '#EXTINF:5,\n',
218
+ '#EXT-X-BYTERANGE:121090@616\n',
219
+ 'main.mp4',
220
+ ].join('');
221
+
222
+ const textMedia = [
223
+ '#EXTM3U\n',
224
+ '#EXT-X-PLAYLIST-TYPE:VOD\n',
225
+ '#EXTINF:5,\n',
226
+ '#EXT-X-BYTERANGE:121090@616\n',
227
+ 'main.vtt',
228
+ ].join('');
229
+
230
+ const manifest = shaka.test.ManifestGenerator.generate((manifest) => {
231
+ manifest.anyTimeline();
232
+ manifest.addPartialVariant((variant) => {
233
+ variant.language = 'en';
234
+ variant.bandwidth = 200;
235
+ variant.addPartialStream(ContentType.VIDEO, (stream) => {
236
+ stream.frameRate = 60;
237
+ stream.mime('video/mp4', 'avc1');
238
+ stream.size(960, 540);
239
+ });
240
+ variant.addPartialStream(ContentType.AUDIO, (stream) => {
241
+ stream.language = 'en';
242
+ stream.channelsCount = 16;
243
+ stream.spatialAudio = true;
244
+ stream.mime('audio/mp4', 'mp4a');
245
+ });
246
+ });
247
+ manifest.addPartialTextStream((stream) => {
248
+ stream.language = 'en';
249
+ stream.kind = TextStreamKind.SUBTITLE;
250
+ stream.mime('text/vtt', '');
251
+ });
252
+ manifest.addPartialTextStream((stream) => {
253
+ stream.language = 'es';
254
+ stream.kind = TextStreamKind.SUBTITLE;
255
+ stream.mime('text/vtt', '');
256
+ });
257
+ });
258
+
259
+ fakeNetEngine
260
+ .setResponseText('test:/master', master)
261
+ .setResponseText('test:/audio', media)
262
+ .setResponseText('test:/video', media)
263
+ .setResponseText('test:/text', textMedia)
264
+ .setResponseText('test:/text2', textMedia)
265
+ .setResponseText('test:/main.vtt', vttText)
266
+ .setResponseValue('test:/init.mp4', initSegmentData)
267
+ .setResponseValue('test:/main.mp4', segmentData);
268
+
269
+ const actual = await parser.start('test:/master', playerInterface);
270
+ expect(actual).toEqual(manifest);
271
+ });
272
+
212
273
  it('prioritize AVERAGE-BANDWIDTH to BANDWIDTH', async () => {
213
274
  const master = [
214
275
  '#EXTM3U\n',
@@ -2868,7 +2929,7 @@ describe('HlsParser', () => {
2868
2929
  expect(audio0).toBe(audio1);
2869
2930
  });
2870
2931
 
2871
- // https://github.com/google/shaka-player/issues/1664
2932
+ // https://github.com/shaka-project/shaka-player/issues/1664
2872
2933
  it('correctly resolves relative playlist URIs', async () => {
2873
2934
  const master = [
2874
2935
  '#EXTM3U\n',
@@ -2911,7 +2972,7 @@ describe('HlsParser', () => {
2911
2972
  expect(manifest.variants.length).toBe(1);
2912
2973
  });
2913
2974
 
2914
- // https://github.com/google/shaka-player/issues/1908
2975
+ // https://github.com/shaka-project/shaka-player/issues/1908
2915
2976
  it('correctly pairs variants with multiple video and audio', async () => {
2916
2977
  const master = [
2917
2978
  '#EXTM3U\n',