shaka-player 3.2.3 → 3.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (325) hide show
  1. package/.csslintrc +11 -1
  2. package/.github/ISSUE_TEMPLATE/bug_report.md +1 -1
  3. package/.github/workflows/build-and-test.yaml +130 -0
  4. package/.github/workflows/custom-actions/prep-for-appspot/action.yaml +56 -0
  5. package/.github/workflows/custom-actions/set-commit-status/action.yaml +41 -0
  6. package/.github/workflows/demo-version-index.yaml +29 -0
  7. package/.github/workflows/nightly-demo.yaml +42 -0
  8. package/.github/workflows/release-please.yaml +147 -0
  9. package/.github/workflows/safari-homedir-launcher.sh +18 -0
  10. package/.github/workflows/selenium-lab-tests.yaml +93 -0
  11. package/AUTHORS +2 -0
  12. package/CHANGELOG.md +1587 -1551
  13. package/CONTRIBUTING.md +2 -2
  14. package/CONTRIBUTORS +2 -0
  15. package/README.md +7 -7
  16. package/app-engine/README.md +9 -0
  17. package/app-engine/demo-version-index/README.md +14 -0
  18. package/app-engine/demo-version-index/app.yaml +2 -0
  19. package/app-engine/demo-version-index/main.py +162 -0
  20. package/app-engine/demo-version-index/requirements.txt +6 -0
  21. package/app-engine/demo-version-index/templates/index.html +114 -0
  22. package/app-engine/shaka-player-demo/README.md +18 -0
  23. package/app-engine/shaka-player-demo/app.yaml +61 -0
  24. package/app-engine/shaka-player-demo/main.py +95 -0
  25. package/app-engine/shaka-player-demo/posters/10yo.png +0 -0
  26. package/app-engine/shaka-player-demo/posters/10yo.xcf +0 -0
  27. package/app-engine/shaka-player-demo/posters/1yo.jpg +0 -0
  28. package/app-engine/shaka-player-demo/posters/2yo.png +0 -0
  29. package/app-engine/shaka-player-demo/posters/2yo.xcf +0 -0
  30. package/app-engine/shaka-player-demo/posters/3yo.png +0 -0
  31. package/app-engine/shaka-player-demo/posters/3yo.xcf +0 -0
  32. package/app-engine/shaka-player-demo/posters/4yo.png +0 -0
  33. package/app-engine/shaka-player-demo/posters/4yo.xcf +0 -0
  34. package/app-engine/shaka-player-demo/posters/5yo.png +0 -0
  35. package/app-engine/shaka-player-demo/posters/5yo.xcf +0 -0
  36. package/app-engine/shaka-player-demo/posters/6yo.png +0 -0
  37. package/app-engine/shaka-player-demo/posters/6yo.xcf +0 -0
  38. package/app-engine/shaka-player-demo/posters/7yo.png +0 -0
  39. package/app-engine/shaka-player-demo/posters/7yo.xcf +0 -0
  40. package/app-engine/shaka-player-demo/posters/8yo.png +0 -0
  41. package/app-engine/shaka-player-demo/posters/8yo.xcf +0 -0
  42. package/app-engine/shaka-player-demo/posters/9yo.png +0 -0
  43. package/app-engine/shaka-player-demo/posters/9yo.xcf +0 -0
  44. package/app-engine/shaka-player-demo/posters/audioOnly.gif +0 -0
  45. package/app-engine/shaka-player-demo/posters/audioRickRoll.gif +0 -0
  46. package/app-engine/shaka-player-demo/posters/colorbars.gif +0 -0
  47. package/app-engine/shaka-player-demo/posters/fireworks.jpg +0 -0
  48. package/app-engine/shaka-player-demo/posters/party-hat.png +0 -0
  49. package/app-engine/shaka-player-demo/posters/sources.txt +46 -0
  50. package/app-engine/shaka-player-demo/posters/standard.png +0 -0
  51. package/app-engine/shaka-player-demo/posters/trek.jpg +0 -0
  52. package/app-engine/shaka-player-demo/posters/valentines.png +0 -0
  53. package/app-engine/shaka-player-demo/posters/zombie.jpg +0 -0
  54. package/app-engine/shaka-player-demo/posters.py +110 -0
  55. package/app-engine/shaka-player-demo/requirements.txt +5 -0
  56. package/app-engine/shaka-player-demo/time.txt +1 -0
  57. package/build/README.md +1 -1
  58. package/build/checkversion.py +1 -1
  59. package/build/conformance.textproto +13 -0
  60. package/build/docker/Dockerfile +20 -0
  61. package/build/docker/docker-compose.yml +10 -0
  62. package/build/gendeps.py +18 -15
  63. package/build/generateTsDefs.py +2 -0
  64. package/build/shaka-lab.yaml +163 -0
  65. package/build/shakaBuildHelpers.py +4 -29
  66. package/build/test.py +93 -28
  67. package/build/wrapper.template.js +2 -2
  68. package/demo/TengwarTelcontar.woff2 +0 -0
  69. package/demo/asset_card.js +1 -2
  70. package/demo/cast_receiver/index.html +1 -1
  71. package/demo/cast_receiver/receiver_app.css +14 -14
  72. package/demo/common/assets.js +2 -0
  73. package/demo/config.js +0 -1
  74. package/demo/custom.js +0 -1
  75. package/demo/customWarning.txt +2 -2
  76. package/demo/demo.less +29 -18
  77. package/demo/demo_uncompiled.js +1 -13
  78. package/demo/index.html +1 -1
  79. package/demo/main.js +3 -3
  80. package/dist/controls.css +2 -2
  81. package/dist/controls.css.map +1 -1
  82. package/dist/demo.compiled.debug.js +191 -194
  83. package/dist/demo.compiled.debug.map +4 -4
  84. package/dist/demo.compiled.js +191 -194
  85. package/dist/demo.compiled.map +4 -4
  86. package/dist/demo.css +1 -1
  87. package/dist/demo.css.map +1 -1
  88. package/dist/deps.js +225 -219
  89. package/dist/locales.js +27 -27
  90. package/dist/receiver.compiled.debug.js +43 -45
  91. package/dist/receiver.compiled.debug.map +4 -4
  92. package/dist/receiver.compiled.js +43 -45
  93. package/dist/receiver.compiled.map +4 -4
  94. package/dist/shaka-player.compiled.d.ts +228 -225
  95. package/dist/shaka-player.compiled.debug.d.ts +228 -225
  96. package/dist/shaka-player.compiled.debug.externs.js +21 -15
  97. package/dist/shaka-player.compiled.debug.js +326 -333
  98. package/dist/shaka-player.compiled.debug.map +4 -4
  99. package/dist/shaka-player.compiled.externs.js +21 -15
  100. package/dist/shaka-player.compiled.js +818 -821
  101. package/dist/shaka-player.compiled.map +4 -4
  102. package/dist/shaka-player.ui.d.ts +272 -278
  103. package/dist/shaka-player.ui.debug.d.ts +272 -278
  104. package/dist/shaka-player.ui.debug.externs.js +23 -26
  105. package/dist/shaka-player.ui.debug.js +259 -267
  106. package/dist/shaka-player.ui.debug.map +4 -4
  107. package/dist/shaka-player.ui.externs.js +23 -26
  108. package/dist/shaka-player.ui.js +963 -968
  109. package/dist/shaka-player.ui.map +4 -4
  110. package/docs/design/REDESIGN.md +33 -33
  111. package/docs/design/codec_preferences.md +1 -1
  112. package/docs/design/dash-audio-channels.md +3 -3
  113. package/docs/design/dash-manifests.md +1 -1
  114. package/docs/design/gap-jumping.md +3 -3
  115. package/docs/design/preload.md +2 -2
  116. package/docs/tutorials/faq.md +8 -8
  117. package/docs/tutorials/index.json +1 -0
  118. package/docs/tutorials/plugins.md +3 -3
  119. package/docs/tutorials/selenium-grid-config.md +122 -0
  120. package/docs/tutorials/welcome.md +10 -2
  121. package/karma.conf.js +156 -45
  122. package/lib/abr/simple_abr_manager.js +12 -6
  123. package/lib/ads/ad_manager.js +1 -0
  124. package/lib/cast/cast_proxy.js +6 -4
  125. package/lib/cast/cast_receiver.js +3 -0
  126. package/lib/cea/cea608_data_channel.js +2 -2
  127. package/lib/cea/cea708_service.js +5 -4
  128. package/lib/cea/mp4_cea_parser.js +11 -5
  129. package/lib/cea/sei_processor.js +6 -3
  130. package/lib/dash/dash_parser.js +40 -30
  131. package/lib/dash/mpd_utils.js +4 -5
  132. package/lib/dash/segment_list.js +1 -2
  133. package/lib/dash/segment_template.js +3 -3
  134. package/lib/hls/hls_parser.js +11 -9
  135. package/lib/hls/manifest_text_parser.js +4 -3
  136. package/lib/media/adaptation_set.js +1 -2
  137. package/lib/media/content_workarounds.js +2 -2
  138. package/lib/media/drm_engine.js +3 -2
  139. package/lib/media/media_source_engine.js +3 -2
  140. package/lib/media/mp4_segment_index_parser.js +1 -4
  141. package/lib/media/playhead.js +2 -2
  142. package/lib/media/presentation_timeline.js +18 -8
  143. package/lib/media/region_observer.js +39 -33
  144. package/lib/media/region_timeline.js +17 -19
  145. package/lib/media/streaming_engine.js +7 -7
  146. package/lib/media/time_ranges_utils.js +1 -3
  147. package/lib/media/video_wrapper.js +1 -1
  148. package/lib/net/networking_engine.js +5 -1
  149. package/lib/offline/storage.js +12 -13
  150. package/lib/player.js +58 -24
  151. package/lib/polyfill/all.js +2 -3
  152. package/lib/polyfill/encryption_scheme.js +1 -1
  153. package/lib/polyfill/media_capabilities.js +3 -3
  154. package/lib/polyfill/mediasource.js +1 -1
  155. package/lib/text/cue.js +1 -1
  156. package/lib/text/simple_text_displayer.js +2 -1
  157. package/lib/text/ttml_text_parser.js +8 -5
  158. package/lib/text/ui_text_displayer.js +1 -1
  159. package/lib/util/buffer_utils.js +1 -3
  160. package/lib/util/ebml_parser.js +3 -3
  161. package/lib/util/error.js +1 -1
  162. package/lib/util/fake_event_target.js +21 -1
  163. package/lib/util/iterables.js +0 -46
  164. package/lib/util/mp4_box_parsers.js +1 -4
  165. package/lib/util/mp4_parser.js +5 -7
  166. package/lib/util/periods.js +8 -9
  167. package/lib/util/platform.js +3 -3
  168. package/lib/util/pssh.js +1 -4
  169. package/lib/util/stream_utils.js +4 -3
  170. package/lib/util/string_utils.js +3 -5
  171. package/lib/util/uint8array_utils.js +3 -5
  172. package/lib/util/xml_utils.js +15 -7
  173. package/package.json +62 -40
  174. package/roadmap.md +17 -17
  175. package/test/abr/simple_abr_manager_unit.js +3 -8
  176. package/test/ads/ad_manager_unit.js +0 -6
  177. package/test/cast/cast_proxy_unit.js +0 -8
  178. package/test/cast/cast_receiver_integration.js +1 -18
  179. package/test/cast/cast_receiver_unit.js +1 -9
  180. package/test/cast/cast_sender_unit.js +0 -6
  181. package/test/cast/cast_utils_unit.js +0 -13
  182. package/test/cea/cea608_memory_unit.js +0 -5
  183. package/test/cea/cea708_service_unit.js +0 -7
  184. package/test/cea/cea708_window_unit.js +0 -5
  185. package/test/cea/cea_decoder_unit.js +0 -6
  186. package/test/cea/dtvcc_packet_builder_unit.js +0 -3
  187. package/test/cea/dtvcc_packet_unit.js +0 -5
  188. package/test/cea/mp4_cea_parser_unit.js +0 -4
  189. package/test/dash/dash_parser_content_protection_unit.js +1 -10
  190. package/test/dash/dash_parser_live_unit.js +45 -15
  191. package/test/dash/dash_parser_manifest_unit.js +4 -17
  192. package/test/dash/dash_parser_segment_base_unit.js +1 -8
  193. package/test/dash/dash_parser_segment_list_unit.js +1 -7
  194. package/test/dash/dash_parser_segment_template_unit.js +0 -9
  195. package/test/dash/mpd_utils_unit.js +3 -11
  196. package/test/demo/demo_unit.js +0 -5
  197. package/test/deprecate/enforcer_unit.js +0 -4
  198. package/test/deprecate/version_unit.js +0 -2
  199. package/test/hls/hls_live_unit.js +2 -14
  200. package/test/hls/hls_parser_unit.js +76 -15
  201. package/test/hls/manifest_text_parser_unit.js +0 -10
  202. package/test/media/adaptation_set_criteria_unit.js +3 -7
  203. package/test/media/adaptation_set_unit.js +0 -2
  204. package/test/media/buffering_observer_unit.js +1 -4
  205. package/test/media/closed_caption_parser_unit.js +0 -3
  206. package/test/media/drm_engine_integration.js +2 -15
  207. package/test/media/drm_engine_unit.js +4 -24
  208. package/test/media/manifest_parser_unit.js +0 -4
  209. package/test/media/media_source_engine_integration.js +0 -7
  210. package/test/media/media_source_engine_unit.js +1 -14
  211. package/test/media/mp4_segment_index_parser_unit.js +0 -4
  212. package/test/media/play_rate_controller_unit.js +0 -4
  213. package/test/media/playhead_unit.js +8 -16
  214. package/test/media/presentation_timeline_unit.js +4 -7
  215. package/test/media/region_observer_unit.js +40 -10
  216. package/test/media/region_timeline_unit.js +40 -25
  217. package/test/media/segment_index_unit.js +0 -6
  218. package/test/media/segment_reference_unit.js +0 -3
  219. package/test/media/stall_detector_unit.js +0 -5
  220. package/test/media/streaming_engine_integration.js +9 -36
  221. package/test/media/streaming_engine_unit.js +11 -35
  222. package/test/media/time_ranges_utils_unit.js +0 -2
  223. package/test/media/transmuxer_integration.js +0 -6
  224. package/test/media/webm_segment_index_parser_unit.js +0 -4
  225. package/test/net/data_uri_plugin_unit.js +0 -7
  226. package/test/net/http_plugin_unit.js +0 -9
  227. package/test/net/networking_engine_unit.js +0 -11
  228. package/test/offline/download_progress_estimator_unit.js +0 -2
  229. package/test/offline/indexeddb_storage_unit.js +0 -6
  230. package/test/offline/manifest_convert_unit.js +0 -8
  231. package/test/offline/offline_integration.js +1 -10
  232. package/test/offline/offline_manifest_parser_unit.js +0 -6
  233. package/test/offline/offline_scheme_unit.js +0 -8
  234. package/test/offline/offline_uri_unit.js +0 -2
  235. package/test/offline/storage_compatibility_unit.js +1 -14
  236. package/test/offline/storage_integration.js +1 -25
  237. package/test/player_external.js +2 -10
  238. package/test/player_integration.js +21 -28
  239. package/test/player_load_graph_integration.js +1 -6
  240. package/test/player_src_equals_external.js +3 -9
  241. package/test/player_src_equals_integration.js +0 -7
  242. package/test/player_unit.js +52 -37
  243. package/test/routing/walker_unit.js +0 -8
  244. package/test/test/assets/large_file.mpd +1 -1
  245. package/test/test/boot.js +75 -22
  246. package/test/test/externs/jasmine.js +2 -2
  247. package/test/test/externs/karma.js +4 -0
  248. package/test/test/namespace.js +10 -0
  249. package/test/test/util/canned_idb.js +0 -8
  250. package/test/test/util/cea_utils.js +0 -6
  251. package/test/test/util/dash_parser_util.js +0 -13
  252. package/test/test/util/fake_ad.js +0 -3
  253. package/test/test/util/fake_ad_manager.js +0 -9
  254. package/test/test/util/fake_demo_main.js +0 -5
  255. package/test/test/util/fake_drm_engine.js +0 -6
  256. package/test/test/util/fake_media_source_engine.js +0 -7
  257. package/test/test/util/fake_networking_engine.js +0 -5
  258. package/test/test/util/fake_text_displayer.js +0 -5
  259. package/test/test/util/indexeddb_utils.js +1 -10
  260. package/test/test/util/jasmine_fetch.js +0 -1
  261. package/test/test/util/loader.js +0 -18
  262. package/test/test/util/manifest_generator.js +9 -14
  263. package/test/test/util/manifest_parser_util.js +0 -6
  264. package/test/test/util/offline_utils.js +0 -5
  265. package/test/test/util/simple_fakes.js +9 -26
  266. package/test/test/util/stream_generator.js +0 -14
  267. package/test/test/util/streaming_engine_util.js +0 -15
  268. package/test/test/util/test_scheme.js +1 -19
  269. package/test/test/util/ttml_utils.js +0 -2
  270. package/test/test/util/ui_utils.js +0 -9
  271. package/test/test/util/util.js +15 -26
  272. package/test/test/util/waiter.js +84 -43
  273. package/test/text/cue_integration.js +0 -4
  274. package/test/text/lrc_text_parser_unit.js +0 -4
  275. package/test/text/mp4_ttml_parser_unit.js +0 -6
  276. package/test/text/mp4_vtt_parser_unit.js +1 -7
  277. package/test/text/sbv_text_parser_unit.js +0 -4
  278. package/test/text/simple_text_displayer_unit.js +1 -8
  279. package/test/text/srt_text_parser_unit.js +0 -4
  280. package/test/text/ssa_text_parser_unit.js +0 -5
  281. package/test/text/text_engine_unit.js +2 -7
  282. package/test/text/text_track_integration.js +0 -2
  283. package/test/text/ttml_text_parser_unit.js +2 -11
  284. package/test/text/ui_text_displayer_unit.js +44 -41
  285. package/test/text/vtt_text_parser_unit.js +0 -9
  286. package/test/text/web_vtt_generator_unit.js +0 -3
  287. package/test/ui/ad_ui_unit.js +0 -11
  288. package/test/ui/localization_unit.js +0 -3
  289. package/test/ui/text_displayer_layout_unit.js +9 -19
  290. package/test/ui/ui_customization_unit.js +0 -6
  291. package/test/ui/ui_integration.js +0 -16
  292. package/test/ui/ui_unit.js +1 -17
  293. package/test/util/abortable_operation_unit.js +4 -9
  294. package/test/util/array_utils_unit.js +0 -2
  295. package/test/util/buffer_utils_unit.js +0 -2
  296. package/test/util/data_view_reader_unit.js +0 -4
  297. package/test/util/ebml_parser_unit.js +0 -4
  298. package/test/util/event_manager_unit.js +0 -3
  299. package/test/util/fake_event_target_unit.js +0 -5
  300. package/test/util/functional_unit.js +1 -1
  301. package/test/util/iterables_unit.js +0 -64
  302. package/test/util/language_utils_unit.js +0 -3
  303. package/test/util/manifest_parser_utils_unit.js +0 -2
  304. package/test/util/mp4_box_parsers_unit.js +0 -5
  305. package/test/util/mp4_parser_unit.js +0 -4
  306. package/test/util/multi_map_unit.js +0 -3
  307. package/test/util/object_utils_unit.js +0 -2
  308. package/test/util/periods_unit.js +14 -7
  309. package/test/util/pssh_unit.js +0 -5
  310. package/test/util/state_history_unit.js +0 -2
  311. package/test/util/stream_utils_unit.js +3 -8
  312. package/test/util/string_utils_unit.js +0 -6
  313. package/test/util/text_parser_unit.js +0 -2
  314. package/test/util/xml_utils_unit.js +0 -4
  315. package/ui/controls.js +3 -0
  316. package/ui/less/ad_controls.less +6 -6
  317. package/ui/less/buttons.less +6 -6
  318. package/ui/less/containers.less +9 -11
  319. package/ui/less/overflow_menu.less +4 -4
  320. package/ui/less/range_elements.less +7 -2
  321. package/ui/locales/sjn-translations.yaml +257 -0
  322. package/ui/locales/sjn.json +42 -0
  323. package/ui/localization.js +12 -36
  324. package/ui/seek_bar.js +2 -1
  325. package/externs/svgelement.js +0 -18
@@ -4,8 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.util.Iterables');
8
-
9
7
  describe('Iterables', () => {
10
8
  const Iterables = shaka.util.Iterables;
11
9
 
@@ -67,66 +65,4 @@ describe('Iterables', () => {
67
65
  expect(Iterables.filter(input, (x) => x < 0)).toEqual([]);
68
66
  });
69
67
  });
70
-
71
- describe('enumerate', () => {
72
- function enumerate(it) {
73
- return Array.from(Iterables.enumerate(it));
74
- }
75
-
76
- it('works with no items', () => {
77
- expect(enumerate([])).toEqual([]);
78
- });
79
-
80
- it('works with one item', () => {
81
- expect(enumerate([999]))
82
- .toEqual([{i: 0, item: 999, prev: undefined, next: undefined}]);
83
- });
84
-
85
- it('works with special values', () => {
86
- expect(enumerate([[]]))
87
- .toEqual([{i: 0, item: [], prev: undefined, next: undefined}]);
88
- expect(enumerate([0]))
89
- .toEqual([{i: 0, item: 0, prev: undefined, next: undefined}]);
90
- expect(enumerate([null]))
91
- .toEqual([{i: 0, item: null, prev: undefined, next: undefined}]);
92
- expect(enumerate([undefined]))
93
- .toEqual([{i: 0, item: undefined, prev: undefined, next: undefined}]);
94
- });
95
-
96
- it('works with two items', () => {
97
- expect(enumerate([888, 999]))
98
- .toEqual([
99
- {i: 0, item: 888, prev: undefined, next: 999},
100
- {i: 1, item: 999, prev: 888, next: undefined},
101
- ]);
102
- });
103
-
104
- it('works with three items', () => {
105
- expect(enumerate([777, 888, 999]))
106
- .toEqual([
107
- {i: 0, item: 777, prev: undefined, next: 888},
108
- {i: 1, item: 888, prev: 777, next: 999},
109
- {i: 2, item: 999, prev: 888, next: undefined},
110
- ]);
111
- });
112
-
113
- it('keeps references', () => {
114
- const expected = [
115
- {a: 'x'},
116
- {b: 'y'},
117
- {c: 'z'},
118
- ];
119
- const actual = enumerate(expected);
120
-
121
- expect(actual[0].item).toBe(expected[0]);
122
- expect(actual[0].next).toBe(expected[1]);
123
-
124
- expect(actual[1].prev).toBe(expected[0]);
125
- expect(actual[1].item).toBe(expected[1]);
126
- expect(actual[1].next).toBe(expected[2]);
127
-
128
- expect(actual[2].prev).toBe(expected[1]);
129
- expect(actual[2].item).toBe(expected[2]);
130
- });
131
- });
132
68
  });
@@ -4,9 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.util.LanguageUtils');
8
- goog.require('shaka.util.ManifestParserUtils');
9
-
10
7
  describe('LanguageUtils', () => {
11
8
  const LanguageUtils = shaka.util.LanguageUtils;
12
9
 
@@ -4,8 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.util.ManifestParserUtils');
8
-
9
7
  describe('ManifestParserUtils', () => {
10
8
  const ManifestParserUtils = shaka.util.ManifestParserUtils;
11
9
 
@@ -4,11 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('goog.asserts');
8
- goog.require('shaka.test.Util');
9
- goog.require('shaka.util.Mp4BoxParsers');
10
- goog.require('shaka.util.Mp4Parser');
11
-
12
7
  describe('Mp4BoxParsers', () => {
13
8
  const videoInitSegmentUri = '/base/test/test/assets/sintel-video-init.mp4';
14
9
  const videoSegmentUri = '/base/test/test/assets/sintel-video-segment.mp4';
@@ -4,10 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.test.Util');
8
- goog.require('shaka.util.Error');
9
- goog.require('shaka.util.Mp4Parser');
10
-
11
7
  describe('Mp4Parser', () => {
12
8
  const Util = shaka.test.Util;
13
9
 
@@ -4,9 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.test.Util');
8
- goog.require('shaka.util.MultiMap');
9
-
10
7
  describe('MultiMap', () => {
11
8
  /** @type {shaka.util.MultiMap<number>} */
12
9
  let map;
@@ -4,8 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.util.ObjectUtils');
8
-
9
7
  describe('ObjectUtils', () => {
10
8
  const ObjectUtils = shaka.util.ObjectUtils;
11
9
 
@@ -4,10 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.test.ManifestGenerator');
8
- goog.require('shaka.util.ManifestParserUtils');
9
- goog.require('shaka.util.PeriodCombiner');
10
-
11
7
  describe('PeriodCombiner', () => {
12
8
  // These test cases don't really read well as "it" statements. Phrasing them
13
9
  // that way would make the names very long, so here we break with that
@@ -477,7 +473,7 @@ describe('PeriodCombiner', () => {
477
473
  a3.originalId = 'a3';
478
474
  a3.bandwidth = 97065;
479
475
  a3.roles = ['role1', 'role2'];
480
- a2.codecs = 'mp4a.40.2';
476
+ a3.codecs = 'mp4a.40.2';
481
477
 
482
478
  // a4 has a different label from a3, and should not
483
479
  // be filtered out.
@@ -500,14 +496,24 @@ describe('PeriodCombiner', () => {
500
496
  const t1 = makeTextStream('en');
501
497
  t1.originalId = 't1';
502
498
  t1.roles = ['role1'];
499
+ t1.bandwidth = 1158;
503
500
 
504
501
  const t2 = makeTextStream('en');
505
502
  t2.originalId = 't2';
506
503
  t2.roles = ['role1', 'role2'];
504
+ t2.bandwidth = 1172;
507
505
 
508
506
  const t3 = makeTextStream('en');
509
507
  t3.originalId = 't3';
510
508
  t3.roles = ['role1'];
509
+ t3.bandwidth = 1158;
510
+
511
+ // t4 has a different bandwidth from t3, and should not
512
+ // be filtered out.
513
+ const t4 = makeTextStream('en');
514
+ t4.originalId = 't4';
515
+ t4.roles = ['role1'];
516
+ t4.bandwidth = 1186;
511
517
 
512
518
  // i1 and i3 are duplicates.
513
519
  const i1 = makeImageStream(240);
@@ -539,6 +545,7 @@ describe('PeriodCombiner', () => {
539
545
  t1,
540
546
  t2,
541
547
  t3,
548
+ t4,
542
549
  ],
543
550
  imageStreams: [
544
551
  i1,
@@ -565,7 +572,7 @@ describe('PeriodCombiner', () => {
565
572
  }
566
573
 
567
574
  const textStreams = combiner.getTextStreams();
568
- expect(textStreams.length).toBe(2);
575
+ expect(textStreams.length).toBe(3);
569
576
 
570
577
  // t3 should've been filtered out
571
578
  const textIds = textStreams.map((t) => t.originalId);
@@ -1059,7 +1066,7 @@ describe('PeriodCombiner', () => {
1059
1066
  it('The number of variants stays stable after many periods ' +
1060
1067
  'when going between similar content and varying ads', async () => {
1061
1068
  // This test is based on the content from
1062
- // https://github.com/google/shaka-player/issues/2716
1069
+ // https://github.com/shaka-project/shaka-player/issues/2716
1063
1070
  // that used to cause our period flattening logic to keep
1064
1071
  // creating new variants for every new period added.
1065
1072
  // It's ok to create a few additional varinats/streams,
@@ -4,11 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.test.Util');
8
- goog.require('shaka.util.Error');
9
- goog.require('shaka.util.Pssh');
10
- goog.require('shaka.util.Uint8ArrayUtils');
11
-
12
7
  describe('Pssh', () => {
13
8
  const Uint8ArrayUtils = shaka.util.Uint8ArrayUtils;
14
9
 
@@ -4,8 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.util.StateHistory');
8
-
9
7
  describe('StateHistory', () => {
10
8
  const oldDateNow = Date.now;
11
9
 
@@ -4,11 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.test.FakeDrmEngine');
8
- goog.require('shaka.test.ManifestGenerator');
9
- goog.require('shaka.test.Util');
10
- goog.require('shaka.util.StreamUtils');
11
-
12
7
  describe('StreamUtils', () => {
13
8
  const StreamUtils = shaka.util.StreamUtils;
14
9
 
@@ -184,7 +179,7 @@ describe('StreamUtils', () => {
184
179
  });
185
180
 
186
181
  it('chooses only one role, even if none is preferred', () => {
187
- // Regression test for https://github.com/google/shaka-player/issues/949
182
+ // Regression test for https://github.com/shaka-project/shaka-player/issues/949
188
183
  manifest = shaka.test.ManifestGenerator.generate((manifest) => {
189
184
  manifest.addTextStream(0, (stream) => {
190
185
  stream.language = 'en';
@@ -223,7 +218,7 @@ describe('StreamUtils', () => {
223
218
  });
224
219
 
225
220
  it('chooses only one role, even if all are primary', () => {
226
- // Regression test for https://github.com/google/shaka-player/issues/949
221
+ // Regression test for https://github.com/shaka-project/shaka-player/issues/949
227
222
  manifest = shaka.test.ManifestGenerator.generate((manifest) => {
228
223
  manifest.addTextStream(0, (stream) => {
229
224
  stream.language = 'en';
@@ -269,7 +264,7 @@ describe('StreamUtils', () => {
269
264
  });
270
265
 
271
266
  it('chooses only one language, even if all are primary', () => {
272
- // Regression test for https://github.com/google/shaka-player/issues/918
267
+ // Regression test for https://github.com/shaka-project/shaka-player/issues/918
273
268
  manifest = shaka.test.ManifestGenerator.generate((manifest) => {
274
269
  manifest.addTextStream(0, (stream) => {
275
270
  stream.language = 'en';
@@ -4,12 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.test.Util');
8
- goog.require('shaka.util.BufferUtils');
9
- goog.require('shaka.util.Error');
10
- goog.require('shaka.util.ManifestParserUtils');
11
- goog.require('shaka.util.StringUtils');
12
-
13
7
  describe('StringUtils', () => {
14
8
  const StringUtils = shaka.util.StringUtils;
15
9
 
@@ -4,8 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.util.TextParser');
8
-
9
7
  describe('TextParser', () => {
10
8
  const TextParser = shaka.util.TextParser;
11
9
 
@@ -4,10 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('goog.asserts');
8
- goog.require('shaka.util.XmlUtils');
9
-
10
-
11
7
  describe('XmlUtils', () => {
12
8
  // A number that cannot be represented as a Javascript number.
13
9
  const HUGE_NUMBER_STRING = new Array(500).join('7');
package/ui/controls.js CHANGED
@@ -253,6 +253,9 @@ shaka.ui.Controls = class extends shaka.util.FakeEventTarget {
253
253
 
254
254
  this.localization_ = null;
255
255
  this.pressedKeys_.clear();
256
+
257
+ // FakeEventTarget implements IReleasable
258
+ super.release();
256
259
  }
257
260
 
258
261
 
@@ -78,11 +78,11 @@
78
78
 
79
79
  /* This math is determining how far the button is from the right edge.
80
80
  * Ad panel's parent is centered and @bottom-controls-width wide, so
81
- * 100 - @bottom-controls-width = margins from both sides of the container.
81
+ * 100% - @bottom-controls-width = margins from both sides of the container.
82
82
  * That divided by 2 is margin on one side, so we take that, and move the
83
83
  * button from its normal position to the right by that percentage.
84
84
  */
85
- right: (100 - @bottom-controls-width) / 2 * -1;
85
+ right: calc((100% - @bottom-controls-width) / 2 * -1);
86
86
  display: flex;
87
87
  flex-direction: row;
88
88
  margin: 0;
@@ -90,18 +90,18 @@
90
90
 
91
91
  .shaka-skip-ad-button {
92
92
  padding: 5px 15px;
93
- background: rgba(0, 0, 0, 0.7);
93
+ background: rgba(0 0 0 / 70%);
94
94
  border: none;
95
95
 
96
96
  &:disabled {
97
- background: rgba(0, 0, 0, 0.3);
97
+ background: rgba(0 0 0 / 30%);
98
98
  }
99
99
 
100
100
  cursor: pointer;
101
101
  }
102
102
 
103
103
  .shaka-skip-ad-counter {
104
- padding: 5px 5px;
105
- background: rgba(0, 0, 0, 0.7);
104
+ padding: 5px;
105
+ background: rgba(0 0 0 / 70%);
106
106
  margin: 0;
107
107
  }
@@ -26,7 +26,7 @@
26
26
  *
27
27
  * Based on tips from https://stackoverflow.com/a/12925343 */
28
28
  box-sizing: border-box;
29
- padding: @play-button-size-percentage / 2;
29
+ padding: calc(@play-button-size-percentage / 2);
30
30
  width: 0;
31
31
  height: 0;
32
32
 
@@ -38,7 +38,7 @@
38
38
  border-radius: 50%;
39
39
 
40
40
  /* A small drop shadow below the button. */
41
- box-shadow: rgba(0, 0, 0, 0.1) 0 0 20px 0;
41
+ box-shadow: rgba(0 0 0 / 10%) 0 0 20px 0;
42
42
 
43
43
  /* No border. */
44
44
  border: none;
@@ -51,7 +51,7 @@
51
51
  background-position: center center;
52
52
 
53
53
  /* A background color behind the play arrow. */
54
- background-color: rgba(255, 255, 255, 0.9);
54
+ background-color: rgba(255 255 255 / 90%);
55
55
 
56
56
  .show-when-controls-shown();
57
57
 
@@ -60,11 +60,11 @@
60
60
  * deployed separately from the compiled CSS.
61
61
  * Note that these URIs should relative to ui/controls.less, not this file. */
62
62
  &[icon="play"] {
63
- background-image: data-uri('images/play_arrow.svg');
63
+ background-image: data-uri("images/play_arrow.svg");
64
64
  }
65
65
 
66
66
  &[icon="pause"] {
67
- background-image: data-uri('images/pause.svg');
67
+ background-image: data-uri("images/pause.svg");
68
68
  }
69
69
  }
70
70
 
@@ -74,7 +74,7 @@
74
74
  */
75
75
  .shaka-current-time {
76
76
  font-size: 14px;
77
- color: rgb(255, 255, 255);
77
+ color: white;
78
78
  cursor: pointer;
79
79
 
80
80
  &[disabled] {
@@ -6,8 +6,6 @@
6
6
 
7
7
  /* All of the top-level containers into which various visible features go. */
8
8
 
9
- @transparent: rgba(0, 0, 0, 0);
10
-
11
9
  /* A container for the entire video + controls combo. This is the auto-setup
12
10
  * div which we populate. */
13
11
  .shaka-video-container {
@@ -19,13 +17,13 @@
19
17
 
20
18
  /* Set a special font for material design icons. */
21
19
  .material-icons-round {
22
- font-family: 'Material Icons Round';
20
+ font-family: "Material Icons Round";
23
21
  font-size: 24px;
24
22
  }
25
23
 
26
24
  /* Set the fonts for all other content. */
27
25
  * {
28
- font-family: Roboto-Regular, Roboto, sans-serif;
26
+ font-family: Roboto-Regular, Roboto, sans-serif, TengwarTelcontar;
29
27
  }
30
28
  }
31
29
 
@@ -203,7 +201,7 @@
203
201
  .show-when-controls-shown();
204
202
 
205
203
  /* A black gradient at the bottom, behind the controls, but only so high. */
206
- background: linear-gradient(to top, rgba(0, 0, 0, 1) 0, @transparent 15%);
204
+ background: linear-gradient(to top, black 0, transparent 15%);
207
205
  }
208
206
 
209
207
  .shaka-text-container {
@@ -231,7 +229,7 @@
231
229
  /* These are defaults which are overridden by JS or cue styles. */
232
230
  font-size: 20px;
233
231
  line-height: 1.4; // relative to font size.
234
- color: rgb(255, 255, 255);
232
+ color: white;
235
233
 
236
234
  span.shaka-text-wrapper {
237
235
  display: inline;
@@ -265,8 +263,8 @@
265
263
 
266
264
  .shaka-spinner {
267
265
  /* This uses the same trickery as the big play button define
268
- the spinner's width and height. See .shaka-play-button
269
- for the detailed explanation. */
266
+ * the spinner's width and height. See .shaka-play-button
267
+ * for the detailed explanation. */
270
268
 
271
269
  /* For the padding thing to work, spinner div needs to be an
272
270
  overlay-parent and spinner svg - an overlay child. */
@@ -274,11 +272,11 @@
274
272
 
275
273
  margin: 0;
276
274
  box-sizing: border-box;
277
- padding: @spinner-size-percentage / 2;
275
+ padding: calc(@spinner-size-percentage / 2);
278
276
  width: 0;
279
277
  height: 0;
280
278
 
281
279
  /* Add a bit of a white shadow to keep our black spinner visible
282
- on a black background. */
283
- filter: drop-shadow(0 0 2px rgba(255, 255, 255, 0.5));
280
+ * on a black background. */
281
+ filter: drop-shadow(0 0 2px rgba(255 255 255 / 50%));
284
282
  }
@@ -18,7 +18,7 @@
18
18
 
19
19
  /* Styles for the menu itself. */
20
20
  background: white;
21
- box-shadow: 0 1px 9px 0 rgba(0, 0, 0, 0.4);
21
+ box-shadow: 0 1px 9px 0 rgba(0 0 0 / 40%);
22
22
  border-radius: 2px;
23
23
  max-height: 250px;
24
24
  min-width: 180px;
@@ -52,7 +52,7 @@
52
52
 
53
53
  /* When hovered, the button's background is highlighted. */
54
54
  &:hover {
55
- background: rgb(224, 224, 224);
55
+ background: rgb(224 224 224);
56
56
  }
57
57
 
58
58
  /* The button is clickable, showing cursor pointer */
@@ -64,7 +64,7 @@
64
64
  }
65
65
 
66
66
  .shaka-keyboard-navigation &:focus {
67
- background: rgb(224, 224, 224);
67
+ background: rgb(224 224 224);
68
68
  }
69
69
  }
70
70
 
@@ -109,7 +109,7 @@
109
109
  * language, the currently-selected resolution, etc. */
110
110
  .shaka-current-selection-span {
111
111
  /* This is dimmer than the other span, which is the name of the submenu. */
112
- color: rgba(0, 0, 0, 0.54);
112
+ color: rgba(0 0 0 / 54%);
113
113
  }
114
114
 
115
115
  /* The submenus have somewhat different margins inside them. */
@@ -39,7 +39,7 @@
39
39
  .overlay-parent();
40
40
 
41
41
  /* Vertical margins to occupy the same space as the thumb. */
42
- margin: (@thumb-size - @track-height)/2 6px;
42
+ margin: calc((@thumb-size - @track-height) / 2) 6px;
43
43
 
44
44
  /* Smaller height to contain the background for the virtual track. */
45
45
  height: @track-height;
@@ -57,6 +57,11 @@
57
57
  /* The track should fill the range element. */
58
58
  width: 100%;
59
59
 
60
+ /* Since range elements are special input elements, they must reflect user
61
+ * interaction, so when the user hovers over the range element, the cursor
62
+ * must be a pointer. */
63
+ cursor: pointer;
64
+
60
65
  /* The track should be tall enough to contain the thumb without clipping it.
61
66
  * It is very tricky to make the thumb show outside the track on IE 11, and
62
67
  * it is incompatible with our background gradients. */
@@ -104,7 +109,7 @@
104
109
 
105
110
  /* Position the top of the range element so that it is centered on the
106
111
  * container. Note that the container is actually smaller than the thumb. */
107
- top: (@track-height - @thumb-size) / 2;
112
+ top: calc((@track-height - @thumb-size) / 2);
108
113
 
109
114
  /* Make sure clicking at the very top of the bar still takes effect and is not
110
115
  * confused with clicking the video to play/pause it. */