shaka-player 3.2.2 → 3.2.5

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 (331) 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 +145 -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 +1598 -1525
  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/shaka-lab.yaml +163 -0
  64. package/build/shakaBuildHelpers.py +4 -29
  65. package/build/test.py +93 -28
  66. package/build/wrapper.template.js +2 -2
  67. package/demo/TengwarTelcontar.woff2 +0 -0
  68. package/demo/asset_card.js +1 -2
  69. package/demo/cast_receiver/index.html +1 -1
  70. package/demo/cast_receiver/receiver_app.css +14 -14
  71. package/demo/common/assets.js +2 -0
  72. package/demo/config.js +0 -1
  73. package/demo/custom.js +0 -1
  74. package/demo/customWarning.txt +2 -2
  75. package/demo/demo.less +29 -18
  76. package/demo/demo_uncompiled.js +1 -13
  77. package/demo/index.html +1 -1
  78. package/demo/main.js +3 -3
  79. package/dist/controls.css +2 -2
  80. package/dist/controls.css.map +1 -1
  81. package/dist/demo.compiled.debug.js +191 -194
  82. package/dist/demo.compiled.debug.map +4 -4
  83. package/dist/demo.compiled.js +191 -194
  84. package/dist/demo.compiled.map +4 -4
  85. package/dist/demo.css +1 -1
  86. package/dist/demo.css.map +1 -1
  87. package/dist/deps.js +225 -219
  88. package/dist/locales.js +31 -31
  89. package/dist/receiver.compiled.debug.js +43 -45
  90. package/dist/receiver.compiled.debug.map +4 -4
  91. package/dist/receiver.compiled.js +43 -45
  92. package/dist/receiver.compiled.map +4 -4
  93. package/dist/shaka-player.compiled.d.ts +247 -227
  94. package/dist/shaka-player.compiled.debug.d.ts +247 -227
  95. package/dist/shaka-player.compiled.debug.externs.js +43 -16
  96. package/dist/shaka-player.compiled.debug.js +384 -388
  97. package/dist/shaka-player.compiled.debug.map +4 -4
  98. package/dist/shaka-player.compiled.externs.js +43 -16
  99. package/dist/shaka-player.compiled.js +818 -817
  100. package/dist/shaka-player.compiled.map +4 -4
  101. package/dist/shaka-player.ui.d.ts +291 -280
  102. package/dist/shaka-player.ui.debug.d.ts +291 -280
  103. package/dist/shaka-player.ui.debug.externs.js +45 -27
  104. package/dist/shaka-player.ui.debug.js +389 -394
  105. package/dist/shaka-player.ui.debug.map +4 -4
  106. package/dist/shaka-player.ui.externs.js +45 -27
  107. package/dist/shaka-player.ui.js +964 -965
  108. package/dist/shaka-player.ui.map +4 -4
  109. package/docs/design/REDESIGN.md +33 -33
  110. package/docs/design/codec_preferences.md +1 -1
  111. package/docs/design/dash-audio-channels.md +3 -3
  112. package/docs/design/dash-manifests.md +1 -1
  113. package/docs/design/gap-jumping.md +3 -3
  114. package/docs/design/preload.md +2 -2
  115. package/docs/tutorials/faq.md +8 -8
  116. package/docs/tutorials/index.json +1 -0
  117. package/docs/tutorials/plugins.md +3 -3
  118. package/docs/tutorials/selenium-grid-config.md +122 -0
  119. package/docs/tutorials/welcome.md +10 -2
  120. package/externs/shaka/player.js +8 -0
  121. package/externs/shaka/text.js +10 -0
  122. package/karma.conf.js +156 -45
  123. package/lib/abr/simple_abr_manager.js +12 -6
  124. package/lib/ads/ad_manager.js +1 -0
  125. package/lib/cast/cast_proxy.js +6 -4
  126. package/lib/cast/cast_receiver.js +3 -0
  127. package/lib/cea/cea608_data_channel.js +2 -2
  128. package/lib/cea/cea708_service.js +5 -4
  129. package/lib/cea/mp4_cea_parser.js +11 -5
  130. package/lib/cea/sei_processor.js +6 -3
  131. package/lib/dash/dash_parser.js +43 -31
  132. package/lib/dash/mpd_utils.js +4 -5
  133. package/lib/dash/segment_list.js +1 -2
  134. package/lib/dash/segment_template.js +3 -3
  135. package/lib/hls/hls_parser.js +41 -9
  136. package/lib/hls/manifest_text_parser.js +4 -3
  137. package/lib/media/adaptation_set.js +1 -2
  138. package/lib/media/content_workarounds.js +2 -2
  139. package/lib/media/drm_engine.js +3 -2
  140. package/lib/media/media_source_engine.js +3 -2
  141. package/lib/media/mp4_segment_index_parser.js +1 -4
  142. package/lib/media/playhead.js +2 -2
  143. package/lib/media/presentation_timeline.js +18 -8
  144. package/lib/media/region_observer.js +39 -33
  145. package/lib/media/region_timeline.js +17 -19
  146. package/lib/media/segment_index.js +2 -1
  147. package/lib/media/segment_reference.js +19 -1
  148. package/lib/media/streaming_engine.js +12 -9
  149. package/lib/media/time_ranges_utils.js +1 -3
  150. package/lib/media/video_wrapper.js +1 -1
  151. package/lib/net/networking_engine.js +5 -1
  152. package/lib/offline/storage.js +12 -13
  153. package/lib/player.js +77 -36
  154. package/lib/polyfill/all.js +2 -3
  155. package/lib/polyfill/encryption_scheme.js +1 -1
  156. package/lib/polyfill/media_capabilities.js +32 -17
  157. package/lib/polyfill/mediasource.js +1 -1
  158. package/lib/text/cue.js +7 -1
  159. package/lib/text/simple_text_displayer.js +2 -1
  160. package/lib/text/ttml_text_parser.js +92 -63
  161. package/lib/text/ui_text_displayer.js +18 -12
  162. package/lib/util/buffer_utils.js +1 -3
  163. package/lib/util/ebml_parser.js +3 -3
  164. package/lib/util/error.js +1 -1
  165. package/lib/util/fake_event_target.js +21 -1
  166. package/lib/util/iterables.js +0 -46
  167. package/lib/util/mp4_box_parsers.js +1 -4
  168. package/lib/util/mp4_parser.js +5 -7
  169. package/lib/util/periods.js +8 -9
  170. package/lib/util/platform.js +3 -3
  171. package/lib/util/pssh.js +1 -4
  172. package/lib/util/stream_utils.js +88 -11
  173. package/lib/util/string_utils.js +3 -5
  174. package/lib/util/uint8array_utils.js +3 -5
  175. package/lib/util/xml_utils.js +34 -7
  176. package/package.json +62 -40
  177. package/roadmap.md +17 -17
  178. package/test/abr/simple_abr_manager_unit.js +3 -8
  179. package/test/ads/ad_manager_unit.js +0 -6
  180. package/test/cast/cast_proxy_unit.js +0 -8
  181. package/test/cast/cast_receiver_integration.js +1 -18
  182. package/test/cast/cast_receiver_unit.js +1 -9
  183. package/test/cast/cast_sender_unit.js +0 -6
  184. package/test/cast/cast_utils_unit.js +0 -13
  185. package/test/cea/cea608_memory_unit.js +0 -5
  186. package/test/cea/cea708_service_unit.js +0 -7
  187. package/test/cea/cea708_window_unit.js +0 -5
  188. package/test/cea/cea_decoder_unit.js +0 -6
  189. package/test/cea/dtvcc_packet_builder_unit.js +0 -3
  190. package/test/cea/dtvcc_packet_unit.js +0 -5
  191. package/test/cea/mp4_cea_parser_unit.js +0 -4
  192. package/test/dash/dash_parser_content_protection_unit.js +1 -10
  193. package/test/dash/dash_parser_live_unit.js +45 -15
  194. package/test/dash/dash_parser_manifest_unit.js +37 -18
  195. package/test/dash/dash_parser_segment_base_unit.js +1 -8
  196. package/test/dash/dash_parser_segment_list_unit.js +1 -7
  197. package/test/dash/dash_parser_segment_template_unit.js +0 -9
  198. package/test/dash/mpd_utils_unit.js +3 -11
  199. package/test/demo/demo_unit.js +0 -5
  200. package/test/deprecate/enforcer_unit.js +0 -4
  201. package/test/deprecate/version_unit.js +0 -2
  202. package/test/hls/hls_live_unit.js +2 -14
  203. package/test/hls/hls_parser_unit.js +76 -15
  204. package/test/hls/manifest_text_parser_unit.js +0 -10
  205. package/test/media/adaptation_set_criteria_unit.js +3 -7
  206. package/test/media/adaptation_set_unit.js +0 -2
  207. package/test/media/buffering_observer_unit.js +1 -4
  208. package/test/media/closed_caption_parser_unit.js +0 -3
  209. package/test/media/drm_engine_integration.js +2 -15
  210. package/test/media/drm_engine_unit.js +7 -27
  211. package/test/media/manifest_parser_unit.js +0 -4
  212. package/test/media/media_source_engine_integration.js +0 -7
  213. package/test/media/media_source_engine_unit.js +1 -14
  214. package/test/media/mp4_segment_index_parser_unit.js +0 -4
  215. package/test/media/play_rate_controller_unit.js +0 -4
  216. package/test/media/playhead_unit.js +8 -16
  217. package/test/media/presentation_timeline_unit.js +4 -7
  218. package/test/media/region_observer_unit.js +40 -10
  219. package/test/media/region_timeline_unit.js +40 -25
  220. package/test/media/segment_index_unit.js +0 -6
  221. package/test/media/segment_reference_unit.js +0 -3
  222. package/test/media/stall_detector_unit.js +0 -5
  223. package/test/media/streaming_engine_integration.js +11 -37
  224. package/test/media/streaming_engine_unit.js +155 -34
  225. package/test/media/time_ranges_utils_unit.js +0 -2
  226. package/test/media/transmuxer_integration.js +0 -6
  227. package/test/media/webm_segment_index_parser_unit.js +0 -4
  228. package/test/net/data_uri_plugin_unit.js +0 -7
  229. package/test/net/http_plugin_unit.js +0 -9
  230. package/test/net/networking_engine_unit.js +0 -11
  231. package/test/offline/download_progress_estimator_unit.js +0 -2
  232. package/test/offline/indexeddb_storage_unit.js +0 -6
  233. package/test/offline/manifest_convert_unit.js +0 -8
  234. package/test/offline/offline_integration.js +1 -10
  235. package/test/offline/offline_manifest_parser_unit.js +0 -6
  236. package/test/offline/offline_scheme_unit.js +0 -8
  237. package/test/offline/offline_uri_unit.js +0 -2
  238. package/test/offline/storage_compatibility_unit.js +1 -14
  239. package/test/offline/storage_integration.js +1 -25
  240. package/test/player_external.js +2 -10
  241. package/test/player_integration.js +62 -36
  242. package/test/player_load_graph_integration.js +1 -6
  243. package/test/player_src_equals_external.js +3 -9
  244. package/test/player_src_equals_integration.js +41 -15
  245. package/test/player_unit.js +71 -46
  246. package/test/routing/walker_unit.js +0 -8
  247. package/test/test/assets/chapters.vtt +2 -2
  248. package/test/test/assets/chapters2.vtt +10 -0
  249. package/test/test/assets/large_file.mpd +1 -1
  250. package/test/test/boot.js +75 -22
  251. package/test/test/externs/jasmine.js +2 -2
  252. package/test/test/externs/karma.js +4 -0
  253. package/test/test/namespace.js +10 -0
  254. package/test/test/util/canned_idb.js +0 -8
  255. package/test/test/util/cea_utils.js +0 -6
  256. package/test/test/util/dash_parser_util.js +0 -13
  257. package/test/test/util/fake_ad.js +0 -3
  258. package/test/test/util/fake_ad_manager.js +0 -9
  259. package/test/test/util/fake_demo_main.js +0 -5
  260. package/test/test/util/fake_drm_engine.js +0 -6
  261. package/test/test/util/fake_media_source_engine.js +0 -7
  262. package/test/test/util/fake_networking_engine.js +0 -5
  263. package/test/test/util/fake_text_displayer.js +0 -5
  264. package/test/test/util/indexeddb_utils.js +1 -10
  265. package/test/test/util/jasmine_fetch.js +0 -1
  266. package/test/test/util/loader.js +0 -18
  267. package/test/test/util/manifest_generator.js +9 -14
  268. package/test/test/util/manifest_parser_util.js +0 -6
  269. package/test/test/util/offline_utils.js +0 -5
  270. package/test/test/util/simple_fakes.js +9 -26
  271. package/test/test/util/stream_generator.js +0 -14
  272. package/test/test/util/streaming_engine_util.js +0 -15
  273. package/test/test/util/test_scheme.js +1 -19
  274. package/test/test/util/ttml_utils.js +79 -0
  275. package/test/test/util/ui_utils.js +0 -9
  276. package/test/test/util/util.js +15 -26
  277. package/test/test/util/waiter.js +84 -43
  278. package/test/text/cue_integration.js +0 -4
  279. package/test/text/lrc_text_parser_unit.js +0 -4
  280. package/test/text/mp4_ttml_parser_unit.js +10 -23
  281. package/test/text/mp4_vtt_parser_unit.js +1 -7
  282. package/test/text/sbv_text_parser_unit.js +0 -4
  283. package/test/text/simple_text_displayer_unit.js +1 -8
  284. package/test/text/srt_text_parser_unit.js +0 -4
  285. package/test/text/ssa_text_parser_unit.js +0 -5
  286. package/test/text/text_engine_unit.js +2 -7
  287. package/test/text/text_track_integration.js +0 -2
  288. package/test/text/ttml_text_parser_unit.js +495 -237
  289. package/test/text/ui_text_displayer_unit.js +44 -41
  290. package/test/text/vtt_text_parser_unit.js +0 -9
  291. package/test/text/web_vtt_generator_unit.js +0 -3
  292. package/test/ui/ad_ui_unit.js +0 -11
  293. package/test/ui/localization_unit.js +0 -3
  294. package/test/ui/text_displayer_layout_unit.js +9 -19
  295. package/test/ui/ui_customization_unit.js +0 -6
  296. package/test/ui/ui_integration.js +0 -16
  297. package/test/ui/ui_unit.js +1 -17
  298. package/test/util/abortable_operation_unit.js +4 -9
  299. package/test/util/array_utils_unit.js +0 -2
  300. package/test/util/buffer_utils_unit.js +0 -2
  301. package/test/util/data_view_reader_unit.js +0 -4
  302. package/test/util/ebml_parser_unit.js +0 -4
  303. package/test/util/event_manager_unit.js +0 -3
  304. package/test/util/fake_event_target_unit.js +0 -5
  305. package/test/util/functional_unit.js +1 -1
  306. package/test/util/iterables_unit.js +0 -64
  307. package/test/util/language_utils_unit.js +0 -3
  308. package/test/util/manifest_parser_utils_unit.js +0 -2
  309. package/test/util/mp4_box_parsers_unit.js +0 -5
  310. package/test/util/mp4_parser_unit.js +0 -4
  311. package/test/util/multi_map_unit.js +0 -3
  312. package/test/util/object_utils_unit.js +0 -2
  313. package/test/util/periods_unit.js +14 -7
  314. package/test/util/pssh_unit.js +0 -5
  315. package/test/util/state_history_unit.js +0 -2
  316. package/test/util/stream_utils_unit.js +39 -38
  317. package/test/util/string_utils_unit.js +0 -6
  318. package/test/util/text_parser_unit.js +0 -2
  319. package/test/util/xml_utils_unit.js +0 -4
  320. package/ui/controls.js +3 -0
  321. package/ui/less/ad_controls.less +4 -4
  322. package/ui/less/buttons.less +5 -9
  323. package/ui/less/containers.less +5 -7
  324. package/ui/less/overflow_menu.less +4 -4
  325. package/ui/less/range_elements.less +5 -0
  326. package/ui/locales/sjn-translations.yaml +257 -0
  327. package/ui/locales/sjn.json +42 -0
  328. package/ui/localization.js +12 -36
  329. package/ui/text_selection.js +1 -0
  330. package/externs/media_capabilities.js +0 -16
  331. 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.offline.OfflineManifestParser');
8
- goog.require('shaka.offline.OfflineUri');
9
- goog.require('shaka.offline.StorageMuxer');
10
- goog.require('shaka.test.Util');
11
- goog.require('shaka.util.Error');
12
-
13
7
  /** @return {boolean} */
14
8
  const offlineManifestParserSupport = () => shaka.offline.StorageMuxer.support();
15
9
  filterDescribe('OfflineManifestParser', offlineManifestParserSupport, () => {
@@ -4,14 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.net.NetworkingEngine');
8
- goog.require('shaka.net.NetworkingEngine.RequestType');
9
- goog.require('shaka.offline.OfflineScheme');
10
- goog.require('shaka.offline.OfflineUri');
11
- goog.require('shaka.offline.StorageMuxer');
12
- goog.require('shaka.test.Util');
13
- goog.require('shaka.util.Error');
14
-
15
7
  /** @return {boolean} */
16
8
  const offlineSchemeSupport = () => shaka.offline.StorageMuxer.support();
17
9
  filterDescribe('OfflineScheme', offlineSchemeSupport, () => {
@@ -4,8 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.offline.OfflineUri');
8
-
9
7
  describe('OfflineUri', () => {
10
8
  const OfflineUri = shaka.offline.OfflineUri;
11
9
 
@@ -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.offline.ManifestConverter');
9
- goog.require('shaka.offline.indexeddb.V1StorageCell');
10
- goog.require('shaka.offline.indexeddb.V2StorageCell');
11
- goog.require('shaka.offline.indexeddb.V5StorageCell');
12
- goog.require('shaka.test.CannedIDB');
13
- goog.require('shaka.test.IndexedDBUtils');
14
- goog.require('shaka.test.ManifestGenerator');
15
- goog.require('shaka.test.Util');
16
- goog.require('shaka.util.Error');
17
- goog.require('shaka.util.ManifestParserUtils');
18
- goog.require('shaka.util.StringUtils');
19
-
20
7
  // All of the database dumps referenced below were originally made from the
21
8
  // "Heliocentrism" content in our demo app.
22
9
  // https://storage.googleapis.com/shaka-demo-assets/heliocentrism/heliocentrism.mpd
@@ -80,7 +67,7 @@ const compatibilityTestsMetadata = [
80
67
  // This is the v4 version of the database as written by v2.5.0 - v2.5.9. A
81
68
  // bug in v2.5 caused the stream metadata from all periods to be written to
82
69
  // each period. This was corrected in v2.5.10.
83
- // See https://github.com/google/shaka-player/issues/2389
70
+ // See https://github.com/shaka-project/shaka-player/issues/2389
84
71
  name: 'v4-broken',
85
72
  dbImagePath: '/base/test/test/assets/db-dump-v4-broken.json',
86
73
  manifestKey: 1,
@@ -4,30 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('goog.asserts');
8
- goog.require('shaka.Player');
9
- goog.require('shaka.media.DrmEngine');
10
- goog.require('shaka.media.ManifestParser');
11
- goog.require('shaka.media.SegmentIndex');
12
- goog.require('shaka.net.NetworkingEngine.RequestType');
13
- goog.require('shaka.offline.ManifestConverter');
14
- goog.require('shaka.offline.OfflineUri');
15
- goog.require('shaka.offline.Storage');
16
- goog.require('shaka.offline.StorageMuxer');
17
- goog.require('shaka.test.FakeDrmEngine');
18
- goog.require('shaka.test.FakeManifestParser');
19
- goog.require('shaka.test.FakeNetworkingEngine');
20
- goog.require('shaka.test.Loader');
21
- goog.require('shaka.test.ManifestGenerator');
22
- goog.require('shaka.test.TestScheme');
23
- goog.require('shaka.test.Util');
24
- goog.require('shaka.util.AbortableOperation');
25
- goog.require('shaka.util.Error');
26
- goog.require('shaka.util.EventManager');
27
- goog.require('shaka.util.PlayerConfiguration');
28
- goog.require('shaka.util.PublicPromise');
29
- goog.requireType('shaka.media.SegmentReference');
30
-
31
7
  /** @return {boolean} */
32
8
  function storageSupport() {
33
9
  return shaka.offline.Storage.support();
@@ -1277,7 +1253,7 @@ filterDescribe('Storage', storageSupport, () => {
1277
1253
  const testSchemeMimeType = 'application/x-test-manifest';
1278
1254
  const manifestUri = 'test:sintel';
1279
1255
 
1280
- // Regression test for https://github.com/google/shaka-player/issues/2781
1256
+ // Regression test for https://github.com/shaka-project/shaka-player/issues/2781
1281
1257
  it('does not cache failures or cancellations', async () => {
1282
1258
  /** @type {shaka.offline.Storage} */
1283
1259
  const storage = new shaka.offline.Storage();
@@ -4,15 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('ShakaDemoAssetInfo');
8
- goog.require('shaka.test.Loader');
9
- goog.require('shaka.test.UiUtils');
10
- goog.require('shaka.test.Util');
11
- goog.require('shaka.test.Waiter');
12
- goog.require('shaka.util.EventManager');
13
- goog.requireType('shaka.Player');
14
- goog.requireType('shaka.net.NetworkingEngine.RequestType');
15
-
16
7
  describe('Player', () => {
17
8
  const Util = shaka.test.Util;
18
9
  const Feature = shakaAssets.Feature;
@@ -48,6 +39,7 @@ describe('Player', () => {
48
39
  // Grab event manager from the uncompiled library:
49
40
  eventManager = new shaka.util.EventManager();
50
41
  waiter = new shaka.test.Waiter(eventManager);
42
+ waiter.setPlayer(player);
51
43
 
52
44
  onErrorSpy = jasmine.createSpy('onError');
53
45
  onErrorSpy.and.callFake((event) => fail(event.detail));
@@ -117,7 +109,7 @@ describe('Player', () => {
117
109
 
118
110
  // Make sure we don't get stuck on gaps that only appear in some
119
111
  // browsers (Safari, Firefox).
120
- // TODO(https://github.com/google/shaka-player/issues/1702):
112
+ // TODO(https://github.com/shaka-project/shaka-player/issues/1702):
121
113
  // Is this necessary because of a bug in Shaka Player?
122
114
  player.configure('streaming.jumpLargeGaps', true);
123
115
 
@@ -4,22 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('goog.Uri');
8
- goog.require('shaka.Player');
9
- goog.require('shaka.log');
10
- goog.require('shaka.media.DrmEngine');
11
- goog.require('shaka.media.TimeRangesUtils');
12
- goog.require('shaka.test.FakeAbrManager');
13
- goog.require('shaka.test.FakeTextDisplayer');
14
- goog.require('shaka.test.Loader');
15
- goog.require('shaka.test.TestScheme');
16
- goog.require('shaka.test.UiUtils');
17
- goog.require('shaka.test.Util');
18
- goog.require('shaka.test.Waiter');
19
- goog.require('shaka.util.EventManager');
20
- goog.require('shaka.util.Functional');
21
- goog.require('shaka.util.Iterables');
22
-
23
7
  describe('Player', () => {
24
8
  /** @type {!jasmine.Spy} */
25
9
  let onErrorSpy;
@@ -53,6 +37,7 @@ describe('Player', () => {
53
37
  // Grab event manager from the uncompiled library:
54
38
  eventManager = new shaka.util.EventManager();
55
39
  waiter = new shaka.test.Waiter(eventManager);
40
+ waiter.setPlayer(player);
56
41
 
57
42
  onErrorSpy = jasmine.createSpy('onError');
58
43
  onErrorSpy.and.callFake((event) => {
@@ -264,7 +249,7 @@ describe('Player', () => {
264
249
  expect(variantTrack.language).toBe(textTrack.language);
265
250
  });
266
251
 
267
- // Repro for https://github.com/google/shaka-player/issues/1879.
252
+ // Repro for https://github.com/shaka-project/shaka-player/issues/1879.
268
253
  it('appends cues when enabled initially', async () => {
269
254
  let cues = [];
270
255
  /** @const {!shaka.test.FakeTextDisplayer} */
@@ -321,7 +306,7 @@ describe('Player', () => {
321
306
  expect(cues.length).toBeGreaterThan(0);
322
307
  });
323
308
 
324
- // https://github.com/google/shaka-player/issues/2553
309
+ // https://github.com/shaka-project/shaka-player/issues/2553
325
310
  it('does not change the selected track', async () => {
326
311
  player.configure('streaming.alwaysStreamText', false);
327
312
  await player.load('test:forced_subs_simulation_compiled');
@@ -447,7 +432,7 @@ describe('Player', () => {
447
432
  expect(configuredTextDisplayer).toBe(textDisplayer);
448
433
  });
449
434
 
450
- // Regression test for https://github.com/google/shaka-player/issues/1187
435
+ // Regression test for https://github.com/shaka-project/shaka-player/issues/1187
451
436
  it('does not throw on destroy', async () => {
452
437
  await player.load('test:sintel_compiled');
453
438
  video.play();
@@ -478,7 +463,7 @@ describe('Player', () => {
478
463
  // and the track selection was ignored. Because this bug involved
479
464
  // interactions between Player and StreamingEngine, it is an integration
480
465
  // test and not a unit test.
481
- // https://github.com/google/shaka-player/issues/1119
466
+ // https://github.com/shaka-project/shaka-player/issues/1119
482
467
  it('allows early selection of specific tracks', async () => {
483
468
  /** @type {!jasmine.Spy} */
484
469
  const streamingListener = jasmine.createSpy('listener');
@@ -513,7 +498,7 @@ describe('Player', () => {
513
498
  // switchingPeriods_ in Player. Because this bug involved interactions
514
499
  // between Player and StreamingEngine, it is an integration test and not a
515
500
  // unit test.
516
- // https://github.com/google/shaka-player/issues/1119
501
+ // https://github.com/shaka-project/shaka-player/issues/1119
517
502
  it('allows selection of tracks in subsequent loads', async () => {
518
503
  /** @type {!jasmine.Spy} */
519
504
  const streamingListener = jasmine.createSpy('listener');
@@ -611,7 +596,9 @@ describe('Player', () => {
611
596
  eventManager.listen(video, 'waiting', checkOnEvent);
612
597
  eventManager.listen(player, 'trackschanged', checkOnEvent);
613
598
 
614
- const waiter = (new shaka.test.Waiter(eventManager)).timeoutAfter(10);
599
+ const waiter = new shaka.test.Waiter(eventManager)
600
+ .setPlayer(player)
601
+ .timeoutAfter(10);
615
602
  const canPlayThrough = waiter.waitForEvent(video, 'canplaythrough');
616
603
 
617
604
  await player.load('test:sintel_compiled', 5);
@@ -678,7 +665,9 @@ describe('Player', () => {
678
665
  eventManager.listen(player, 'error', Util.spyFunc(onErrorSpy));
679
666
  /** @type {shaka.test.Waiter} */
680
667
  const waiter = new shaka.test.Waiter(eventManager)
681
- .timeoutAfter(20).failOnTimeout(true);
668
+ .setPlayer(player)
669
+ .timeoutAfter(20)
670
+ .failOnTimeout(true);
682
671
  await waiter.waitForEnd(video);
683
672
 
684
673
  // The stream should have transitioned to VOD by now.
@@ -686,7 +675,7 @@ describe('Player', () => {
686
675
 
687
676
  // Check that the final seek range is as expected.
688
677
  const seekRange = player.seekRange();
689
- expect(seekRange.end).toBe(14);
678
+ expect(seekRange.end).toBeCloseTo(14);
690
679
  });
691
680
  });
692
681
 
@@ -703,6 +692,7 @@ describe('Player', () => {
703
692
  player.addEventListener('buffering', Util.spyFunc(onBuffering));
704
693
 
705
694
  waiter = new shaka.test.Waiter(eventManager)
695
+ .setPlayer(player)
706
696
  .timeoutAfter(10)
707
697
  .failOnTimeout(true);
708
698
  });
@@ -816,8 +806,7 @@ describe('Player', () => {
816
806
  }
817
807
 
818
808
  async function waitUntilBuffered(amount) {
819
- for (const _ of shaka.util.Iterables.range(25)) {
820
- shaka.util.Functional.ignored(_);
809
+ for (let i = 0; i < 25; i++) {
821
810
  // We buffer from an internal segment, so this shouldn't take long to
822
811
  // buffer.
823
812
  await Util.delay(0.1); // eslint-disable-line no-await-in-loop
@@ -894,7 +883,9 @@ describe('Player', () => {
894
883
 
895
884
  /** @type {shaka.test.Waiter} */
896
885
  const waiter = new shaka.test.Waiter(eventManager)
897
- .timeoutAfter(1).failOnTimeout(true);
886
+ .setPlayer(player)
887
+ .timeoutAfter(1)
888
+ .failOnTimeout(true);
898
889
 
899
890
  await waiter.waitForPromise(abrEnabled, 'AbrManager enabled');
900
891
 
@@ -914,7 +905,9 @@ describe('Player', () => {
914
905
 
915
906
  /** @type {shaka.test.Waiter} */
916
907
  const waiter = new shaka.test.Waiter(eventManager)
917
- .timeoutAfter(1).failOnTimeout(true);
908
+ .setPlayer(player)
909
+ .timeoutAfter(1)
910
+ .failOnTimeout(true);
918
911
 
919
912
  await waiter.waitForPromise(abrEnabled, 'AbrManager enabled');
920
913
 
@@ -964,9 +957,9 @@ describe('Player', () => {
964
957
  it('add external chapters in vtt format', async () => {
965
958
  await player.load('test:sintel_no_text_compiled');
966
959
  const locationUri = new goog.Uri(location.href);
967
- const partialUri = new goog.Uri('/base/test/test/assets/chapters.vtt');
968
- const absoluteUri = locationUri.resolve(partialUri);
969
- await player.addChaptersTrack(absoluteUri.toString(), 'en');
960
+ const partialUri1 = new goog.Uri('/base/test/test/assets/chapters.vtt');
961
+ const absoluteUri1 = locationUri.resolve(partialUri1);
962
+ await player.addChaptersTrack(absoluteUri1.toString(), 'en');
970
963
 
971
964
  await shaka.test.Util.delay(1.5);
972
965
 
@@ -979,11 +972,44 @@ describe('Player', () => {
979
972
  const chapter2 = chapters[1];
980
973
  expect(chapter2.title).toBe('Chapter 2');
981
974
  expect(chapter2.startTime).toBe(5);
982
- expect(chapter2.endTime).toBe(30);
975
+ expect(chapter2.endTime).toBe(10);
983
976
  const chapter3 = chapters[2];
984
977
  expect(chapter3.title).toBe('Chapter 3');
985
- expect(chapter3.startTime).toBe(30);
986
- expect(chapter3.endTime).toBe(61.349);
978
+ expect(chapter3.startTime).toBe(10);
979
+ expect(chapter3.endTime).toBe(20);
980
+
981
+ const partialUri2 = new goog.Uri('/base/test/test/assets/chapters2.vtt');
982
+ const absoluteUri2 = locationUri.resolve(partialUri2);
983
+ await player.addChaptersTrack(absoluteUri2.toString(), 'en');
984
+
985
+ await shaka.test.Util.delay(1.5);
986
+
987
+ const chaptersUpdated = player.getChapters('en');
988
+ expect(chaptersUpdated.length).toBe(6);
989
+ const chapterUpdated1 = chaptersUpdated[0];
990
+ expect(chapterUpdated1.title).toBe('Chapter 1');
991
+ expect(chapterUpdated1.startTime).toBe(0);
992
+ expect(chapterUpdated1.endTime).toBe(5);
993
+ const chapterUpdated2 = chaptersUpdated[1];
994
+ expect(chapterUpdated2.title).toBe('Chapter 2');
995
+ expect(chapterUpdated2.startTime).toBe(5);
996
+ expect(chapterUpdated2.endTime).toBe(10);
997
+ const chapterUpdated3 = chaptersUpdated[2];
998
+ expect(chapterUpdated3.title).toBe('Chapter 3');
999
+ expect(chapterUpdated3.startTime).toBe(10);
1000
+ expect(chapterUpdated3.endTime).toBe(20);
1001
+ const chapterUpdated4 = chaptersUpdated[3];
1002
+ expect(chapterUpdated4.title).toBe('Chapter 4');
1003
+ expect(chapterUpdated4.startTime).toBe(20);
1004
+ expect(chapterUpdated4.endTime).toBe(30);
1005
+ const chapterUpdated5 = chaptersUpdated[4];
1006
+ expect(chapterUpdated5.title).toBe('Chapter 5');
1007
+ expect(chapterUpdated5.startTime).toBe(30);
1008
+ expect(chapterUpdated5.endTime).toBe(40);
1009
+ const chapterUpdated6 = chaptersUpdated[5];
1010
+ expect(chapterUpdated6.title).toBe('Chapter 6');
1011
+ expect(chapterUpdated6.startTime).toBe(40);
1012
+ expect(chapterUpdated6.endTime).toBe(61.349);
987
1013
  });
988
1014
 
989
1015
  it('add external chapters in srt format', async () => {
@@ -991,11 +1017,11 @@ describe('Player', () => {
991
1017
  const locationUri = new goog.Uri(location.href);
992
1018
  const partialUri = new goog.Uri('/base/test/test/assets/chapters.srt');
993
1019
  const absoluteUri = locationUri.resolve(partialUri);
994
- await player.addChaptersTrack(absoluteUri.toString(), 'en');
1020
+ await player.addChaptersTrack(absoluteUri.toString(), 'es');
995
1021
 
996
1022
  await shaka.test.Util.delay(1.5);
997
1023
 
998
- const chapters = player.getChapters('en');
1024
+ const chapters = player.getChapters('es');
999
1025
  expect(chapters.length).toBe(3);
1000
1026
  const chapter1 = chapters[0];
1001
1027
  expect(chapter1.title).toBe('Chapter 1');
@@ -4,11 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.Player');
8
- goog.require('shaka.test.UiUtils');
9
- goog.require('shaka.test.Util');
10
- goog.require('shaka.util.Error');
11
-
12
7
  describe('Player Load Graph', () => {
13
8
  const SMALL_MP4_CONTENT_URI = '/base/test/test/assets/small.mp4';
14
9
 
@@ -124,7 +119,7 @@ describe('Player Load Graph', () => {
124
119
 
125
120
  // There was a bug when calling unload before calling load would cause
126
121
  // the load to continue before the (first) unload was complete.
127
- // https://github.com/google/shaka-player/issues/612
122
+ // https://github.com/shaka-project/shaka-player/issues/612
128
123
  it('load will wait for unload to finish', async () => {
129
124
  createPlayer(/* attachedTo= */ null);
130
125
 
@@ -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.test.UiUtils');
9
- goog.require('shaka.test.Util');
10
- goog.require('shaka.test.Waiter');
11
- goog.require('shaka.util.EventManager');
12
-
13
7
  describe('Player Src Equals', () => {
14
8
  // This asset needs to be (1) long and (2) high bitrate so that we can
15
9
  // invoke unbuffered seeks.
@@ -88,7 +82,7 @@ describe('Player Src Equals', () => {
88
82
  expect(player.isBuffering()).toBeTruthy();
89
83
  });
90
84
 
91
- // A regression test for https://github.com/google/shaka-player/issues/2523
85
+ // A regression test for https://github.com/shaka-project/shaka-player/issues/2523
92
86
  it('detects subtitles in native HLS', async () => {
93
87
  const supportsNativeHls =
94
88
  video.canPlayType('application/vnd.apple.mpegurl') != '';
@@ -103,8 +97,8 @@ describe('Player Src Equals', () => {
103
97
  });
104
98
 
105
99
  // A regression test for
106
- // https://github.com/google/shaka-player/issues/2483#issuecomment-633412527
107
- // and https://github.com/google/shaka-player/issues/2593
100
+ // https://github.com/shaka-project/shaka-player/issues/2483#issuecomment-633412527
101
+ // and https://github.com/shaka-project/shaka-player/issues/2593
108
102
  it('honors preferred audio and text languages', async () => {
109
103
  const supportsNativeHls =
110
104
  video.canPlayType('application/vnd.apple.mpegurl') != '';
@@ -4,13 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('goog.Uri');
8
- goog.require('shaka.Player');
9
- goog.require('shaka.test.UiUtils');
10
- goog.require('shaka.test.Util');
11
- goog.require('shaka.test.Waiter');
12
- goog.require('shaka.util.EventManager');
13
-
14
7
  // These tests are for testing Shaka Player's integration with
15
8
  // |HTMLMediaElement.src=|. These tests are to verify that all |shaka.Player|
16
9
  // public methods behaviour correctly when playing content video |src=|.
@@ -330,9 +323,9 @@ describe('Player Src Equals', () => {
330
323
  await loadWithSrcEquals(SMALL_MP4_CONTENT_URI, /* startTime= */ null);
331
324
 
332
325
  const locationUri = new goog.Uri(location.href);
333
- const partialUri = new goog.Uri('/base/test/test/assets/chapters.vtt');
334
- const absoluteUri = locationUri.resolve(partialUri);
335
- await player.addChaptersTrack(absoluteUri.toString(), 'en');
326
+ const partialUri1 = new goog.Uri('/base/test/test/assets/chapters.vtt');
327
+ const absoluteUri1 = locationUri.resolve(partialUri1);
328
+ await player.addChaptersTrack(absoluteUri1.toString(), 'en');
336
329
 
337
330
  await shaka.test.Util.delay(1.5);
338
331
 
@@ -345,11 +338,44 @@ describe('Player Src Equals', () => {
345
338
  const chapter2 = chapters[1];
346
339
  expect(chapter2.title).toBe('Chapter 2');
347
340
  expect(chapter2.startTime).toBe(5);
348
- expect(chapter2.endTime).toBe(30);
341
+ expect(chapter2.endTime).toBe(10);
349
342
  const chapter3 = chapters[2];
350
343
  expect(chapter3.title).toBe('Chapter 3');
351
- expect(chapter3.startTime).toBe(30);
352
- expect(chapter3.endTime).toBe(61.349);
344
+ expect(chapter3.startTime).toBe(10);
345
+ expect(chapter3.endTime).toBe(20);
346
+
347
+ const partialUri2 = new goog.Uri('/base/test/test/assets/chapters2.vtt');
348
+ const absoluteUri2 = locationUri.resolve(partialUri2);
349
+ await player.addChaptersTrack(absoluteUri2.toString(), 'en');
350
+
351
+ await shaka.test.Util.delay(1.5);
352
+
353
+ const chaptersUpdated = player.getChapters('en');
354
+ expect(chaptersUpdated.length).toBe(6);
355
+ const chapterUpdated1 = chaptersUpdated[0];
356
+ expect(chapterUpdated1.title).toBe('Chapter 1');
357
+ expect(chapterUpdated1.startTime).toBe(0);
358
+ expect(chapterUpdated1.endTime).toBe(5);
359
+ const chapterUpdated2 = chaptersUpdated[1];
360
+ expect(chapterUpdated2.title).toBe('Chapter 2');
361
+ expect(chapterUpdated2.startTime).toBe(5);
362
+ expect(chapterUpdated2.endTime).toBe(10);
363
+ const chapterUpdated3 = chaptersUpdated[2];
364
+ expect(chapterUpdated3.title).toBe('Chapter 3');
365
+ expect(chapterUpdated3.startTime).toBe(10);
366
+ expect(chapterUpdated3.endTime).toBe(20);
367
+ const chapterUpdated4 = chaptersUpdated[3];
368
+ expect(chapterUpdated4.title).toBe('Chapter 4');
369
+ expect(chapterUpdated4.startTime).toBe(20);
370
+ expect(chapterUpdated4.endTime).toBe(30);
371
+ const chapterUpdated5 = chaptersUpdated[4];
372
+ expect(chapterUpdated5.title).toBe('Chapter 5');
373
+ expect(chapterUpdated5.startTime).toBe(30);
374
+ expect(chapterUpdated5.endTime).toBe(40);
375
+ const chapterUpdated6 = chaptersUpdated[5];
376
+ expect(chapterUpdated6.title).toBe('Chapter 6');
377
+ expect(chapterUpdated6.startTime).toBe(40);
378
+ expect(chapterUpdated6.endTime).toBe(61.349);
353
379
  });
354
380
 
355
381
  it('add external chapters in srt format', async () => {
@@ -358,11 +384,11 @@ describe('Player Src Equals', () => {
358
384
  const locationUri = new goog.Uri(location.href);
359
385
  const partialUri = new goog.Uri('/base/test/test/assets/chapters.srt');
360
386
  const absoluteUri = locationUri.resolve(partialUri);
361
- await player.addChaptersTrack(absoluteUri.toString(), 'en');
387
+ await player.addChaptersTrack(absoluteUri.toString(), 'es');
362
388
 
363
389
  await shaka.test.Util.delay(1.5);
364
390
 
365
- const chapters = player.getChapters('en');
391
+ const chapters = player.getChapters('es');
366
392
  expect(chapters.length).toBe(3);
367
393
  const chapter1 = chapters[0];
368
394
  expect(chapter1.title).toBe('Chapter 1');