shaka-player 3.3.2 → 3.3.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 (339) 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 +129 -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 +147 -0
  10. package/.github/workflows/safari-homedir-launcher.sh +18 -0
  11. package/.github/workflows/selenium-lab-tests.yaml +92 -0
  12. package/AUTHORS +2 -0
  13. package/CHANGELOG.md +1718 -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 +3 -3
  59. package/build/checkversion.py +2 -2
  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 +94 -29
  67. package/build/types/core +0 -1
  68. package/build/types/polyfill +1 -0
  69. package/build/wrapper.template.js +2 -2
  70. package/demo/TengwarTelcontar.woff2 +0 -0
  71. package/demo/asset_card.js +1 -2
  72. package/demo/cast_receiver/index.html +1 -1
  73. package/demo/cast_receiver/receiver_app.css +14 -14
  74. package/demo/common/assets.js +2 -0
  75. package/demo/config.js +0 -1
  76. package/demo/custom.js +0 -1
  77. package/demo/customWarning.txt +2 -2
  78. package/demo/demo.less +29 -18
  79. package/demo/demo_uncompiled.js +1 -13
  80. package/demo/index.html +1 -1
  81. package/demo/main.js +3 -3
  82. package/dist/controls.css +3 -3
  83. package/dist/controls.css.map +1 -1
  84. package/dist/demo.compiled.debug.js +191 -194
  85. package/dist/demo.compiled.debug.map +4 -4
  86. package/dist/demo.compiled.js +191 -194
  87. package/dist/demo.compiled.map +4 -4
  88. package/dist/demo.css +1 -1
  89. package/dist/demo.css.map +1 -1
  90. package/dist/deps.js +232 -226
  91. package/dist/locales.js +30 -30
  92. package/dist/receiver.compiled.debug.js +43 -45
  93. package/dist/receiver.compiled.debug.map +4 -4
  94. package/dist/receiver.compiled.js +43 -45
  95. package/dist/receiver.compiled.map +4 -4
  96. package/dist/shaka-player.compiled.d.ts +247 -236
  97. package/dist/shaka-player.compiled.debug.d.ts +247 -236
  98. package/dist/shaka-player.compiled.debug.externs.js +15 -3
  99. package/dist/shaka-player.compiled.debug.js +284 -290
  100. package/dist/shaka-player.compiled.debug.map +4 -4
  101. package/dist/shaka-player.compiled.externs.js +15 -3
  102. package/dist/shaka-player.compiled.js +855 -859
  103. package/dist/shaka-player.compiled.map +4 -4
  104. package/dist/shaka-player.ui.d.ts +291 -280
  105. package/dist/shaka-player.ui.debug.d.ts +291 -280
  106. package/dist/shaka-player.ui.debug.externs.js +15 -3
  107. package/dist/shaka-player.ui.debug.js +296 -302
  108. package/dist/shaka-player.ui.debug.map +4 -4
  109. package/dist/shaka-player.ui.externs.js +15 -3
  110. package/dist/shaka-player.ui.js +1005 -1009
  111. package/dist/shaka-player.ui.map +4 -4
  112. package/docs/design/REDESIGN.md +33 -33
  113. package/docs/design/bg-fetch.md +2 -2
  114. package/docs/design/codec_preferences.md +1 -1
  115. package/docs/design/dash-audio-channels.md +3 -3
  116. package/docs/design/dash-manifests.md +1 -1
  117. package/docs/design/gap-jumping.md +3 -3
  118. package/docs/design/preload.md +2 -2
  119. package/docs/tutorials/faq.md +8 -8
  120. package/docs/tutorials/index.json +1 -0
  121. package/docs/tutorials/plugins.md +3 -3
  122. package/docs/tutorials/selenium-grid-config.md +122 -0
  123. package/docs/tutorials/welcome.md +10 -2
  124. package/externs/cmcd.js +1 -1
  125. package/karma.conf.js +141 -30
  126. package/lib/abr/simple_abr_manager.js +12 -6
  127. package/lib/cast/cast_proxy.js +3 -4
  128. package/lib/cea/cea608_data_channel.js +2 -2
  129. package/lib/cea/cea708_service.js +5 -4
  130. package/lib/cea/mp4_cea_parser.js +11 -5
  131. package/lib/cea/sei_processor.js +6 -3
  132. package/lib/dash/dash_parser.js +11 -14
  133. package/lib/dash/mpd_utils.js +4 -5
  134. package/lib/dash/segment_list.js +1 -2
  135. package/lib/dash/segment_template.js +3 -3
  136. package/lib/hls/hls_parser.js +34 -20
  137. package/lib/hls/manifest_text_parser.js +3 -3
  138. package/lib/media/adaptation_set.js +1 -2
  139. package/lib/media/content_workarounds.js +2 -2
  140. package/lib/media/drm_engine.js +3 -2
  141. package/lib/media/media_source_engine.js +10 -3
  142. package/lib/media/mp4_segment_index_parser.js +1 -4
  143. package/lib/media/playhead.js +2 -2
  144. package/lib/media/presentation_timeline.js +18 -8
  145. package/lib/media/streaming_engine.js +6 -6
  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 +1 -1
  149. package/lib/offline/indexeddb/storage_mechanism.js +4 -2
  150. package/lib/offline/storage.js +96 -95
  151. package/lib/player.js +190 -114
  152. package/lib/polyfill/all.js +2 -3
  153. package/lib/polyfill/encryption_scheme.js +1 -1
  154. package/lib/polyfill/media_capabilities.js +3 -3
  155. package/lib/polyfill/mediasource.js +1 -1
  156. package/lib/polyfill/symbol.js +46 -0
  157. package/lib/text/cue.js +1 -1
  158. package/lib/text/simple_text_displayer.js +2 -1
  159. package/lib/text/ttml_text_parser.js +8 -5
  160. package/lib/text/ui_text_displayer.js +1 -1
  161. package/lib/util/buffer_utils.js +1 -3
  162. package/lib/util/config_utils.js +25 -0
  163. package/lib/util/ebml_parser.js +3 -3
  164. package/lib/util/error.js +8 -1
  165. package/lib/util/iterables.js +0 -46
  166. package/lib/util/manifest_parser_utils.js +1 -1
  167. package/lib/util/mime_utils.js +48 -1
  168. package/lib/util/mp4_box_parsers.js +1 -4
  169. package/lib/util/mp4_parser.js +5 -7
  170. package/lib/util/periods.js +15 -15
  171. package/lib/util/platform.js +3 -3
  172. package/lib/util/player_configuration.js +9 -14
  173. package/lib/util/pssh.js +1 -4
  174. package/lib/util/stream_utils.js +8 -5
  175. package/lib/util/string_utils.js +3 -5
  176. package/lib/util/uint8array_utils.js +3 -5
  177. package/lib/util/xml_utils.js +15 -7
  178. package/package.json +61 -36
  179. package/roadmap.md +17 -17
  180. package/shaka-player.uncompiled.js +1 -0
  181. package/test/abr/simple_abr_manager_unit.js +3 -8
  182. package/test/ads/ad_manager_unit.js +0 -6
  183. package/test/cast/cast_proxy_unit.js +0 -8
  184. package/test/cast/cast_receiver_integration.js +1 -18
  185. package/test/cast/cast_receiver_unit.js +1 -9
  186. package/test/cast/cast_sender_unit.js +0 -6
  187. package/test/cast/cast_utils_unit.js +1 -13
  188. package/test/cea/cea608_memory_unit.js +0 -5
  189. package/test/cea/cea708_service_unit.js +0 -7
  190. package/test/cea/cea708_window_unit.js +0 -5
  191. package/test/cea/cea_decoder_unit.js +0 -6
  192. package/test/cea/dtvcc_packet_builder_unit.js +0 -3
  193. package/test/cea/dtvcc_packet_unit.js +0 -5
  194. package/test/cea/mp4_cea_parser_unit.js +0 -4
  195. package/test/dash/dash_parser_content_protection_unit.js +1 -10
  196. package/test/dash/dash_parser_live_unit.js +2 -15
  197. package/test/dash/dash_parser_manifest_unit.js +2 -40
  198. package/test/dash/dash_parser_segment_base_unit.js +1 -8
  199. package/test/dash/dash_parser_segment_list_unit.js +1 -7
  200. package/test/dash/dash_parser_segment_template_unit.js +0 -9
  201. package/test/dash/mpd_utils_unit.js +3 -11
  202. package/test/demo/demo_unit.js +0 -5
  203. package/test/deprecate/enforcer_unit.js +0 -4
  204. package/test/deprecate/version_unit.js +0 -2
  205. package/test/hls/hls_live_unit.js +28 -14
  206. package/test/hls/hls_parser_unit.js +2 -15
  207. package/test/hls/manifest_text_parser_unit.js +19 -10
  208. package/test/media/adaptation_set_criteria_unit.js +3 -7
  209. package/test/media/adaptation_set_unit.js +0 -2
  210. package/test/media/buffering_observer_unit.js +1 -4
  211. package/test/media/closed_caption_parser_unit.js +0 -3
  212. package/test/media/drm_engine_integration.js +2 -15
  213. package/test/media/drm_engine_unit.js +4 -24
  214. package/test/media/manifest_parser_unit.js +0 -4
  215. package/test/media/media_source_engine_integration.js +1 -7
  216. package/test/media/media_source_engine_unit.js +5 -18
  217. package/test/media/mp4_segment_index_parser_unit.js +0 -4
  218. package/test/media/play_rate_controller_unit.js +0 -4
  219. package/test/media/playhead_unit.js +8 -16
  220. package/test/media/presentation_timeline_unit.js +4 -7
  221. package/test/media/quality_observer_unit.js +0 -4
  222. package/test/media/region_observer_unit.js +1 -6
  223. package/test/media/region_timeline_unit.js +0 -3
  224. package/test/media/segment_index_unit.js +0 -6
  225. package/test/media/segment_reference_unit.js +0 -3
  226. package/test/media/stall_detector_unit.js +0 -5
  227. package/test/media/streaming_engine_integration.js +11 -36
  228. package/test/media/streaming_engine_unit.js +11 -35
  229. package/test/media/time_ranges_utils_unit.js +0 -2
  230. package/test/media/transmuxer_integration.js +0 -6
  231. package/test/media/webm_segment_index_parser_unit.js +0 -4
  232. package/test/net/data_uri_plugin_unit.js +0 -7
  233. package/test/net/http_plugin_unit.js +0 -9
  234. package/test/net/networking_engine_unit.js +0 -11
  235. package/test/offline/download_progress_estimator_unit.js +0 -2
  236. package/test/offline/indexeddb_storage_unit.js +1 -7
  237. package/test/offline/manifest_convert_unit.js +0 -8
  238. package/test/offline/offline_integration.js +1 -10
  239. package/test/offline/offline_manifest_parser_unit.js +0 -6
  240. package/test/offline/offline_scheme_unit.js +0 -8
  241. package/test/offline/offline_uri_unit.js +0 -2
  242. package/test/offline/storage_compatibility_unit.js +2 -15
  243. package/test/offline/storage_integration.js +1 -27
  244. package/test/player_external.js +9 -11
  245. package/test/player_integration.js +28 -38
  246. package/test/player_load_graph_integration.js +1 -6
  247. package/test/player_src_equals_external.js +3 -9
  248. package/test/player_src_equals_integration.js +81 -90
  249. package/test/player_unit.js +150 -38
  250. package/test/routing/walker_unit.js +0 -8
  251. package/test/test/assets/large_file.mpd +1 -1
  252. package/test/test/boot.js +84 -22
  253. package/test/test/externs/filters.js +4 -0
  254. package/test/test/externs/jasmine.js +2 -2
  255. package/test/test/externs/karma.js +4 -0
  256. package/test/test/namespace.js +10 -0
  257. package/test/test/util/canned_idb.js +0 -8
  258. package/test/test/util/cea_utils.js +0 -6
  259. package/test/test/util/dash_parser_util.js +0 -13
  260. package/test/test/util/fake_ad.js +0 -3
  261. package/test/test/util/fake_ad_manager.js +0 -9
  262. package/test/test/util/fake_demo_main.js +0 -5
  263. package/test/test/util/fake_drm_engine.js +0 -6
  264. package/test/test/util/fake_media_source_engine.js +0 -7
  265. package/test/test/util/fake_networking_engine.js +0 -5
  266. package/test/test/util/fake_text_displayer.js +0 -5
  267. package/test/test/util/indexeddb_utils.js +1 -10
  268. package/test/test/util/jasmine_fetch.js +0 -1
  269. package/test/test/util/loader.js +0 -18
  270. package/test/test/util/manifest_generator.js +9 -14
  271. package/test/test/util/manifest_parser_util.js +0 -6
  272. package/test/test/util/offline_utils.js +0 -5
  273. package/test/test/util/simple_fakes.js +40 -28
  274. package/test/test/util/stream_generator.js +0 -14
  275. package/test/test/util/streaming_engine_util.js +0 -15
  276. package/test/test/util/test_scheme.js +1 -19
  277. package/test/test/util/ttml_utils.js +0 -2
  278. package/test/test/util/ui_utils.js +0 -9
  279. package/test/test/util/util.js +5 -19
  280. package/test/test/util/waiter.js +84 -43
  281. package/test/text/cue_integration.js +0 -4
  282. package/test/text/lrc_text_parser_unit.js +0 -4
  283. package/test/text/mp4_ttml_parser_unit.js +0 -6
  284. package/test/text/mp4_vtt_parser_unit.js +1 -7
  285. package/test/text/sbv_text_parser_unit.js +0 -4
  286. package/test/text/simple_text_displayer_unit.js +1 -8
  287. package/test/text/srt_text_parser_unit.js +0 -4
  288. package/test/text/ssa_text_parser_unit.js +0 -5
  289. package/test/text/text_engine_unit.js +2 -7
  290. package/test/text/text_track_integration.js +0 -2
  291. package/test/text/ttml_text_parser_unit.js +2 -11
  292. package/test/text/ui_text_displayer_unit.js +44 -41
  293. package/test/text/vtt_text_parser_unit.js +0 -9
  294. package/test/text/web_vtt_generator_unit.js +0 -3
  295. package/test/ui/ad_ui_unit.js +0 -11
  296. package/test/ui/localization_unit.js +0 -3
  297. package/test/ui/text_displayer_layout_unit.js +1 -12
  298. package/test/ui/ui_customization_unit.js +0 -6
  299. package/test/ui/ui_integration.js +0 -16
  300. package/test/ui/ui_unit.js +1 -17
  301. package/test/util/abortable_operation_unit.js +4 -9
  302. package/test/util/array_utils_unit.js +0 -2
  303. package/test/util/buffer_utils_unit.js +0 -2
  304. package/test/util/cmcd_manager_unit.js +0 -3
  305. package/test/util/data_view_reader_unit.js +0 -4
  306. package/test/util/ebml_parser_unit.js +0 -4
  307. package/test/util/event_manager_unit.js +0 -3
  308. package/test/util/fake_event_target_unit.js +0 -5
  309. package/test/util/functional_unit.js +1 -1
  310. package/test/util/iterables_unit.js +0 -64
  311. package/test/util/language_utils_unit.js +0 -3
  312. package/test/util/manifest_parser_utils_unit.js +0 -2
  313. package/test/util/mime_utils_unit.js +54 -0
  314. package/test/util/mp4_box_parsers_unit.js +0 -5
  315. package/test/util/mp4_parser_unit.js +0 -4
  316. package/test/util/multi_map_unit.js +0 -3
  317. package/test/util/object_utils_unit.js +0 -2
  318. package/test/util/periods_unit.js +93 -7
  319. package/test/util/pssh_unit.js +0 -5
  320. package/test/util/state_history_unit.js +0 -2
  321. package/test/util/stream_utils_unit.js +3 -8
  322. package/test/util/string_utils_unit.js +0 -6
  323. package/test/util/text_parser_unit.js +0 -2
  324. package/test/util/xml_utils_unit.js +0 -4
  325. package/ui/less/ad_controls.less +6 -6
  326. package/ui/less/buttons.less +6 -6
  327. package/ui/less/containers.less +13 -15
  328. package/ui/less/overflow_menu.less +4 -4
  329. package/ui/less/range_elements.less +7 -2
  330. package/ui/less/tooltip.less +4 -4
  331. package/ui/locales/sjn-translations.yaml +257 -0
  332. package/ui/locales/sjn.json +42 -0
  333. package/ui/seek_bar.js +2 -1
  334. package/.github/workflows/build_and_test.yaml +0 -73
  335. package/.github/workflows/release.yaml +0 -53
  336. package/docs/tutorials/gsoc-ideas-list.md +0 -3
  337. package/externs/svgelement.js +0 -18
  338. package/externs/webcrypto.js +0 -18
  339. package/lib/util/mutex.js +0 -52
@@ -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. */
@@ -48,22 +48,22 @@
48
48
 
49
49
  /* Override .material-icons-round text styling */
50
50
  font-family: Roboto-Regular, Roboto, sans-serif;
51
- line-height: @material-icons-width / 2;
51
+ line-height: calc(@material-icons-width / 2);
52
52
  white-space: nowrap;
53
53
  font-size: 13px;
54
54
 
55
55
  /* Styling */
56
- background: rgba(35, 35, 35, 0.9);
56
+ background: rgba(35 35 35 / 90%);
57
57
  color: white;
58
58
  border-radius: 3px;
59
59
  padding: 5px 10px;
60
60
 
61
61
  /* Positioning */
62
62
  position: absolute;
63
- bottom: @material-icons-width + 5px;
63
+ bottom: calc(@material-icons-width + 5px);
64
64
 
65
65
  /* Left attribute is set to half of the width of the parent button */
66
- left: @material-icons-width / 2;
66
+ left: calc(@material-icons-width / 2);
67
67
 
68
68
  /* The tooltip is also translated 50% to appear centered */
69
69
  .translateX(-0.5);
@@ -0,0 +1,257 @@
1
+ # Shaka Player Sindarin (Elvish) Translations
2
+ # Copyright 2022 Google LLC
3
+ # SPDX-License-Identifier: Apache-2.0
4
+
5
+ # This documents the manual translation of our UI into Sindarin.
6
+ # This file is not consumed automatically.
7
+
8
+ # References:
9
+ # - Font: http://freetengwar.sourceforge.net/tengtelc.html
10
+ # - Transliteration & dictionary: https://www.tecendil.com/?mode=sindarin
11
+ # - Dictionary: https://www.jrrvf.com/hisweloke/sindar/
12
+ # - Dictionary: https://www.elfdict.com/w/run/s?include_old=1
13
+ # - Grammar: https://www.elvish.org/gwaith/sindarin_intro.htm
14
+ # - Grammar: https://eldamo.org/content/grammar-indexes/grammars-s.html
15
+ # - Imperative ending: -o
16
+ # - Thesaurus: https://www.thesaurus.com/
17
+
18
+ translations:
19
+ - key: AD_DURATION
20
+ english: "Ad duration"
21
+ sjn-literal: "time for break for money"
22
+ sjn-roman: "lû an hastië an mirian"
23
+ sjn: "    "
24
+
25
+ - key: AD_PROGRESS
26
+ english: "Ad [AD_ON] of [NUM_ADS]"
27
+ sjn-literal: "break for money [A] / [B]"
28
+ sjn-roman: "hastië an mirian [A] / [B]"
29
+ sjn: "   [AD_ON] / [NUM_ADS]"
30
+
31
+ - key: AD_TIME
32
+ english: "Ad: [AD_TIME]"
33
+ sjn-literal: "break for money: [A]"
34
+ sjn-roman: "hastië an mirian: [A]"
35
+ sjn: "  : [AD_TIME]"
36
+
37
+ - key: AIRPLAY
38
+ english: "AirPlay"
39
+ sjn-literal: "heavens-make-play"
40
+ sjn-roman: "menelnortho"
41
+ sjn: ""
42
+
43
+ - key: AUTO_QUALITY
44
+ english: "Auto"
45
+ sjn-literal: "adapt/make fit"
46
+ sjn-roman: "cammo"
47
+ sjn: ""
48
+
49
+ - key: BACK
50
+ english: "Back"
51
+ sjn-literal: "return"
52
+ sjn-roman: "dan"
53
+ sjn: ""
54
+
55
+ - key: CAPTIONS
56
+ english: "Captions"
57
+ sjn-literal: "words written"
58
+ sjn-roman: "pith teithiel"
59
+ sjn: " "
60
+
61
+ - key: CAST
62
+ english: "Cast..."
63
+ sjn-literal: "throw"
64
+ sjn-roman: "hanto"
65
+ sjn: ""
66
+
67
+ - key: ENTER_LOOP_MODE
68
+ english: "Loop the current video"
69
+ sjn-literal: "enter repeating"
70
+ sjn-roman: "minno enquetië"
71
+ sjn: " "
72
+
73
+ - key: ENTER_PICTURE_IN_PICTURE
74
+ english: "Enter Picture-in-Picture"
75
+ sjn-literal: "enter mind-picture within mind-picture"
76
+ sjn-roman: "minno fanwos bir fanwos"
77
+ sjn: "   "
78
+
79
+ - key: EXIT_FULL_SCREEN
80
+ english: "Exit full screen"
81
+ sjn-literal: "escape mind-picture full"
82
+ sjn-roman: "uthro fanwos panta"
83
+ sjn: "  "
84
+
85
+ - key: EXIT_LOOP_MODE
86
+ english: "Stop looping the current video"
87
+ sjn-literal: "escape repeating"
88
+ sjn-roman: "uthro enquetië"
89
+ sjn: " "
90
+
91
+ - key: EXIT_PICTURE_IN_PICTURE
92
+ english: "Exit Picture-in-Picture"
93
+ sjn-literal: "escape mind-picture within mind-picture"
94
+ sjn-roman: "uthro fanwos bir fanwos"
95
+ sjn: "   "
96
+
97
+ - key: FAST_FORWARD
98
+ english: "Fast-forward"
99
+ sjn-literal: "make-run fast"
100
+ sjn-roman: "northo lim"
101
+ sjn: " "
102
+
103
+ - key: FULL_SCREEN
104
+ english: "Full screen"
105
+ sjn-literal: "mind-picture full"
106
+ sjn-roman: "fanwos panta"
107
+ sjn: " "
108
+
109
+ - key: LANGUAGE
110
+ english: "Language"
111
+ sjn-literal: "language"
112
+ sjn-roman: "lambë"
113
+ sjn: ""
114
+
115
+ - key: LIVE
116
+ english: "Live"
117
+ sjn-literal: "freshest"
118
+ sjn-roman: "cîrwain"
119
+ sjn: ""
120
+
121
+ - key: LOOP
122
+ english: "Loop"
123
+ sjn-literal: "repeat"
124
+ sjn-roman: "enqueto"
125
+ sjn: ""
126
+
127
+ - key: MORE_SETTINGS
128
+ english: "More settings"
129
+ sjn-literal: "more+choices"
130
+ sjn-roman: "galainc"
131
+ sjn: ""
132
+
133
+ - key: MULTIPLE_LANGUAGES
134
+ english: "Multiple languages"
135
+ sjn-literal: "language without count"
136
+ sjn-roman: "lambë arnoediad"
137
+ sjn: " "
138
+
139
+ - key: MUTE
140
+ english: "Mute"
141
+ sjn-literal: "silence"
142
+ sjn-roman: "dîn"
143
+ sjn: ""
144
+
145
+ - key: NOT_APPLICABLE
146
+ english: "Not applicable"
147
+ sjn-literal: "not important"
148
+ sjn-roman: "la bâl"
149
+ sjn: " "
150
+
151
+ - key: OFF
152
+ english: "Off"
153
+ sjn-literal: "nothing"
154
+ sjn-roman: "unt"
155
+ sjn: ""
156
+
157
+ - key: ON
158
+ english: "On"
159
+ sjn-literal: "active"
160
+ sjn-roman: "carweg"
161
+ sjn: ""
162
+
163
+ - key: PAUSE
164
+ english: "Pause"
165
+ sjn-literal: "tarry/wait/pause"
166
+ sjn-roman: "hasto"
167
+ sjn: ""
168
+
169
+ - key: PICTURE_IN_PICTURE
170
+ english: "Picture-in-picture"
171
+ sjn-literal: "mind-picture within mind-picture"
172
+ sjn-roman: "fanwos bir fanwos"
173
+ sjn: "  "
174
+
175
+ - key: PLAY
176
+ english: "Play"
177
+ sjn-literal: "make-run"
178
+ sjn-roman: "northo"
179
+ sjn: ""
180
+
181
+ - key: PLAYBACK_RATE
182
+ english: "Playback speed"
183
+ sjn-literal: "speed"
184
+ sjn-roman: "lintië"
185
+ sjn: ""
186
+
187
+ - key: REPLAY
188
+ english: "Replay"
189
+ sjn-literal: "make-run again"
190
+ sjn-roman: "adnortho"
191
+ sjn: ""
192
+
193
+ - key: RESOLUTION
194
+ english: "Resolution"
195
+ sjn-literal: "value/preciousness"
196
+ sjn-roman: "meiras"
197
+ sjn: ""
198
+
199
+ - key: REWIND
200
+ english: "Rewind"
201
+ sjn-literal: "make-run backwards"
202
+ sjn-roman: "northo abont"
203
+ sjn: " "
204
+
205
+ - key: SEEK
206
+ english: "Seek"
207
+ sjn-literal: "time"
208
+ sjn-roman: "lû"
209
+ sjn: ""
210
+
211
+ - key: SKIP_AD
212
+ english: "Skip Ad"
213
+ sjn-literal: "leap across break for money"
214
+ sjn-roman: "cabo thar hastië an mirian"
215
+ sjn: "    "
216
+
217
+ - key: SKIP_TO_LIVE
218
+ english: "Skip ahead to live"
219
+ sjn-literal: "leap to freshest"
220
+ sjn-roman: "cabo na cîrwain"
221
+ sjn: "  "
222
+
223
+ - key: STATISTICS
224
+ english: "Statistics"
225
+ sjn-literal: "interrogate numbers"
226
+ sjn-roman: "cetho neth"
227
+ sjn: " "
228
+
229
+ - key: SUBTITLE_FORCED
230
+ english: "Forced"
231
+ sjn-literal: "words written firm/abiding"
232
+ sjn-roman: "pith teithiel taug"
233
+ sjn: "  "
234
+
235
+ - key: UNDETERMINED_LANGUAGE
236
+ english: "Undetermined"
237
+ sjn-literal: "not known"
238
+ sjn-roman: "la sinnen"
239
+ sjn: " "
240
+
241
+ - key: UNMUTE
242
+ english: "Unmute"
243
+ sjn-literal: "noise/sound"
244
+ sjn-roman: "lhôn"
245
+ sjn: ""
246
+
247
+ - key: UNRECOGNIZED_LANGUAGE
248
+ english: "Unrecognized"
249
+ sjn-literal: "not known"
250
+ sjn-roman: "la sinnen"
251
+ sjn: " "
252
+
253
+ - key: VOLUME
254
+ english: "Volume"
255
+ sjn-literal: "loud(ness)"
256
+ sjn-roman: "brui"
257
+ sjn: ""
@@ -0,0 +1,42 @@
1
+ {
2
+ "AD_DURATION": "    ",
3
+ "AD_PROGRESS": "   [AD_ON] / [NUM_ADS]",
4
+ "AD_TIME": "  : [AD_TIME]",
5
+ "AIRPLAY": "",
6
+ "AUTO_QUALITY": "",
7
+ "BACK": "",
8
+ "CAPTIONS": " ",
9
+ "CAST": "",
10
+ "ENTER_LOOP_MODE": " ",
11
+ "ENTER_PICTURE_IN_PICTURE": "   ",
12
+ "EXIT_FULL_SCREEN": "  ",
13
+ "EXIT_LOOP_MODE": " ",
14
+ "EXIT_PICTURE_IN_PICTURE": "   ",
15
+ "FAST_FORWARD": " ",
16
+ "FULL_SCREEN": " ",
17
+ "LANGUAGE": "",
18
+ "LIVE": "",
19
+ "LOOP": "",
20
+ "MORE_SETTINGS": "",
21
+ "MULTIPLE_LANGUAGES": " ",
22
+ "MUTE": "",
23
+ "NOT_APPLICABLE": " ",
24
+ "OFF": "",
25
+ "ON": "",
26
+ "PAUSE": "",
27
+ "PICTURE_IN_PICTURE": "  ",
28
+ "PLAY": "",
29
+ "PLAYBACK_RATE": "",
30
+ "REPLAY": "",
31
+ "RESOLUTION": "",
32
+ "REWIND": " ",
33
+ "SEEK": "",
34
+ "SKIP_AD": "    ",
35
+ "SKIP_TO_LIVE": "  ",
36
+ "STATISTICS": " ",
37
+ "SUBTITLE_FORCED": "  ",
38
+ "UNDETERMINED_LANGUAGE": " ",
39
+ "UNMUTE": "",
40
+ "UNRECOGNIZED_LANGUAGE": " ",
41
+ "VOLUME": ""
42
+ }
package/ui/seek_bar.js CHANGED
@@ -74,7 +74,8 @@ shaka.ui.SeekBar = class extends shaka.ui.RangeElement {
74
74
  });
75
75
 
76
76
  /**
77
- * When user is scrubbing the seek bar - we should pause the video - see https://git.io/JUhHG
77
+ * When user is scrubbing the seek bar - we should pause the video - see
78
+ * https://github.com/google/shaka-player/pull/2898#issuecomment-705229215
78
79
  * but will conditionally pause or play the video after scrubbing
79
80
  * depending on its previous state
80
81
  *
@@ -1,73 +0,0 @@
1
- name: Build and Test PR
2
-
3
- on:
4
- pull_request: # Trigger for pull requests.
5
- types: [opened, synchronize, reopened, edited, ready_for_review]
6
- branches:
7
- - master
8
- - v[0-9]*
9
- workflow_dispatch: # Allows for manual triggering.
10
- inputs:
11
- ref:
12
- description: "The ref to build and test."
13
- required: False
14
-
15
- jobs:
16
- lint:
17
- name: Lint
18
- runs-on: ubuntu-latest
19
- steps:
20
- - name: Checkout code
21
- uses: actions/checkout@v2
22
- with:
23
- ref: ${{ github.event.inputs.ref || github.ref }}
24
-
25
- - name: Lint
26
- run: python build/check.py
27
-
28
- build_and_test:
29
- # Don't waste time doing a full matrix of test runs when there was an
30
- # obvious linter error.
31
- needs: lint
32
- strategy:
33
- matrix:
34
- os: ["ubuntu-latest", "macos-latest", "windows-latest"]
35
- browser: ["Chrome", "Firefox", "Edge", "Safari"]
36
- exclude:
37
- - os: ubuntu-latest
38
- browser: Edge
39
- - os: windows-latest
40
- browser: Safari
41
- - os: ubuntu-latest
42
- browser: Safari
43
- include:
44
- # Run Linux browsers with xvfb, so they're in a headless X session.
45
- - os: ubuntu-latest
46
- extra_flags: "--use-xvfb"
47
- # Disable fail-fast so that one matrix-job failing doesn't make the other
48
- # ones end early.
49
- fail-fast: false
50
-
51
- name: Build and test ${{ matrix.os }} ${{ matrix.browser }}
52
- runs-on: ${{ matrix.os }}
53
-
54
- steps:
55
- # Firefox on Ubuntu appears to not have the right things installed in
56
- # the environment used by GitHub actions, so make sure that ffmpeg is
57
- # installed. Otherwise, the browser might not support some codecs that the
58
- # tests assume will be supported.
59
- - name: Install FFmpeg
60
- if: matrix.os == 'ubuntu-latest' && matrix.browser == 'Firefox'
61
- run: sudo apt -y update && sudo apt -y install ffmpeg
62
-
63
- - name: Checkout code
64
- uses: actions/checkout@v2
65
- with:
66
- ref: ${{ github.event.inputs.ref || github.ref }}
67
-
68
- - name: Build Player
69
- run: python build/all.py
70
-
71
- - name: Test Player
72
- run: |
73
- python build/test.py --browsers ${{ matrix.browser }} --reporters spec --spec-hide-passed --drm ${{ matrix.extra_flags }}
@@ -1,53 +0,0 @@
1
- on:
2
- push:
3
- branches:
4
- - master
5
- - v[0-9]*
6
-
7
- name: Release
8
-
9
- jobs:
10
- release:
11
- runs-on: ubuntu-latest
12
- outputs:
13
- release_created: ${{ steps.release.outputs.release_created }}
14
- tag_name: ${{ steps.release.outputs.tag_name }}
15
- steps:
16
- # Create/update release PR
17
- - uses: google-github-actions/release-please-action@v3
18
- id: release
19
- with:
20
- # Required input to specify the release type (node package).
21
- release-type: node
22
- # Make sure the player version gets updated.
23
- extra-files: lib/player.js
24
- # Make sure we create the PR against the correct branch.
25
- default-branch: ${{ github.ref_name }}
26
-
27
- # The jobs below are all conditional on a release having been created by
28
- # someone merging the release PR. They all run in parallel.
29
-
30
- npm:
31
- runs-on: ubuntu-latest
32
- needs: release
33
- if: ${{ needs.release.outputs.release_created }}
34
- steps:
35
- - uses: actions/checkout@v2
36
- - uses: actions/setup-node@v1
37
- with:
38
- node-version: 12
39
- registry-url: 'https://registry.npmjs.org'
40
- - run: npm ci
41
- - run: npm publish
42
- env:
43
- NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}}
44
- - run: npm pack
45
- - uses: svenstaro/upload-release-action@483c1e56f95e88835747b1c7c60581215016cbf2
46
- with:
47
- repo_token: ${{ secrets.GITHUB_TOKEN }}
48
- tag: ${{ needs.release.outputs.tag_name }}
49
- file: shaka-player-*.tgz
50
- file_glob: true
51
- overwrite: true
52
-
53
- # TODO: Publish to appspot
@@ -1,3 +0,0 @@
1
- # Google Summer of Code Ideas List
2
-
3
- Please see the latest project ideas list [here](https://storage.googleapis.com/wvtemp/shaka/Shaka%20Player%20GSoC%20Projects%20List.pdf).
@@ -1,18 +0,0 @@
1
- /*! @license
2
- * Shaka Player
3
- * Copyright 2016 Google LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
-
7
- /**
8
- * @fileoverview Externs for SVGElement which are missing from the Closure
9
- * compiler.
10
- *
11
- * @externs
12
- */
13
-
14
- // Right now, we only use SVGElement in an instanceof check, so we just declare
15
- // the type with nothing on it.
16
-
17
- /** @constructor */
18
- function SVGElement() {}
@@ -1,18 +0,0 @@
1
- /*! @license
2
- * Shaka Player
3
- * Copyright 2016 Google LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
-
7
-
8
- /**
9
- * @fileoverview Externs for crypto properties not in the Closure compiler.
10
- *
11
- * @externs
12
- */
13
-
14
-
15
- /**
16
- * @return {string}
17
- */
18
- webCrypto.Crypto.prototype.randomUUID = function() {};
package/lib/util/mutex.js DELETED
@@ -1,52 +0,0 @@
1
- /*! @license
2
- * Shaka Player
3
- * Copyright 2016 Google LLC
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
-
7
- goog.provide('shaka.util.Mutex');
8
-
9
-
10
- /**
11
- * @summary A simple mutex.
12
- */
13
- shaka.util.Mutex = class {
14
- /** Creates the mutex. */
15
- constructor() {
16
- /** @private {!Array.<function()>} */
17
- this.waiting_ = [];
18
-
19
- /** @private {number} */
20
- this.nextMutexId_ = 0;
21
-
22
- /** @private {number} */
23
- this.acquiredMutexId_ = 0;
24
- }
25
-
26
- /** @return {!Promise.<number>} mutexId */
27
- async acquire() {
28
- const mutexId = ++this.nextMutexId_;
29
- if (!this.acquiredMutexId_) {
30
- this.acquiredMutexId_ = mutexId;
31
- } else {
32
- await (new Promise((resolve, reject) => {
33
- this.waiting_.push(() => {
34
- this.acquiredMutexId_ = mutexId;
35
- resolve();
36
- });
37
- }));
38
- }
39
- return mutexId;
40
- }
41
-
42
- /** @param {number} mutexId */
43
- release(mutexId) {
44
- if (mutexId == this.acquiredMutexId_) {
45
- this.acquiredMutexId_ = 0;
46
- if (this.waiting_.length > 0) {
47
- const callback = this.waiting_.shift();
48
- callback();
49
- }
50
- }
51
- }
52
- };