shaka-player 3.3.2 → 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 (328) 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 +1691 -1675
  14. package/CONTRIBUTING.md +2 -2
  15. package/CONTRIBUTORS +2 -0
  16. package/README.md +7 -7
  17. package/app-engine/README.md +9 -0
  18. package/app-engine/demo-version-index/README.md +14 -0
  19. package/app-engine/demo-version-index/app.yaml +2 -0
  20. package/app-engine/demo-version-index/main.py +162 -0
  21. package/app-engine/demo-version-index/requirements.txt +6 -0
  22. package/app-engine/demo-version-index/templates/index.html +114 -0
  23. package/app-engine/shaka-player-demo/README.md +18 -0
  24. package/app-engine/shaka-player-demo/app.yaml +61 -0
  25. package/app-engine/shaka-player-demo/main.py +95 -0
  26. package/app-engine/shaka-player-demo/posters/10yo.png +0 -0
  27. package/app-engine/shaka-player-demo/posters/10yo.xcf +0 -0
  28. package/app-engine/shaka-player-demo/posters/1yo.jpg +0 -0
  29. package/app-engine/shaka-player-demo/posters/2yo.png +0 -0
  30. package/app-engine/shaka-player-demo/posters/2yo.xcf +0 -0
  31. package/app-engine/shaka-player-demo/posters/3yo.png +0 -0
  32. package/app-engine/shaka-player-demo/posters/3yo.xcf +0 -0
  33. package/app-engine/shaka-player-demo/posters/4yo.png +0 -0
  34. package/app-engine/shaka-player-demo/posters/4yo.xcf +0 -0
  35. package/app-engine/shaka-player-demo/posters/5yo.png +0 -0
  36. package/app-engine/shaka-player-demo/posters/5yo.xcf +0 -0
  37. package/app-engine/shaka-player-demo/posters/6yo.png +0 -0
  38. package/app-engine/shaka-player-demo/posters/6yo.xcf +0 -0
  39. package/app-engine/shaka-player-demo/posters/7yo.png +0 -0
  40. package/app-engine/shaka-player-demo/posters/7yo.xcf +0 -0
  41. package/app-engine/shaka-player-demo/posters/8yo.png +0 -0
  42. package/app-engine/shaka-player-demo/posters/8yo.xcf +0 -0
  43. package/app-engine/shaka-player-demo/posters/9yo.png +0 -0
  44. package/app-engine/shaka-player-demo/posters/9yo.xcf +0 -0
  45. package/app-engine/shaka-player-demo/posters/audioOnly.gif +0 -0
  46. package/app-engine/shaka-player-demo/posters/audioRickRoll.gif +0 -0
  47. package/app-engine/shaka-player-demo/posters/colorbars.gif +0 -0
  48. package/app-engine/shaka-player-demo/posters/fireworks.jpg +0 -0
  49. package/app-engine/shaka-player-demo/posters/party-hat.png +0 -0
  50. package/app-engine/shaka-player-demo/posters/sources.txt +46 -0
  51. package/app-engine/shaka-player-demo/posters/standard.png +0 -0
  52. package/app-engine/shaka-player-demo/posters/trek.jpg +0 -0
  53. package/app-engine/shaka-player-demo/posters/valentines.png +0 -0
  54. package/app-engine/shaka-player-demo/posters/zombie.jpg +0 -0
  55. package/app-engine/shaka-player-demo/posters.py +110 -0
  56. package/app-engine/shaka-player-demo/requirements.txt +5 -0
  57. package/app-engine/shaka-player-demo/time.txt +1 -0
  58. package/build/README.md +1 -1
  59. package/build/checkversion.py +1 -1
  60. package/build/conformance.textproto +13 -0
  61. package/build/docker/Dockerfile +20 -0
  62. package/build/docker/docker-compose.yml +10 -0
  63. package/build/gendeps.py +18 -15
  64. package/build/shaka-lab.yaml +163 -0
  65. package/build/shakaBuildHelpers.py +4 -29
  66. package/build/test.py +87 -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 +31 -31
  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 +246 -236
  96. package/dist/shaka-player.compiled.debug.d.ts +246 -236
  97. package/dist/shaka-player.compiled.debug.externs.js +14 -3
  98. package/dist/shaka-player.compiled.debug.js +214 -222
  99. package/dist/shaka-player.compiled.debug.map +4 -4
  100. package/dist/shaka-player.compiled.externs.js +14 -3
  101. package/dist/shaka-player.compiled.js +845 -851
  102. package/dist/shaka-player.compiled.map +4 -4
  103. package/dist/shaka-player.ui.d.ts +290 -280
  104. package/dist/shaka-player.ui.debug.d.ts +290 -280
  105. package/dist/shaka-player.ui.debug.externs.js +14 -3
  106. package/dist/shaka-player.ui.debug.js +295 -303
  107. package/dist/shaka-player.ui.debug.map +4 -4
  108. package/dist/shaka-player.ui.externs.js +14 -3
  109. package/dist/shaka-player.ui.js +1000 -1006
  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 +1 -1
  124. package/karma.conf.js +137 -30
  125. package/lib/abr/simple_abr_manager.js +12 -6
  126. package/lib/cast/cast_proxy.js +3 -4
  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 +9 -11
  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 +11 -9
  136. package/lib/hls/manifest_text_parser.js +3 -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/streaming_engine.js +6 -6
  145. package/lib/media/time_ranges_utils.js +1 -3
  146. package/lib/media/video_wrapper.js +1 -1
  147. package/lib/net/networking_engine.js +1 -1
  148. package/lib/offline/storage.js +4 -4
  149. package/lib/player.js +34 -16
  150. package/lib/polyfill/all.js +2 -3
  151. package/lib/polyfill/encryption_scheme.js +1 -1
  152. package/lib/polyfill/media_capabilities.js +3 -3
  153. package/lib/polyfill/mediasource.js +1 -1
  154. package/lib/polyfill/symbol.js +46 -0
  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/iterables.js +0 -46
  163. package/lib/util/mp4_box_parsers.js +1 -4
  164. package/lib/util/mp4_parser.js +5 -7
  165. package/lib/util/periods.js +10 -11
  166. package/lib/util/platform.js +3 -3
  167. package/lib/util/pssh.js +1 -4
  168. package/lib/util/stream_utils.js +4 -3
  169. package/lib/util/string_utils.js +3 -5
  170. package/lib/util/uint8array_utils.js +3 -5
  171. package/lib/util/xml_utils.js +15 -7
  172. package/package.json +61 -36
  173. package/roadmap.md +17 -17
  174. package/shaka-player.uncompiled.js +1 -0
  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 +2 -15
  191. package/test/dash/dash_parser_manifest_unit.js +2 -16
  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 +2 -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/quality_observer_unit.js +0 -4
  216. package/test/media/region_observer_unit.js +1 -6
  217. package/test/media/region_timeline_unit.js +0 -3
  218. package/test/media/segment_index_unit.js +0 -6
  219. package/test/media/segment_reference_unit.js +0 -3
  220. package/test/media/stall_detector_unit.js +0 -5
  221. package/test/media/streaming_engine_integration.js +9 -36
  222. package/test/media/streaming_engine_unit.js +11 -35
  223. package/test/media/time_ranges_utils_unit.js +0 -2
  224. package/test/media/transmuxer_integration.js +0 -6
  225. package/test/media/webm_segment_index_parser_unit.js +0 -4
  226. package/test/net/data_uri_plugin_unit.js +0 -7
  227. package/test/net/http_plugin_unit.js +0 -9
  228. package/test/net/networking_engine_unit.js +0 -11
  229. package/test/offline/download_progress_estimator_unit.js +0 -2
  230. package/test/offline/indexeddb_storage_unit.js +0 -6
  231. package/test/offline/manifest_convert_unit.js +0 -8
  232. package/test/offline/offline_integration.js +1 -10
  233. package/test/offline/offline_manifest_parser_unit.js +0 -6
  234. package/test/offline/offline_scheme_unit.js +0 -8
  235. package/test/offline/offline_uri_unit.js +0 -2
  236. package/test/offline/storage_compatibility_unit.js +1 -14
  237. package/test/offline/storage_integration.js +1 -27
  238. package/test/player_external.js +2 -10
  239. package/test/player_integration.js +22 -28
  240. package/test/player_load_graph_integration.js +1 -6
  241. package/test/player_src_equals_external.js +3 -9
  242. package/test/player_src_equals_integration.js +0 -7
  243. package/test/player_unit.js +52 -37
  244. package/test/routing/walker_unit.js +0 -8
  245. package/test/test/assets/large_file.mpd +1 -1
  246. package/test/test/boot.js +75 -22
  247. package/test/test/externs/jasmine.js +2 -2
  248. package/test/test/externs/karma.js +4 -0
  249. package/test/test/namespace.js +10 -0
  250. package/test/test/util/canned_idb.js +0 -8
  251. package/test/test/util/cea_utils.js +0 -6
  252. package/test/test/util/dash_parser_util.js +0 -13
  253. package/test/test/util/fake_ad.js +0 -3
  254. package/test/test/util/fake_ad_manager.js +0 -9
  255. package/test/test/util/fake_demo_main.js +0 -5
  256. package/test/test/util/fake_drm_engine.js +0 -6
  257. package/test/test/util/fake_media_source_engine.js +0 -7
  258. package/test/test/util/fake_networking_engine.js +0 -5
  259. package/test/test/util/fake_text_displayer.js +0 -5
  260. package/test/test/util/indexeddb_utils.js +1 -10
  261. package/test/test/util/jasmine_fetch.js +0 -1
  262. package/test/test/util/loader.js +0 -18
  263. package/test/test/util/manifest_generator.js +9 -14
  264. package/test/test/util/manifest_parser_util.js +0 -6
  265. package/test/test/util/offline_utils.js +0 -5
  266. package/test/test/util/simple_fakes.js +9 -26
  267. package/test/test/util/stream_generator.js +0 -14
  268. package/test/test/util/streaming_engine_util.js +0 -15
  269. package/test/test/util/test_scheme.js +1 -19
  270. package/test/test/util/ttml_utils.js +0 -2
  271. package/test/test/util/ui_utils.js +0 -9
  272. package/test/test/util/util.js +5 -19
  273. package/test/test/util/waiter.js +84 -43
  274. package/test/text/cue_integration.js +0 -4
  275. package/test/text/lrc_text_parser_unit.js +0 -4
  276. package/test/text/mp4_ttml_parser_unit.js +0 -6
  277. package/test/text/mp4_vtt_parser_unit.js +1 -7
  278. package/test/text/sbv_text_parser_unit.js +0 -4
  279. package/test/text/simple_text_displayer_unit.js +1 -8
  280. package/test/text/srt_text_parser_unit.js +0 -4
  281. package/test/text/ssa_text_parser_unit.js +0 -5
  282. package/test/text/text_engine_unit.js +2 -7
  283. package/test/text/text_track_integration.js +0 -2
  284. package/test/text/ttml_text_parser_unit.js +2 -11
  285. package/test/text/ui_text_displayer_unit.js +44 -41
  286. package/test/text/vtt_text_parser_unit.js +0 -9
  287. package/test/text/web_vtt_generator_unit.js +0 -3
  288. package/test/ui/ad_ui_unit.js +0 -11
  289. package/test/ui/localization_unit.js +0 -3
  290. package/test/ui/text_displayer_layout_unit.js +1 -12
  291. package/test/ui/ui_customization_unit.js +0 -6
  292. package/test/ui/ui_integration.js +0 -16
  293. package/test/ui/ui_unit.js +1 -17
  294. package/test/util/abortable_operation_unit.js +4 -9
  295. package/test/util/array_utils_unit.js +0 -2
  296. package/test/util/buffer_utils_unit.js +0 -2
  297. package/test/util/cmcd_manager_unit.js +0 -3
  298. package/test/util/data_view_reader_unit.js +0 -4
  299. package/test/util/ebml_parser_unit.js +0 -4
  300. package/test/util/event_manager_unit.js +0 -3
  301. package/test/util/fake_event_target_unit.js +0 -5
  302. package/test/util/functional_unit.js +1 -1
  303. package/test/util/iterables_unit.js +0 -64
  304. package/test/util/language_utils_unit.js +0 -3
  305. package/test/util/manifest_parser_utils_unit.js +0 -2
  306. package/test/util/mp4_box_parsers_unit.js +0 -5
  307. package/test/util/mp4_parser_unit.js +0 -4
  308. package/test/util/multi_map_unit.js +0 -3
  309. package/test/util/object_utils_unit.js +0 -2
  310. package/test/util/periods_unit.js +14 -7
  311. package/test/util/pssh_unit.js +0 -5
  312. package/test/util/state_history_unit.js +0 -2
  313. package/test/util/stream_utils_unit.js +3 -8
  314. package/test/util/string_utils_unit.js +0 -6
  315. package/test/util/text_parser_unit.js +0 -2
  316. package/test/util/xml_utils_unit.js +0 -4
  317. package/ui/less/ad_controls.less +4 -4
  318. package/ui/less/buttons.less +5 -5
  319. package/ui/less/containers.less +9 -11
  320. package/ui/less/overflow_menu.less +4 -4
  321. package/ui/less/range_elements.less +5 -0
  322. package/ui/less/tooltip.less +1 -1
  323. package/ui/locales/sjn-translations.yaml +257 -0
  324. package/ui/locales/sjn.json +42 -0
  325. package/.github/workflows/build_and_test.yaml +0 -73
  326. package/.github/workflows/release.yaml +0 -53
  327. package/externs/svgelement.js +0 -18
  328. package/externs/webcrypto.js +0 -18
package/lib/util/error.js CHANGED
@@ -467,7 +467,7 @@ shaka.util.Error.Code = {
467
467
  * Content transformations required by the platform could not be performed for
468
468
  * some reason (unsupported container, etc.)
469
469
  *
470
- * @see https://github.com/google/shaka-player/issues/2759
470
+ * @see https://github.com/shaka-project/shaka-player/issues/2759
471
471
  */
472
472
  'CONTENT_TRANSFORMATION_FAILED': 3019,
473
473
 
@@ -75,50 +75,4 @@ shaka.util.Iterables = class {
75
75
  }
76
76
  return out;
77
77
  }
78
-
79
- /**
80
- * Returns an iterable that contains numbers in the range [0, end).
81
- *
82
- * @param {number} end The exclusive end of the list.
83
- * @return {!Iterable.<number>}
84
- */
85
- static* range(end) {
86
- for (let i = 0; i < end; i++) {
87
- yield i;
88
- }
89
- }
90
-
91
- /**
92
- * Iterates over an iterable object and includes additional info about each
93
- * item:
94
- * - The zero-based index of the element.
95
- * - The next item in the list, if it exists.
96
- * - The previous item in the list, if it exists.
97
- *
98
- * @param {!Iterable.<T>} iterable
99
- * @return {!Iterable.<
100
- * {i: number, item: T, prev: (T|undefined), next: (T|undefined)}>}
101
- * @template T
102
- */
103
- static* enumerate(iterable) {
104
- // Since we want the "next" item, we need to skip the first item and return
105
- // elements one in the past. So as we iterate, we are getting the "next"
106
- // element and yielding the one from the previous iteration.
107
- let i = -1;
108
- let prev = undefined;
109
- let item = undefined;
110
- for (const next of iterable) {
111
- if (i >= 0) {
112
- yield {i, item, prev, next};
113
- }
114
- i++;
115
- prev = item;
116
- item = next;
117
- }
118
- if (i != -1) {
119
- // If it's still -1, there were no items. Otherwise we need to yield
120
- // the last item.
121
- yield {i, prev, item, next: undefined};
122
- }
123
- }
124
78
  };
@@ -7,8 +7,6 @@
7
7
  goog.provide('shaka.util.Mp4BoxParsers');
8
8
 
9
9
  goog.require('shaka.util.DataViewReader');
10
- goog.require('shaka.util.Functional');
11
- goog.require('shaka.util.Iterables');
12
10
 
13
11
  shaka.util.Mp4BoxParsers = class {
14
12
  /**
@@ -125,8 +123,7 @@ shaka.util.Mp4BoxParsers = class {
125
123
  reader.skip(4);
126
124
  }
127
125
 
128
- for (const _ of shaka.util.Iterables.range(sampleCount)) {
129
- shaka.util.Functional.ignored(_);
126
+ for (let i = 0; i < sampleCount; i++) {
130
127
  /** @type {shaka.util.ParsedTRUNSample} */
131
128
  const sample = {
132
129
  sampleDuration: null,
@@ -9,8 +9,6 @@ goog.provide('shaka.util.Mp4Parser');
9
9
  goog.require('goog.asserts');
10
10
  goog.require('shaka.log');
11
11
  goog.require('shaka.util.DataViewReader');
12
- goog.require('shaka.util.Functional');
13
- goog.require('shaka.util.Iterables');
14
12
 
15
13
 
16
14
  /**
@@ -229,8 +227,7 @@ shaka.util.Mp4Parser = class {
229
227
  // start position. The header size varies.
230
228
  const headerSize = shaka.util.Mp4Parser.headerSize(box);
231
229
  const count = box.reader.readUint32();
232
- for (const _ of shaka.util.Iterables.range(count)) {
233
- shaka.util.Functional.ignored(_);
230
+ for (let i = 0; i < count; i++) {
234
231
  box.parser.parseNext(box.start + headerSize, box.reader, box.partialOkay);
235
232
  if (box.parser.done_) {
236
233
  break;
@@ -302,9 +299,10 @@ shaka.util.Mp4Parser = class {
302
299
  * @export
303
300
  */
304
301
  static headerSize(box) {
305
- return /* basic header */ 8
306
- + /* additional 64-bit size field */ (box.has64BitSize ? 8 : 0)
307
- + /* version and flags for a "full" box */ (box.flags != null ? 4 : 0);
302
+ const basicHeaderSize = 8;
303
+ const _64BitFieldSize = box.has64BitSize ? 8 : 0;
304
+ const versionAndFlagsSize = box.flags != null ? 4 : 0;
305
+ return basicHeaderSize + _64BitFieldSize + versionAndFlagsSize;
308
306
  }
309
307
  };
310
308
 
@@ -14,7 +14,6 @@ goog.require('shaka.media.SegmentIndex');
14
14
  goog.require('shaka.util.ArrayUtils');
15
15
  goog.require('shaka.util.Error');
16
16
  goog.require('shaka.util.IReleasable');
17
- goog.require('shaka.util.Iterables');
18
17
  goog.require('shaka.util.LanguageUtils');
19
18
  goog.require('shaka.util.ManifestParserUtils');
20
19
  goog.require('shaka.util.MapUtils');
@@ -98,7 +97,6 @@ shaka.util.PeriodCombiner = class {
98
97
  */
99
98
  async combinePeriods(periods, isDynamic) {
100
99
  const ContentType = shaka.util.ManifestParserUtils.ContentType;
101
- const Iterables = shaka.util.Iterables;
102
100
 
103
101
  shaka.util.PeriodCombiner.filterOutAudioStreamDuplicates_(periods);
104
102
  shaka.util.PeriodCombiner.filterOutVideoStreamDuplicates_(periods);
@@ -118,7 +116,8 @@ shaka.util.PeriodCombiner = class {
118
116
  // Find the first period we haven't seen before. Tag all the periods we
119
117
  // see now as "used".
120
118
  let firstNewPeriodIndex = -1;
121
- for (const {i, item: period} of Iterables.enumerate(periods)) {
119
+ for (let i = 0; i < periods.length; i++) {
120
+ const period = periods[i];
122
121
  if (this.usedPeriodIds_.has(period.id)) {
123
122
  // This isn't new.
124
123
  } else {
@@ -301,6 +300,7 @@ shaka.util.PeriodCombiner = class {
301
300
  t1.label == t2.label &&
302
301
  t1.codecs == t2.codecs &&
303
302
  t1.mimeType == t2.mimeType &&
303
+ t1.bandwidth == t2.bandwidth &&
304
304
  ArrayUtils.hasSameElements(t1.roles, t2.roles)) {
305
305
  duplicate = true;
306
306
  }
@@ -510,13 +510,12 @@ shaka.util.PeriodCombiner = class {
510
510
  static async combine_(
511
511
  outputStreams, streamsPerPeriod, firstNewPeriodIndex, clone, concat) {
512
512
  const ContentType = shaka.util.ManifestParserUtils.ContentType;
513
- const Iterables = shaka.util.Iterables;
514
513
 
515
514
  const unusedStreamsPerPeriod = [];
516
- for (const {i, item: streams} of Iterables.enumerate(streamsPerPeriod)) {
515
+ for (let i = 0; i < streamsPerPeriod.length; i++) {
517
516
  if (i >= firstNewPeriodIndex) {
518
517
  // This periods streams are all new.
519
- unusedStreamsPerPeriod.push(new Set(streams));
518
+ unusedStreamsPerPeriod.push(new Set(streamsPerPeriod[i]));
520
519
  } else {
521
520
  // This period's streams have all been used already.
522
521
  unusedStreamsPerPeriod.push(new Set());
@@ -668,12 +667,12 @@ shaka.util.PeriodCombiner = class {
668
667
 
669
668
  // Concatenate the new matches onto the stream, starting at the first new
670
669
  // period.
671
- const Iterables = shaka.util.Iterables;
672
670
  // Satisfy the compiler about the type.
673
671
  // Also checks if the segmentIndex is still valid after the async
674
672
  // operations, to make sure we stop if the active stream has changed.
675
673
  if (outputStream.segmentIndex instanceof shaka.media.MetaSegmentIndex) {
676
- for (const {i, item: match} of Iterables.enumerate(streams)) {
674
+ for (let i = 0; i < streams.length; i++) {
675
+ const match = streams[i];
677
676
  if (match.segmentIndex && i >= firstNewPeriodIndex) {
678
677
  goog.asserts.assert(match.segmentIndex,
679
678
  'stream should have a segmentIndex.');
@@ -768,9 +767,9 @@ shaka.util.PeriodCombiner = class {
768
767
 
769
768
  // Concatenate the new matches onto the stream, starting at the first new
770
769
  // period.
771
- const Iterables = shaka.util.Iterables;
772
- for (const {i, item: match} of Iterables.enumerate(matches)) {
770
+ for (let i = 0; i < matches.length; i++) {
773
771
  if (i >= firstNewPeriodIndex) {
772
+ const match = matches[i];
774
773
  concat(outputStream, match);
775
774
 
776
775
  // We only consider an audio stream "used" if its language is related to
@@ -1210,7 +1209,7 @@ shaka.util.PeriodCombiner = class {
1210
1209
  // [r1, r2, r3, r4].
1211
1210
  // If we match stream1 with stream3 due to the same role overlap,
1212
1211
  // stream2 is likely to be left unmatched and error out later.
1213
- // See https://github.com/google/shaka-player/issues/2542 for
1212
+ // See https://github.com/shaka-project/shaka-player/issues/2542 for
1214
1213
  // more details.
1215
1214
  return candidate.roles.length < best.roles.length;
1216
1215
  }
@@ -174,8 +174,8 @@ shaka.util.Platform = class {
174
174
  * @return {boolean}
175
175
  */
176
176
  static isApple() {
177
- return !!navigator.vendor && navigator.vendor.includes('Apple')
178
- && !shaka.util.Platform.isTizen();
177
+ return !!navigator.vendor && navigator.vendor.includes('Apple') &&
178
+ !shaka.util.Platform.isTizen();
179
179
  }
180
180
 
181
181
  /**
@@ -312,7 +312,7 @@ shaka.util.Platform = class {
312
312
  * initialization segments.
313
313
  *
314
314
  * @return {boolean}
315
- * @see https://github.com/google/shaka-player/issues/2759
315
+ * @see https://github.com/shaka-project/shaka-player/issues/2759
316
316
  */
317
317
  static requiresEncryptionInfoInAllInitSegments() {
318
318
  const Platform = shaka.util.Platform;
package/lib/util/pssh.js CHANGED
@@ -9,8 +9,6 @@ goog.provide('shaka.util.Pssh');
9
9
  goog.require('goog.asserts');
10
10
  goog.require('shaka.log');
11
11
  goog.require('shaka.util.BufferUtils');
12
- goog.require('shaka.util.Functional');
13
- goog.require('shaka.util.Iterables');
14
12
  goog.require('shaka.util.Mp4Parser');
15
13
  goog.require('shaka.util.Uint8ArrayUtils');
16
14
 
@@ -83,8 +81,7 @@ shaka.util.Pssh = class {
83
81
  shaka.util.Uint8ArrayUtils.toHex(box.reader.readBytes(16)));
84
82
  if (box.version > 0) {
85
83
  const numKeyIds = box.reader.readUint32();
86
- for (const _ of shaka.util.Iterables.range(numKeyIds)) {
87
- shaka.util.Functional.ignored(_);
84
+ for (let i = 0; i < numKeyIds; i++) {
88
85
  const keyId =
89
86
  shaka.util.Uint8ArrayUtils.toHex(box.reader.readBytes(16));
90
87
  this.cencKeyIds.push(keyId);
@@ -425,7 +425,7 @@ shaka.util.StreamUtils = class {
425
425
  await shaka.util.StreamUtils.getDecodingInfosForVariants(
426
426
  manifest.variants, usePersistentLicenses, /* srcEquals= */ false);
427
427
  manifest.variants = manifest.variants.filter((variant) => {
428
- // See: https://github.com/google/shaka-player/issues/3860
428
+ // See: https://github.com/shaka-project/shaka-player/issues/3860
429
429
  const video = variant.video;
430
430
  const ContentType = shaka.util.ManifestParserUtils.ContentType;
431
431
  if (video) {
@@ -461,7 +461,7 @@ shaka.util.StreamUtils = class {
461
461
  }
462
462
  }
463
463
 
464
- // See: https://github.com/google/shaka-player/issues/3380
464
+ // See: https://github.com/shaka-project/shaka-player/issues/3380
465
465
  if (shaka.util.Platform.isXboxOne() && video &&
466
466
  ((video.width && video.width > 1920) ||
467
467
  (video.height && video.height > 1080)) &&
@@ -720,7 +720,8 @@ shaka.util.StreamUtils = class {
720
720
  static getCorrectAudioCodecs_(codecs) {
721
721
  // Some Tizen devices seem to misreport AC-3 support, but correctly
722
722
  // report EC-3 support. So query EC-3 as a fallback for AC-3.
723
- // See https://github.com/google/shaka-player/issues/2989 for details.
723
+ // See https://github.com/shaka-project/shaka-player/issues/2989 for
724
+ // details.
724
725
  if (shaka.util.Platform.isTizen()) {
725
726
  return codecs.toLowerCase() == 'ac-3' ? 'ec-3' : codecs;
726
727
  } else {
@@ -10,7 +10,6 @@ goog.require('goog.asserts');
10
10
  goog.require('shaka.log');
11
11
  goog.require('shaka.util.BufferUtils');
12
12
  goog.require('shaka.util.Error');
13
- goog.require('shaka.util.Iterables');
14
13
  goog.require('shaka.util.Lazy');
15
14
 
16
15
 
@@ -81,7 +80,7 @@ shaka.util.StringUtils = class {
81
80
  const length = Math.floor(data.byteLength / 2);
82
81
  const arr = new Uint16Array(length);
83
82
  const dataView = shaka.util.BufferUtils.toDataView(data);
84
- for (const i of shaka.util.Iterables.range(length)) {
83
+ for (let i = 0; i < length; i++) {
85
84
  arr[i] = dataView.getUint16(i * 2, littleEndian);
86
85
  }
87
86
  return shaka.util.StringUtils.fromCharCode(arr);
@@ -158,9 +157,8 @@ shaka.util.StringUtils = class {
158
157
  static toUTF16(str, littleEndian) {
159
158
  const result = new ArrayBuffer(str.length * 2);
160
159
  const view = new DataView(result);
161
- const enumerate = (it) => shaka.util.Iterables.enumerate(it);
162
- for (const {i, item} of enumerate(str)) {
163
- const value = item.charCodeAt(0);
160
+ for (let i = 0; i < str.length; ++i) {
161
+ const value = str.charCodeAt(i);
164
162
  view.setUint16(/* position= */ i * 2, value, littleEndian);
165
163
  }
166
164
  return result;
@@ -8,7 +8,6 @@ goog.provide('shaka.util.Uint8ArrayUtils');
8
8
 
9
9
  goog.require('shaka.Deprecate');
10
10
  goog.require('shaka.util.BufferUtils');
11
- goog.require('shaka.util.Iterables');
12
11
  goog.require('shaka.util.StringUtils');
13
12
 
14
13
 
@@ -74,9 +73,8 @@ shaka.util.Uint8ArrayUtils = class {
74
73
  // byte.
75
74
  const bytes = window.atob(str.replace(/-/g, '+').replace(/_/g, '/'));
76
75
  const result = new Uint8Array(bytes.length);
77
- const enumerate = (it) => shaka.util.Iterables.enumerate(it);
78
- for (const {i, item} of enumerate(bytes)) {
79
- result[i] = item.charCodeAt(0);
76
+ for (let i = 0; i < bytes.length; ++i) {
77
+ result[i] = bytes.charCodeAt(i);
80
78
  }
81
79
  return result;
82
80
  }
@@ -91,7 +89,7 @@ shaka.util.Uint8ArrayUtils = class {
91
89
  static fromHex(str) {
92
90
  const size = str.length / 2;
93
91
  const arr = new Uint8Array(size);
94
- for (const i of shaka.util.Iterables.range(size)) {
92
+ for (let i = 0; i < size; i++) {
95
93
  arr[i] = window.parseInt(str.substr(i * 2, 2), 16);
96
94
  }
97
95
  return arr;
@@ -57,9 +57,13 @@ shaka.util.XmlUtils = class {
57
57
  * @return {!Array.<!Element>} The child XML elements.
58
58
  */
59
59
  static findChildren(elem, name) {
60
- return Array.from(elem.childNodes).filter((child) => {
61
- return child instanceof Element && child.tagName == name;
62
- });
60
+ const found = [];
61
+ for (const child of elem.childNodes) {
62
+ if (child instanceof Element && child.tagName == name) {
63
+ found.push(child);
64
+ }
65
+ }
66
+ return found;
63
67
  }
64
68
 
65
69
 
@@ -82,10 +86,14 @@ shaka.util.XmlUtils = class {
82
86
  * @return {!Array.<!Element>} The child XML elements.
83
87
  */
84
88
  static findChildrenNS(elem, ns, name) {
85
- return Array.from(elem.childNodes).filter((child) => {
86
- return child instanceof Element && child.localName == name &&
87
- child.namespaceURI == ns;
88
- });
89
+ const found = [];
90
+ for (const child of elem.childNodes) {
91
+ if (child instanceof Element && child.localName == name &&
92
+ child.namespaceURI == ns) {
93
+ found.push(child);
94
+ }
95
+ }
96
+ return found;
89
97
  }
90
98
 
91
99
 
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "shaka-player",
3
3
  "description": "DASH/EME video player library",
4
- "version": "3.3.2",
5
- "homepage": "https://github.com/google/shaka-player",
4
+ "version": "3.3.3",
5
+ "homepage": "https://github.com/shaka-project/shaka-player",
6
6
  "author": "Google",
7
7
  "maintainers": [
8
8
  {
@@ -11,60 +11,85 @@
11
11
  }
12
12
  ],
13
13
  "devDependencies": {
14
+ "@babel/core": "^7.17.5",
15
+ "@babel/polyfill": "^7.12.1",
16
+ "@babel/preset-env": "^7.16.11",
14
17
  "@teppeis/clutz": "^1.0.29-4c95e12.v20190929",
15
- "awesomplete": "^1.1.4",
16
- "babel-core": "^6.26.3",
17
- "babel-plugin-istanbul": "^4.1.6",
18
- "babel-polyfill": "^6.26.0",
19
- "babel-preset-env": "^1.7.0",
18
+ "awesomplete": "^1.1.5",
19
+ "babel-plugin-istanbul": "^6.1.1",
20
20
  "cajon": "^0.4.4",
21
- "core-js": "^3.6.5",
22
- "dialog-polyfill": "^0.5.0",
21
+ "code-prettify": "^0.1.0",
22
+ "color-themes-for-google-code-prettify": "^2.0.4",
23
+ "core-js": "^3.21.1",
24
+ "dialog-polyfill": "^0.5.6",
23
25
  "es6-promise-polyfill": "^1.2.0",
24
- "eslint": "^7.18.0",
25
- "eslint-config-google": "^0.13.0",
26
+ "eslint": "^8.9.0",
27
+ "eslint-config-google": "^0.14.0",
26
28
  "eslint-plugin-shaka-rules": "file:./build/eslint-plugin-shaka-rules",
27
29
  "esprima": "^4.0.1",
28
30
  "fastestsmallesttextencoderdecoder": "^1.0.22",
29
31
  "fontfaceonload": "^1.0.2",
30
- "google-closure-compiler-java": "^20210505.0.0",
31
- "google-closure-library": "^20210406.0.0",
32
- "htmlhint": "^0.11.0",
32
+ "google-closure-compiler-java": "^20220301.0.0",
33
+ "google-closure-deps": "https://gitpkg.now.sh/google/closure-library/closure-deps?d7736da6",
34
+ "google-closure-library": "^20220301.0.0",
35
+ "htmlhint": "^1.1.3",
33
36
  "jasmine-ajax": "^4.0.0",
34
- "jimp": "^0.11.0",
35
- "jsdoc": "github:joeyparrish/jsdoc#45c271fa",
36
- "karma": "^6.2.0",
37
- "karma-babel-preprocessor": "^7.0.0",
38
- "karma-coverage": "^1.1.2",
39
- "karma-ie-launcher": "^1.0.0",
40
- "karma-jasmine": "^3.3.1",
37
+ "jimp": "^0.16.1",
38
+ "js-yaml": "^4.1.0",
39
+ "jsdoc": "github:joeyparrish/jsdoc#2ca85bb6",
40
+ "karma": "^6.3.16",
41
+ "karma-babel-preprocessor": "^8.0.2",
42
+ "karma-coverage": "^2.2.0",
43
+ "karma-jasmine": "^4.0.1",
41
44
  "karma-jasmine-ajax": "^0.1.13",
42
- "karma-local-wd-launcher": "^1.4.1",
45
+ "karma-local-wd-launcher": "^1.6.1",
43
46
  "karma-opera-launcher": "^1.0.0",
44
- "karma-sourcemap-loader": "^0.3.7",
45
- "karma-spec-reporter": "0.0.32",
47
+ "karma-sourcemap-loader": "^0.3.8",
48
+ "karma-spec-reporter": "^0.0.34",
46
49
  "karma-webdriver-launcher": "^1.0.8",
47
- "less": "^3.13.1",
48
- "less-plugin-clean-css": "^1.5.1",
50
+ "less": "https://gitpkg.now.sh/joeyparrish/less.js/packages/less?28c63a43",
51
+ "less-plugin-clean-css": "github:austingardner/less-plugin-clean-css#4e9e77bf",
49
52
  "material-design-lite": "^1.3.0",
50
- "mux.js": "^5.7.0",
51
- "pwacompat": "^2.0.10",
52
- "rimraf": "^2.6.3",
53
+ "mux.js": "^5.14.1",
54
+ "open-sans-fonts": "^1.6.2",
55
+ "postcss-less": "^6.0.0",
56
+ "pwacompat": "^2.0.17",
57
+ "rimraf": "^3.0.2",
53
58
  "sprintf-js": "^1.1.2",
54
59
  "ssim.js": "^3.5.0",
55
- "stylelint": "^13.8.0",
56
- "stylelint-config-standard": "^20.0.0",
57
- "tippy.js": "^4.3.1",
58
- "ua-parser-js": "^0.7.24",
59
- "which": "^1.3.1"
60
+ "stylelint": "^14.5.1",
61
+ "stylelint-config-standard": "^25.0.0",
62
+ "tippy.js": "^4.3.5",
63
+ "which": "^2.0.2"
64
+ },
65
+ "shakaCustom": {
66
+ "purposeOfDemoDeps": "These are the files from node_modules that need to be deployed with the demo app.",
67
+ "demoDeps": [
68
+ "awesomplete/awesomplete.css",
69
+ "awesomplete/awesomplete.min.js",
70
+ "dialog-polyfill/dialog-polyfill.css",
71
+ "dialog-polyfill/dist/dialog-polyfill.js",
72
+ "eme-encryption-scheme-polyfill/index.js",
73
+ "es6-promise-polyfill/promise.min.js",
74
+ "fastestsmallesttextencoderdecoder/EncoderDecoderTogether.min.js",
75
+ "google-closure-library/closure/goog/base.js",
76
+ "less/dist/less.js",
77
+ "material-design-lite/dist/material.indigo-blue.min.css",
78
+ "material-design-lite/dist/material.min.js",
79
+ "mux.js/dist/mux.min.js",
80
+ "popper.js/dist/umd/popper.min.js",
81
+ "pwacompat/pwacompat.min.js",
82
+ "tippy.js/umd/index.min.js",
83
+ "tippy.js/index.css"
84
+ ]
60
85
  },
61
86
  "main": "dist/shaka-player.compiled.js",
62
87
  "repository": {
63
88
  "type": "git",
64
- "url": "https://github.com/google/shaka-player.git"
89
+ "url": "https://github.com/shaka-project/shaka-player.git"
65
90
  },
66
91
  "bugs": {
67
- "url": "https://github.com/google/shaka-player/issues"
92
+ "url": "https://github.com/shaka-project/shaka-player/issues"
68
93
  },
69
94
  "license": "Apache-2.0",
70
95
  "scripts": {
package/roadmap.md CHANGED
@@ -10,49 +10,49 @@ so the exact milestone for future features is not pre-determined.
10
10
 
11
11
  Priority features up next:
12
12
  - Support containerless formats
13
- https://github.com/google/shaka-player/issues/2337
13
+ https://github.com/shaka-project/shaka-player/issues/2337
14
14
  - Preload API
15
- https://github.com/google/shaka-player/issues/880
15
+ https://github.com/shaka-project/shaka-player/issues/880
16
16
  - Codec-switching and order preference
17
- https://github.com/google/shaka-player/issues/1528
18
- https://github.com/google/shaka-player/issues/2179
17
+ https://github.com/shaka-project/shaka-player/issues/1528
18
+ https://github.com/shaka-project/shaka-player/issues/2179
19
19
 
20
20
  Candidate features for future release cycles:
21
21
  - HLS interstitial support
22
- https://github.com/google/shaka-player/issues/3364
22
+ https://github.com/shaka-project/shaka-player/issues/3364
23
23
  - Support ID3 tags in mp4
24
- https://github.com/google/shaka-player/issues/3351
24
+ https://github.com/shaka-project/shaka-player/issues/3351
25
25
  - MSE support for FairPlay
26
- https://github.com/google/shaka-player/issues/3346
26
+ https://github.com/shaka-project/shaka-player/issues/3346
27
27
  - Smaller, more modular binary
28
28
  - Official TypeScript defs, generated from source
29
- https://github.com/google/shaka-player/issues/1030
29
+ https://github.com/shaka-project/shaka-player/issues/1030
30
30
  - Shaka Analytics Component and an integration with BigQuery Analytics
31
- https://github.com/google/shaka-player/issues/3359
31
+ https://github.com/shaka-project/shaka-player/issues/3359
32
32
  - Integration with Google Video ML/Cloud AI
33
33
 
34
34
  v3.3 - 2021 Q3 or Q4
35
35
  - Background fetch for offline storage
36
- https://github.com/google/shaka-player/issues/879
36
+ https://github.com/shaka-project/shaka-player/issues/879
37
37
  - HLS performance improvements
38
- https://github.com/google/shaka-player/issues/3363
38
+ https://github.com/shaka-project/shaka-player/issues/3363
39
39
 
40
40
  =====
41
41
 
42
42
  v3.2 - 2021 Q3
43
43
  - MediaCapabilities to make performance-based decisions
44
- https://github.com/google/shaka-player/issues/1391
44
+ https://github.com/shaka-project/shaka-player/issues/1391
45
45
  - Configurable key-system priority
46
- https://github.com/google/shaka-player/issues/3002
46
+ https://github.com/shaka-project/shaka-player/issues/3002
47
47
 
48
48
  v3.1 - 2021 Q2
49
49
  - Low-latency live (LL-HLS, LL-DASH)
50
- https://github.com/google/shaka-player/issues/1525
50
+ https://github.com/shaka-project/shaka-player/issues/1525
51
51
  - Own CEA parser, use mux.js only for TS
52
- https://github.com/google/shaka-player/issues/2648
52
+ https://github.com/shaka-project/shaka-player/issues/2648
53
53
  - Thumbnail tracks
54
- DASH: https://github.com/google/shaka-player/issues/559
55
- HLS: https://github.com/google/shaka-player/issues/2429
54
+ DASH: https://github.com/shaka-project/shaka-player/issues/559
55
+ HLS: https://github.com/shaka-project/shaka-player/issues/2429
56
56
 
57
57
  v3.0 - 2020 Q2
58
58
  - Code health improvements
@@ -45,6 +45,7 @@ goog.require('shaka.polyfill.PatchedMediaKeysNop');
45
45
  goog.require('shaka.polyfill.PatchedMediaKeysWebkit');
46
46
  goog.require('shaka.polyfill.PiPWebkit');
47
47
  goog.require('shaka.polyfill.RandomUUID');
48
+ goog.require('shaka.polyfill.Symbol');
48
49
  goog.require('shaka.polyfill.VTTCue');
49
50
  goog.require('shaka.polyfill.VideoPlayPromise');
50
51
  goog.require('shaka.polyfill.VideoPlaybackQuality');
@@ -4,11 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.abr.SimpleAbrManager');
8
- goog.require('shaka.test.ManifestGenerator');
9
- goog.require('shaka.test.Util');
10
- goog.require('shaka.util.PlayerConfiguration');
11
-
12
7
  describe('SimpleAbrManager', () => {
13
8
  const sufficientBWMultiplier = 1.06;
14
9
  const defaultBandwidthEstimate = 500e3; // 500kbps
@@ -91,7 +86,7 @@ describe('SimpleAbrManager', () => {
91
86
  config.defaultBandwidthEstimate = 3e6;
92
87
  abrManager.configure(config);
93
88
  const chosen = abrManager.chooseVariant();
94
- expect(chosen.id).toBe(104);
89
+ expect(chosen.id).toBe(103);
95
90
  });
96
91
 
97
92
  it('can handle empty variants', () => {
@@ -170,7 +165,7 @@ describe('SimpleAbrManager', () => {
170
165
  it('can handle 0 duration segments', () => {
171
166
  // Makes sure bandwidth estimate doesn't get set to NaN
172
167
  // when a 0 duration segment is encountered.
173
- // https://github.com/google/shaka-player/issues/582
168
+ // https://github.com/shaka-project/shaka-player/issues/582
174
169
  const bandwidth = 5e5;
175
170
  const bytesPerSecond = sufficientBWMultiplier * bandwidth / 8.0;
176
171
 
@@ -208,7 +203,7 @@ describe('SimpleAbrManager', () => {
208
203
  abrManager.segmentDownloaded(1000, bytesPerSecond);
209
204
 
210
205
  // Expect variants 4 to be chosen
211
- const expectedVariant = variants[4];
206
+ const expectedVariant = variants[3];
212
207
 
213
208
  expect(switchCallback).toHaveBeenCalledWith(expectedVariant);
214
209
  });
@@ -4,12 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.Player');
8
- goog.require('shaka.ads.AdManager');
9
- goog.require('shaka.test.FakeVideo');
10
- goog.require('shaka.test.Util');
11
- goog.require('shaka.util.Error');
12
-
13
7
  describe('Ad manager', () => {
14
8
  /** @type {!shaka.test.FakeVideo} */
15
9
  let mockVideo;
@@ -4,14 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.cast.CastProxy');
8
- goog.require('shaka.cast.CastSender');
9
- goog.require('shaka.test.FakeVideo');
10
- goog.require('shaka.test.Util');
11
- goog.require('shaka.util.Error');
12
- goog.require('shaka.util.FakeEvent');
13
- goog.require('shaka.util.PublicPromise');
14
-
15
7
  describe('CastProxy', () => {
16
8
  const CastProxy = shaka.cast.CastProxy;
17
9
  const FakeEvent = shaka.util.FakeEvent;