shaka-player 3.3.0 → 3.3.3

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 (344) 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 +145 -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 +1722 -1640
  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 +196 -169
  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/shaka-lab.yaml +163 -0
  65. package/build/shakaBuildHelpers.py +4 -29
  66. package/build/test.py +93 -28
  67. package/build/types/polyfill +1 -0
  68. package/build/wrapper.template.js +2 -2
  69. package/demo/TengwarTelcontar.woff2 +0 -0
  70. package/demo/asset_card.js +1 -2
  71. package/demo/cast_receiver/index.html +1 -1
  72. package/demo/cast_receiver/receiver_app.css +14 -14
  73. package/demo/common/assets.js +2 -0
  74. package/demo/config.js +0 -1
  75. package/demo/custom.js +0 -1
  76. package/demo/customWarning.txt +2 -2
  77. package/demo/demo.less +29 -18
  78. package/demo/demo_uncompiled.js +1 -13
  79. package/demo/index.html +1 -1
  80. package/demo/main.js +3 -3
  81. package/dist/controls.css +3 -3
  82. package/dist/controls.css.map +1 -1
  83. package/dist/demo.compiled.debug.js +191 -194
  84. package/dist/demo.compiled.debug.map +4 -4
  85. package/dist/demo.compiled.js +191 -194
  86. package/dist/demo.compiled.map +4 -4
  87. package/dist/demo.css +1 -1
  88. package/dist/demo.css.map +1 -1
  89. package/dist/deps.js +233 -226
  90. package/dist/locales.js +30 -30
  91. package/dist/receiver.compiled.debug.js +43 -45
  92. package/dist/receiver.compiled.debug.map +4 -4
  93. package/dist/receiver.compiled.js +43 -45
  94. package/dist/receiver.compiled.map +4 -4
  95. package/dist/shaka-player.compiled.d.ts +272 -238
  96. package/dist/shaka-player.compiled.debug.d.ts +272 -238
  97. package/dist/shaka-player.compiled.debug.externs.js +53 -16
  98. package/dist/shaka-player.compiled.debug.js +393 -394
  99. package/dist/shaka-player.compiled.debug.map +4 -4
  100. package/dist/shaka-player.compiled.externs.js +53 -16
  101. package/dist/shaka-player.compiled.js +840 -843
  102. package/dist/shaka-player.compiled.map +4 -4
  103. package/dist/shaka-player.ui.d.ts +318 -293
  104. package/dist/shaka-player.ui.debug.d.ts +318 -293
  105. package/dist/shaka-player.ui.debug.externs.js +55 -27
  106. package/dist/shaka-player.ui.debug.js +415 -417
  107. package/dist/shaka-player.ui.debug.map +4 -4
  108. package/dist/shaka-player.ui.externs.js +55 -27
  109. package/dist/shaka-player.ui.js +997 -1000
  110. package/dist/shaka-player.ui.map +4 -4
  111. package/docs/design/REDESIGN.md +33 -33
  112. package/docs/design/bg-fetch.md +2 -2
  113. package/docs/design/codec_preferences.md +1 -1
  114. package/docs/design/dash-audio-channels.md +3 -3
  115. package/docs/design/dash-manifests.md +1 -1
  116. package/docs/design/gap-jumping.md +3 -3
  117. package/docs/design/preload.md +2 -2
  118. package/docs/tutorials/faq.md +8 -8
  119. package/docs/tutorials/index.json +1 -0
  120. package/docs/tutorials/plugins.md +3 -3
  121. package/docs/tutorials/selenium-grid-config.md +122 -0
  122. package/docs/tutorials/welcome.md +10 -2
  123. package/externs/cmcd.js +186 -0
  124. package/externs/shaka/player.js +8 -0
  125. package/externs/shaka/text.js +10 -0
  126. package/karma.conf.js +156 -45
  127. package/lib/abr/simple_abr_manager.js +12 -6
  128. package/lib/ads/ad_manager.js +1 -0
  129. package/lib/cast/cast_proxy.js +6 -4
  130. package/lib/cast/cast_receiver.js +3 -0
  131. package/lib/cea/cea608_data_channel.js +2 -2
  132. package/lib/cea/cea708_service.js +5 -4
  133. package/lib/cea/mp4_cea_parser.js +11 -5
  134. package/lib/cea/sei_processor.js +6 -3
  135. package/lib/dash/dash_parser.js +40 -30
  136. package/lib/dash/mpd_utils.js +4 -5
  137. package/lib/dash/segment_list.js +1 -2
  138. package/lib/dash/segment_template.js +3 -3
  139. package/lib/hls/hls_parser.js +41 -9
  140. package/lib/hls/manifest_text_parser.js +4 -3
  141. package/lib/media/adaptation_set.js +1 -2
  142. package/lib/media/content_workarounds.js +2 -2
  143. package/lib/media/drm_engine.js +3 -2
  144. package/lib/media/media_source_engine.js +3 -2
  145. package/lib/media/mp4_segment_index_parser.js +1 -4
  146. package/lib/media/playhead.js +2 -2
  147. package/lib/media/presentation_timeline.js +18 -8
  148. package/lib/media/quality_observer.js +17 -34
  149. package/lib/media/region_observer.js +39 -33
  150. package/lib/media/region_timeline.js +17 -19
  151. package/lib/media/segment_index.js +2 -1
  152. package/lib/media/segment_reference.js +19 -1
  153. package/lib/media/streaming_engine.js +12 -9
  154. package/lib/media/time_ranges_utils.js +1 -3
  155. package/lib/media/video_wrapper.js +1 -1
  156. package/lib/net/networking_engine.js +5 -1
  157. package/lib/offline/storage.js +12 -13
  158. package/lib/player.js +87 -41
  159. package/lib/polyfill/all.js +2 -3
  160. package/lib/polyfill/encryption_scheme.js +1 -1
  161. package/lib/polyfill/media_capabilities.js +32 -17
  162. package/lib/polyfill/mediasource.js +1 -1
  163. package/lib/polyfill/symbol.js +46 -0
  164. package/lib/text/cue.js +7 -1
  165. package/lib/text/simple_text_displayer.js +2 -1
  166. package/lib/text/ttml_text_parser.js +92 -63
  167. package/lib/text/ui_text_displayer.js +18 -12
  168. package/lib/util/buffer_utils.js +1 -3
  169. package/lib/util/cmcd_manager.js +47 -201
  170. package/lib/util/ebml_parser.js +3 -3
  171. package/lib/util/error.js +1 -1
  172. package/lib/util/fake_event_target.js +21 -1
  173. package/lib/util/iterables.js +0 -46
  174. package/lib/util/mp4_box_parsers.js +1 -4
  175. package/lib/util/mp4_parser.js +5 -7
  176. package/lib/util/periods.js +10 -11
  177. package/lib/util/platform.js +3 -3
  178. package/lib/util/pssh.js +1 -4
  179. package/lib/util/stream_utils.js +88 -11
  180. package/lib/util/string_utils.js +3 -5
  181. package/lib/util/uint8array_utils.js +3 -5
  182. package/lib/util/xml_utils.js +34 -7
  183. package/package.json +62 -40
  184. package/roadmap.md +17 -17
  185. package/shaka-player.uncompiled.js +1 -0
  186. package/test/abr/simple_abr_manager_unit.js +3 -8
  187. package/test/ads/ad_manager_unit.js +0 -6
  188. package/test/cast/cast_proxy_unit.js +0 -8
  189. package/test/cast/cast_receiver_integration.js +1 -18
  190. package/test/cast/cast_receiver_unit.js +1 -9
  191. package/test/cast/cast_sender_unit.js +0 -6
  192. package/test/cast/cast_utils_unit.js +0 -13
  193. package/test/cea/cea608_memory_unit.js +0 -5
  194. package/test/cea/cea708_service_unit.js +0 -7
  195. package/test/cea/cea708_window_unit.js +0 -5
  196. package/test/cea/cea_decoder_unit.js +0 -6
  197. package/test/cea/dtvcc_packet_builder_unit.js +0 -3
  198. package/test/cea/dtvcc_packet_unit.js +0 -5
  199. package/test/cea/mp4_cea_parser_unit.js +0 -4
  200. package/test/dash/dash_parser_content_protection_unit.js +1 -10
  201. package/test/dash/dash_parser_live_unit.js +45 -15
  202. package/test/dash/dash_parser_manifest_unit.js +4 -17
  203. package/test/dash/dash_parser_segment_base_unit.js +1 -8
  204. package/test/dash/dash_parser_segment_list_unit.js +1 -7
  205. package/test/dash/dash_parser_segment_template_unit.js +0 -9
  206. package/test/dash/mpd_utils_unit.js +3 -11
  207. package/test/demo/demo_unit.js +0 -5
  208. package/test/deprecate/enforcer_unit.js +0 -4
  209. package/test/deprecate/version_unit.js +0 -2
  210. package/test/hls/hls_live_unit.js +2 -14
  211. package/test/hls/hls_parser_unit.js +76 -15
  212. package/test/hls/manifest_text_parser_unit.js +0 -10
  213. package/test/media/adaptation_set_criteria_unit.js +3 -7
  214. package/test/media/adaptation_set_unit.js +0 -2
  215. package/test/media/buffering_observer_unit.js +1 -4
  216. package/test/media/closed_caption_parser_unit.js +0 -3
  217. package/test/media/drm_engine_integration.js +2 -15
  218. package/test/media/drm_engine_unit.js +7 -27
  219. package/test/media/manifest_parser_unit.js +0 -4
  220. package/test/media/media_source_engine_integration.js +0 -7
  221. package/test/media/media_source_engine_unit.js +1 -14
  222. package/test/media/mp4_segment_index_parser_unit.js +0 -4
  223. package/test/media/play_rate_controller_unit.js +0 -4
  224. package/test/media/playhead_unit.js +8 -16
  225. package/test/media/presentation_timeline_unit.js +4 -7
  226. package/test/media/quality_observer_unit.js +4 -5
  227. package/test/media/region_observer_unit.js +40 -10
  228. package/test/media/region_timeline_unit.js +40 -25
  229. package/test/media/segment_index_unit.js +0 -6
  230. package/test/media/segment_reference_unit.js +0 -3
  231. package/test/media/stall_detector_unit.js +0 -5
  232. package/test/media/streaming_engine_integration.js +11 -37
  233. package/test/media/streaming_engine_unit.js +155 -34
  234. package/test/media/time_ranges_utils_unit.js +0 -2
  235. package/test/media/transmuxer_integration.js +0 -6
  236. package/test/media/webm_segment_index_parser_unit.js +0 -4
  237. package/test/net/data_uri_plugin_unit.js +0 -7
  238. package/test/net/http_plugin_unit.js +0 -9
  239. package/test/net/networking_engine_unit.js +0 -11
  240. package/test/offline/download_progress_estimator_unit.js +0 -2
  241. package/test/offline/indexeddb_storage_unit.js +0 -6
  242. package/test/offline/manifest_convert_unit.js +0 -8
  243. package/test/offline/offline_integration.js +1 -10
  244. package/test/offline/offline_manifest_parser_unit.js +0 -6
  245. package/test/offline/offline_scheme_unit.js +0 -8
  246. package/test/offline/offline_uri_unit.js +0 -2
  247. package/test/offline/storage_compatibility_unit.js +1 -14
  248. package/test/offline/storage_integration.js +1 -27
  249. package/test/player_external.js +2 -10
  250. package/test/player_integration.js +63 -36
  251. package/test/player_load_graph_integration.js +1 -6
  252. package/test/player_src_equals_external.js +3 -9
  253. package/test/player_src_equals_integration.js +41 -15
  254. package/test/player_unit.js +71 -46
  255. package/test/routing/walker_unit.js +0 -8
  256. package/test/test/assets/chapters.vtt +2 -2
  257. package/test/test/assets/chapters2.vtt +10 -0
  258. package/test/test/assets/large_file.mpd +1 -1
  259. package/test/test/boot.js +75 -22
  260. package/test/test/externs/jasmine.js +2 -2
  261. package/test/test/externs/karma.js +4 -0
  262. package/test/test/namespace.js +10 -0
  263. package/test/test/util/canned_idb.js +0 -8
  264. package/test/test/util/cea_utils.js +0 -6
  265. package/test/test/util/dash_parser_util.js +0 -13
  266. package/test/test/util/fake_ad.js +0 -3
  267. package/test/test/util/fake_ad_manager.js +0 -9
  268. package/test/test/util/fake_demo_main.js +0 -5
  269. package/test/test/util/fake_drm_engine.js +0 -6
  270. package/test/test/util/fake_media_source_engine.js +0 -7
  271. package/test/test/util/fake_networking_engine.js +0 -5
  272. package/test/test/util/fake_text_displayer.js +0 -5
  273. package/test/test/util/indexeddb_utils.js +1 -10
  274. package/test/test/util/jasmine_fetch.js +0 -1
  275. package/test/test/util/loader.js +0 -18
  276. package/test/test/util/manifest_generator.js +9 -14
  277. package/test/test/util/manifest_parser_util.js +0 -6
  278. package/test/test/util/offline_utils.js +0 -5
  279. package/test/test/util/simple_fakes.js +9 -26
  280. package/test/test/util/stream_generator.js +0 -14
  281. package/test/test/util/streaming_engine_util.js +0 -15
  282. package/test/test/util/test_scheme.js +1 -19
  283. package/test/test/util/ttml_utils.js +79 -0
  284. package/test/test/util/ui_utils.js +0 -9
  285. package/test/test/util/util.js +15 -26
  286. package/test/test/util/waiter.js +84 -43
  287. package/test/text/cue_integration.js +0 -4
  288. package/test/text/lrc_text_parser_unit.js +0 -4
  289. package/test/text/mp4_ttml_parser_unit.js +10 -23
  290. package/test/text/mp4_vtt_parser_unit.js +1 -7
  291. package/test/text/sbv_text_parser_unit.js +0 -4
  292. package/test/text/simple_text_displayer_unit.js +1 -8
  293. package/test/text/srt_text_parser_unit.js +0 -4
  294. package/test/text/ssa_text_parser_unit.js +0 -5
  295. package/test/text/text_engine_unit.js +2 -7
  296. package/test/text/text_track_integration.js +0 -2
  297. package/test/text/ttml_text_parser_unit.js +499 -239
  298. package/test/text/ui_text_displayer_unit.js +44 -41
  299. package/test/text/vtt_text_parser_unit.js +0 -9
  300. package/test/text/web_vtt_generator_unit.js +0 -3
  301. package/test/ui/ad_ui_unit.js +0 -11
  302. package/test/ui/localization_unit.js +0 -3
  303. package/test/ui/text_displayer_layout_unit.js +9 -19
  304. package/test/ui/ui_customization_unit.js +0 -6
  305. package/test/ui/ui_integration.js +0 -16
  306. package/test/ui/ui_unit.js +1 -17
  307. package/test/util/abortable_operation_unit.js +4 -9
  308. package/test/util/array_utils_unit.js +0 -2
  309. package/test/util/buffer_utils_unit.js +0 -2
  310. package/test/util/cmcd_manager_unit.js +29 -18
  311. package/test/util/data_view_reader_unit.js +0 -4
  312. package/test/util/ebml_parser_unit.js +0 -4
  313. package/test/util/event_manager_unit.js +0 -3
  314. package/test/util/fake_event_target_unit.js +0 -5
  315. package/test/util/functional_unit.js +1 -1
  316. package/test/util/iterables_unit.js +0 -64
  317. package/test/util/language_utils_unit.js +0 -3
  318. package/test/util/manifest_parser_utils_unit.js +0 -2
  319. package/test/util/mp4_box_parsers_unit.js +0 -5
  320. package/test/util/mp4_parser_unit.js +0 -4
  321. package/test/util/multi_map_unit.js +0 -3
  322. package/test/util/object_utils_unit.js +0 -2
  323. package/test/util/periods_unit.js +14 -7
  324. package/test/util/pssh_unit.js +0 -5
  325. package/test/util/state_history_unit.js +0 -2
  326. package/test/util/stream_utils_unit.js +39 -38
  327. package/test/util/string_utils_unit.js +0 -6
  328. package/test/util/text_parser_unit.js +0 -2
  329. package/test/util/xml_utils_unit.js +0 -4
  330. package/third_party/closure-uri/uri.js +21 -0
  331. package/ui/controls.js +3 -0
  332. package/ui/less/ad_controls.less +4 -4
  333. package/ui/less/buttons.less +5 -5
  334. package/ui/less/containers.less +9 -11
  335. package/ui/less/overflow_menu.less +4 -4
  336. package/ui/less/range_elements.less +5 -0
  337. package/ui/less/tooltip.less +1 -1
  338. package/ui/locales/sjn-translations.yaml +257 -0
  339. package/ui/locales/sjn.json +42 -0
  340. package/ui/localization.js +12 -36
  341. package/ui/text_selection.js +1 -0
  342. package/externs/media_capabilities.js +0 -16
  343. package/externs/svgelement.js +0 -18
  344. package/externs/webcrypto.js +0 -18
@@ -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">',
@@ -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
 
@@ -437,8 +425,8 @@ describe('HlsParser live', () => {
437
425
  '#EXT-X-MAP:URI="init.mp4",BYTERANGE="616@0"\n',
438
426
  '#EXT-X-MEDIA-SEQUENCE:0\n',
439
427
  ].join('');
440
- for (const _ of shaka.util.Iterables.range(1000)) {
441
- shaka.util.Functional.ignored(_);
428
+
429
+ for (let i = 0; i < 1000; i++) {
442
430
  mediaWithManySegments += '#EXTINF:2,\n';
443
431
  mediaWithManySegments += 'main.mp4\n';
444
432
  }
@@ -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;
@@ -211,6 +198,80 @@ describe('HlsParser', () => {
211
198
  expect(actual).toEqual(manifest);
212
199
  });
213
200
 
201
+ it('parses manifest attributes with space', async () => {
202
+ const master = [
203
+ '#EXTM3U\n',
204
+ '#EXT-X-MEDIA:TYPE=AUDIO, GROUP-ID="aud1", LANGUAGE="eng", ',
205
+ 'CHANNELS="16/JOC", URI="audio"\n',
206
+ '#EXT-X-MEDIA:TYPE=SUBTITLES, GROUP-ID="sub1", LANGUAGE="eng", ',
207
+ 'URI="text"\n',
208
+ '#EXT-X-MEDIA:TYPE=SUBTITLES, GROUP-ID="sub2", LANGUAGE="es", ',
209
+ 'URI="text2"\n',
210
+ '#EXT-X-STREAM-INF:BANDWIDTH=200, CODECS="avc1,mp4a", ',
211
+ 'RESOLUTION=960x540, FRAME-RATE=60, AUDIO="aud1"\n',
212
+ 'video\n',
213
+ ].join('');
214
+
215
+ const media = [
216
+ '#EXTM3U\n',
217
+ '#EXT-X-PLAYLIST-TYPE:VOD\n',
218
+ '#EXT-X-MAP:URI="init.mp4",BYTERANGE="616@0"\n',
219
+ '#EXTINF:5,\n',
220
+ '#EXT-X-BYTERANGE:121090@616\n',
221
+ 'main.mp4',
222
+ ].join('');
223
+
224
+ const textMedia = [
225
+ '#EXTM3U\n',
226
+ '#EXT-X-PLAYLIST-TYPE:VOD\n',
227
+ '#EXTINF:5,\n',
228
+ '#EXT-X-BYTERANGE:121090@616\n',
229
+ 'main.vtt',
230
+ ].join('');
231
+
232
+ const manifest = shaka.test.ManifestGenerator.generate((manifest) => {
233
+ manifest.anyTimeline();
234
+ manifest.addPartialVariant((variant) => {
235
+ variant.language = 'en';
236
+ variant.bandwidth = 200;
237
+ variant.addPartialStream(ContentType.VIDEO, (stream) => {
238
+ stream.frameRate = 60;
239
+ stream.mime('video/mp4', 'avc1');
240
+ stream.size(960, 540);
241
+ });
242
+ variant.addPartialStream(ContentType.AUDIO, (stream) => {
243
+ stream.language = 'en';
244
+ stream.channelsCount = 16;
245
+ stream.spatialAudio = true;
246
+ stream.mime('audio/mp4', 'mp4a');
247
+ });
248
+ });
249
+ manifest.addPartialTextStream((stream) => {
250
+ stream.language = 'en';
251
+ stream.kind = TextStreamKind.SUBTITLE;
252
+ stream.mime('text/vtt', '');
253
+ });
254
+ manifest.addPartialTextStream((stream) => {
255
+ stream.language = 'es';
256
+ stream.kind = TextStreamKind.SUBTITLE;
257
+ stream.mime('text/vtt', '');
258
+ });
259
+ });
260
+
261
+ fakeNetEngine
262
+ .setResponseText('test:/master', master)
263
+ .setResponseText('test:/audio', media)
264
+ .setResponseText('test:/video', media)
265
+ .setResponseText('test:/text', textMedia)
266
+ .setResponseText('test:/text2', textMedia)
267
+ .setResponseText('test:/main.vtt', vttText)
268
+ .setResponseValue('test:/init.mp4', initSegmentData)
269
+ .setResponseValue('test:/main.mp4', segmentData);
270
+
271
+ const actual = await parser.start('test:/master', playerInterface);
272
+ expect(actual).toEqual(manifest);
273
+ });
274
+
214
275
  it('prioritize AVERAGE-BANDWIDTH to BANDWIDTH', async () => {
215
276
  const master = [
216
277
  '#EXTM3U\n',
@@ -2870,7 +2931,7 @@ describe('HlsParser', () => {
2870
2931
  expect(audio0).toBe(audio1);
2871
2932
  });
2872
2933
 
2873
- // https://github.com/google/shaka-player/issues/1664
2934
+ // https://github.com/shaka-project/shaka-player/issues/1664
2874
2935
  it('correctly resolves relative playlist URIs', async () => {
2875
2936
  const master = [
2876
2937
  '#EXTM3U\n',
@@ -2913,7 +2974,7 @@ describe('HlsParser', () => {
2913
2974
  expect(manifest.variants.length).toBe(1);
2914
2975
  });
2915
2976
 
2916
- // https://github.com/google/shaka-player/issues/1908
2977
+ // https://github.com/shaka-project/shaka-player/issues/1908
2917
2978
  it('correctly pairs variants with multiple video and audio', async () => {
2918
2979
  const master = [
2919
2980
  '#EXTM3U\n',
@@ -4,16 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
-
8
- goog.require('shaka.hls.Attribute');
9
- goog.require('shaka.hls.ManifestTextParser');
10
- goog.require('shaka.hls.PlaylistType');
11
- goog.require('shaka.hls.Segment');
12
- goog.require('shaka.hls.Tag');
13
- goog.require('shaka.test.Util');
14
- goog.require('shaka.util.Error');
15
- goog.require('shaka.util.StringUtils');
16
-
17
7
  describe('ManifestTextParser', () => {
18
8
  /** @type {!shaka.hls.ManifestTextParser} */
19
9
  let parser;
@@ -4,10 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.media.PreferenceBasedCriteria');
8
- goog.require('shaka.test.ManifestGenerator');
9
- goog.requireType('shaka.media.AdaptationSet');
10
-
11
7
  describe('AdaptationSetCriteria', () => {
12
8
  describe('preference based selection', () => {
13
9
  it('chooses variants in user\'s preferred language', () => {
@@ -84,7 +80,7 @@ describe('AdaptationSetCriteria', () => {
84
80
  });
85
81
 
86
82
  it('chooses only one role, even if none is preferred', () => {
87
- // Regression test for https://github.com/google/shaka-player/issues/949
83
+ // Regression test for https://github.com/shaka-project/shaka-player/issues/949
88
84
  const manifest = shaka.test.ManifestGenerator.generate((manifest) => {
89
85
  manifest.addVariant(1, (variant) => {
90
86
  variant.language = 'en';
@@ -136,7 +132,7 @@ describe('AdaptationSetCriteria', () => {
136
132
  });
137
133
 
138
134
  it('chooses only one role, even if all are primary', () => {
139
- // Regression test for https://github.com/google/shaka-player/issues/949
135
+ // Regression test for https://github.com/shaka-project/shaka-player/issues/949
140
136
  const manifest = shaka.test.ManifestGenerator.generate((manifest) => {
141
137
  manifest.addVariant(1, (variant) => {
142
138
  variant.language = 'en';
@@ -194,7 +190,7 @@ describe('AdaptationSetCriteria', () => {
194
190
  });
195
191
 
196
192
  it('chooses only one language, even if all are primary', () => {
197
- // Regression test for https://github.com/google/shaka-player/issues/918
193
+ // Regression test for https://github.com/shaka-project/shaka-player/issues/918
198
194
  const manifest = shaka.test.ManifestGenerator.generate((manifest) => {
199
195
  manifest.addVariant(1, (variant) => {
200
196
  variant.language = 'en';
@@ -4,8 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.media.AdaptationSet');
8
-
9
7
  describe('AdaptationSet', () => {
10
8
  describe('roles', () => {
11
9
  const mimeType = 'mime-type';
@@ -4,9 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.media.BufferingObserver');
8
- goog.require('shaka.util.Iterables');
9
-
10
7
  describe('BufferingObserver', () => {
11
8
  const BufferingObserver = shaka.media.BufferingObserver;
12
9
  const State = shaka.media.BufferingObserver.State;
@@ -115,7 +112,7 @@ describe('BufferingObserver', () => {
115
112
  /** @type {boolean} */
116
113
  let changed;
117
114
 
118
- for (const lead of shaka.util.Iterables.range(5)) {
115
+ for (let lead = 0; lead < 5; lead++) {
119
116
  changed = controller.update(lead, /* toEnd= */ false);
120
117
  expect(changed).toBeFalsy();
121
118
  }
@@ -4,9 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.media.ClosedCaptionParser');
8
- goog.require('shaka.test.Util');
9
-
10
7
  describe('ClosedCaptionParser', () => {
11
8
  it('can handle empty caption packets', async () => {
12
9
  const initSegment = await shaka.test.Util.fetch(