shaka-player 3.3.2 → 4.0.0

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 (389) 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 +37 -0
  8. package/.github/workflows/nightly-demo.yaml +42 -0
  9. package/.github/workflows/release-please.yaml +168 -0
  10. package/.github/workflows/safari-homedir-launcher.sh +18 -0
  11. package/.github/workflows/selenium-lab-tests.yaml +92 -0
  12. package/.github/workflows/sync-labels.yaml +33 -0
  13. package/.github/workflows/update-issues.yaml +29 -0
  14. package/.github/workflows/validate-pr-title.yaml +35 -0
  15. package/AUTHORS +3 -0
  16. package/CHANGELOG.md +1866 -1675
  17. package/CONTRIBUTING.md +2 -2
  18. package/CONTRIBUTORS +3 -0
  19. package/README.md +16 -13
  20. package/app-engine/README.md +9 -0
  21. package/app-engine/demo-version-index/README.md +14 -0
  22. package/app-engine/demo-version-index/app.yaml +28 -0
  23. package/app-engine/demo-version-index/generate.py +164 -0
  24. package/app-engine/demo-version-index/main.py +11 -0
  25. package/app-engine/demo-version-index/requirements.txt +5 -0
  26. package/app-engine/demo-version-index/templates/index.html +114 -0
  27. package/app-engine/shaka-player-demo/README.md +18 -0
  28. package/app-engine/shaka-player-demo/app.yaml +61 -0
  29. package/app-engine/shaka-player-demo/main.py +95 -0
  30. package/app-engine/shaka-player-demo/posters/10yo.png +0 -0
  31. package/app-engine/shaka-player-demo/posters/10yo.xcf +0 -0
  32. package/app-engine/shaka-player-demo/posters/1yo.jpg +0 -0
  33. package/app-engine/shaka-player-demo/posters/2yo.png +0 -0
  34. package/app-engine/shaka-player-demo/posters/2yo.xcf +0 -0
  35. package/app-engine/shaka-player-demo/posters/3yo.png +0 -0
  36. package/app-engine/shaka-player-demo/posters/3yo.xcf +0 -0
  37. package/app-engine/shaka-player-demo/posters/4yo.png +0 -0
  38. package/app-engine/shaka-player-demo/posters/4yo.xcf +0 -0
  39. package/app-engine/shaka-player-demo/posters/5yo.png +0 -0
  40. package/app-engine/shaka-player-demo/posters/5yo.xcf +0 -0
  41. package/app-engine/shaka-player-demo/posters/6yo.png +0 -0
  42. package/app-engine/shaka-player-demo/posters/6yo.xcf +0 -0
  43. package/app-engine/shaka-player-demo/posters/7yo.png +0 -0
  44. package/app-engine/shaka-player-demo/posters/7yo.xcf +0 -0
  45. package/app-engine/shaka-player-demo/posters/8yo.png +0 -0
  46. package/app-engine/shaka-player-demo/posters/8yo.xcf +0 -0
  47. package/app-engine/shaka-player-demo/posters/9yo.png +0 -0
  48. package/app-engine/shaka-player-demo/posters/9yo.xcf +0 -0
  49. package/app-engine/shaka-player-demo/posters/audioOnly.gif +0 -0
  50. package/app-engine/shaka-player-demo/posters/audioRickRoll.gif +0 -0
  51. package/app-engine/shaka-player-demo/posters/colorbars.gif +0 -0
  52. package/app-engine/shaka-player-demo/posters/fireworks.jpg +0 -0
  53. package/app-engine/shaka-player-demo/posters/party-hat.png +0 -0
  54. package/app-engine/shaka-player-demo/posters/sources.txt +46 -0
  55. package/app-engine/shaka-player-demo/posters/standard.png +0 -0
  56. package/app-engine/shaka-player-demo/posters/trek.jpg +0 -0
  57. package/app-engine/shaka-player-demo/posters/valentines.png +0 -0
  58. package/app-engine/shaka-player-demo/posters/zombie.jpg +0 -0
  59. package/app-engine/shaka-player-demo/posters.py +110 -0
  60. package/app-engine/shaka-player-demo/requirements.txt +5 -0
  61. package/app-engine/shaka-player-demo/time.txt +1 -0
  62. package/build/README.md +3 -3
  63. package/build/checkversion.py +1 -1
  64. package/build/compiler.py +1 -1
  65. package/build/conformance.textproto +13 -0
  66. package/build/docker/Dockerfile +20 -0
  67. package/build/docker/docker-compose.yml +10 -0
  68. package/build/gendeps.py +18 -15
  69. package/build/shaka-lab.yaml +161 -0
  70. package/build/shakaBuildHelpers.py +4 -29
  71. package/build/test.py +94 -29
  72. package/build/types/core +0 -1
  73. package/build/types/polyfill +1 -3
  74. package/build/wrapper.template.js +2 -2
  75. package/demo/TengwarTelcontar.woff2 +0 -0
  76. package/demo/asset_card.js +1 -2
  77. package/demo/cast_receiver/index.html +1 -1
  78. package/demo/cast_receiver/receiver_app.css +14 -14
  79. package/demo/common/asset.js +17 -1
  80. package/demo/common/assets.js +31 -0
  81. package/demo/common/message_ids.js +6 -3
  82. package/demo/config.js +10 -12
  83. package/demo/custom.js +39 -1
  84. package/demo/customWarning.txt +2 -2
  85. package/demo/demo.less +29 -18
  86. package/demo/demo_uncompiled.js +1 -13
  87. package/demo/demo_utils.js +0 -1
  88. package/demo/index.html +1 -1
  89. package/demo/locales/en.json +6 -3
  90. package/demo/locales/source.json +22 -10
  91. package/demo/main.js +12 -9
  92. package/demo/search.js +2 -1
  93. package/dist/controls.css +3 -3
  94. package/dist/controls.css.map +1 -1
  95. package/dist/demo.compiled.debug.js +236 -232
  96. package/dist/demo.compiled.debug.map +4 -4
  97. package/dist/demo.compiled.js +236 -232
  98. package/dist/demo.compiled.map +4 -4
  99. package/dist/demo.css +1 -1
  100. package/dist/demo.css.map +1 -1
  101. package/dist/deps.js +229 -226
  102. package/dist/locales.js +34 -32
  103. package/dist/receiver.compiled.debug.js +75 -73
  104. package/dist/receiver.compiled.debug.map +4 -4
  105. package/dist/receiver.compiled.js +75 -73
  106. package/dist/receiver.compiled.map +4 -4
  107. package/dist/shaka-player.compiled.d.ts +321 -314
  108. package/dist/shaka-player.compiled.debug.d.ts +321 -314
  109. package/dist/shaka-player.compiled.debug.externs.js +140 -129
  110. package/dist/shaka-player.compiled.debug.js +527 -592
  111. package/dist/shaka-player.compiled.debug.map +4 -4
  112. package/dist/shaka-player.compiled.externs.js +140 -129
  113. package/dist/shaka-player.compiled.js +836 -860
  114. package/dist/shaka-player.compiled.map +4 -4
  115. package/dist/shaka-player.ui.d.ts +367 -358
  116. package/dist/shaka-player.ui.debug.d.ts +367 -358
  117. package/dist/shaka-player.ui.debug.externs.js +148 -129
  118. package/dist/shaka-player.ui.debug.js +586 -649
  119. package/dist/shaka-player.ui.debug.map +4 -4
  120. package/dist/shaka-player.ui.externs.js +148 -129
  121. package/dist/shaka-player.ui.js +1008 -1028
  122. package/dist/shaka-player.ui.map +4 -4
  123. package/docs/design/REDESIGN.md +33 -33
  124. package/docs/design/bg-fetch.md +2 -2
  125. package/docs/design/codec_preferences.md +1 -1
  126. package/docs/design/dash-audio-channels.md +3 -3
  127. package/docs/design/dash-manifests.md +1 -1
  128. package/docs/design/gap-jumping.md +3 -3
  129. package/docs/design/preload.md +2 -2
  130. package/docs/tutorials/config.md +0 -2
  131. package/docs/tutorials/drm-config.md +5 -0
  132. package/docs/tutorials/fairplay.md +7 -22
  133. package/docs/tutorials/faq.md +8 -19
  134. package/docs/tutorials/index.json +3 -8
  135. package/docs/tutorials/plugins.md +4 -6
  136. package/docs/tutorials/selenium-grid-config.md +122 -0
  137. package/docs/tutorials/upgrade.md +83 -11
  138. package/docs/tutorials/welcome.md +10 -2
  139. package/externs/cmcd.js +1 -1
  140. package/externs/polyfill.js +15 -0
  141. package/externs/shaka/manifest.js +5 -1
  142. package/externs/shaka/net.js +12 -0
  143. package/externs/shaka/offline.js +5 -1
  144. package/externs/shaka/player.js +39 -32
  145. package/externs/shaka/text.js +12 -12
  146. package/externs/sourcebuffer.js +15 -0
  147. package/karma.conf.js +137 -30
  148. package/lib/abr/simple_abr_manager.js +12 -6
  149. package/lib/ads/client_side_ad.js +13 -2
  150. package/lib/ads/client_side_ad_manager.js +22 -4
  151. package/lib/cast/cast_proxy.js +3 -4
  152. package/lib/cast/cast_utils.js +0 -1
  153. package/lib/cea/cea608_data_channel.js +2 -2
  154. package/lib/cea/cea708_service.js +5 -4
  155. package/lib/cea/mp4_cea_parser.js +11 -5
  156. package/lib/cea/sei_processor.js +6 -3
  157. package/lib/dash/content_protection.js +85 -5
  158. package/lib/dash/dash_parser.js +10 -12
  159. package/lib/dash/mpd_utils.js +4 -5
  160. package/lib/dash/segment_list.js +1 -2
  161. package/lib/dash/segment_template.js +3 -3
  162. package/lib/hls/hls_parser.js +386 -749
  163. package/lib/hls/manifest_text_parser.js +5 -6
  164. package/lib/media/adaptation_set.js +1 -2
  165. package/lib/media/content_workarounds.js +2 -2
  166. package/lib/media/drm_engine.js +105 -55
  167. package/lib/media/gap_jumping_controller.js +10 -45
  168. package/lib/media/media_source_engine.js +90 -17
  169. package/lib/media/mp4_segment_index_parser.js +1 -4
  170. package/lib/media/playhead.js +4 -7
  171. package/lib/media/presentation_timeline.js +19 -10
  172. package/lib/media/segment_index.js +13 -46
  173. package/lib/media/segment_reference.js +47 -1
  174. package/lib/media/streaming_engine.js +35 -17
  175. package/lib/media/time_ranges_utils.js +5 -12
  176. package/lib/media/video_wrapper.js +1 -1
  177. package/lib/net/networking_engine.js +4 -1
  178. package/lib/offline/indexeddb/v1_storage_cell.js +1 -0
  179. package/lib/offline/indexeddb/v2_storage_cell.js +1 -0
  180. package/lib/offline/manifest_converter.js +1 -0
  181. package/lib/offline/storage.js +104 -136
  182. package/lib/player.js +50 -216
  183. package/lib/polyfill/all.js +2 -3
  184. package/lib/polyfill/encryption_scheme.js +1 -1
  185. package/lib/polyfill/media_capabilities.js +15 -9
  186. package/lib/polyfill/mediasource.js +0 -28
  187. package/lib/polyfill/patchedmediakeys_nop.js +2 -0
  188. package/lib/polyfill/patchedmediakeys_webkit.js +2 -0
  189. package/lib/polyfill/symbol.js +46 -0
  190. package/lib/text/cue.js +1 -7
  191. package/lib/text/lrc_text_parser.js +8 -0
  192. package/lib/text/mp4_ttml_parser.js +8 -0
  193. package/lib/text/mp4_vtt_parser.js +8 -0
  194. package/lib/text/sbv_text_parser.js +8 -0
  195. package/lib/text/simple_text_displayer.js +3 -8
  196. package/lib/text/srt_text_parser.js +8 -0
  197. package/lib/text/ssa_text_parser.js +8 -0
  198. package/lib/text/text_engine.js +19 -3
  199. package/lib/text/ttml_text_parser.js +16 -5
  200. package/lib/text/ui_text_displayer.js +2 -8
  201. package/lib/text/vtt_text_parser.js +24 -2
  202. package/lib/text/web_vtt_generator.js +1 -7
  203. package/lib/util/buffer_utils.js +1 -3
  204. package/lib/util/ebml_parser.js +3 -3
  205. package/lib/util/error.js +10 -14
  206. package/lib/util/fairplay_utils.js +109 -0
  207. package/lib/util/functional.js +0 -42
  208. package/lib/util/iterables.js +0 -46
  209. package/lib/util/mime_utils.js +2 -0
  210. package/lib/util/mp4_box_parsers.js +1 -4
  211. package/lib/util/mp4_parser.js +5 -7
  212. package/lib/util/periods.js +10 -11
  213. package/lib/util/platform.js +48 -3
  214. package/lib/util/player_configuration.js +12 -6
  215. package/lib/util/pssh.js +24 -8
  216. package/lib/util/stream_utils.js +96 -25
  217. package/lib/util/string_utils.js +3 -5
  218. package/lib/util/uint8array_utils.js +3 -21
  219. package/lib/util/xml_utils.js +16 -8
  220. package/package.json +61 -36
  221. package/roadmap.md +27 -27
  222. package/shaka-player.uncompiled.js +1 -3
  223. package/test/abr/simple_abr_manager_unit.js +3 -8
  224. package/test/ads/ad_manager_unit.js +0 -6
  225. package/test/cast/cast_proxy_unit.js +0 -8
  226. package/test/cast/cast_receiver_integration.js +1 -18
  227. package/test/cast/cast_receiver_unit.js +1 -9
  228. package/test/cast/cast_sender_unit.js +0 -6
  229. package/test/cast/cast_utils_unit.js +1 -13
  230. package/test/cea/cea608_memory_unit.js +0 -5
  231. package/test/cea/cea708_service_unit.js +0 -7
  232. package/test/cea/cea708_window_unit.js +0 -5
  233. package/test/cea/cea_decoder_unit.js +0 -6
  234. package/test/cea/dtvcc_packet_builder_unit.js +0 -3
  235. package/test/cea/dtvcc_packet_unit.js +0 -5
  236. package/test/cea/mp4_cea_parser_unit.js +0 -4
  237. package/test/dash/dash_parser_content_protection_unit.js +45 -10
  238. package/test/dash/dash_parser_live_unit.js +2 -15
  239. package/test/dash/dash_parser_manifest_unit.js +2 -40
  240. package/test/dash/dash_parser_segment_base_unit.js +1 -8
  241. package/test/dash/dash_parser_segment_list_unit.js +1 -7
  242. package/test/dash/dash_parser_segment_template_unit.js +3 -13
  243. package/test/dash/mpd_utils_unit.js +3 -11
  244. package/test/demo/demo_unit.js +2 -6
  245. package/test/deprecate/enforcer_unit.js +0 -4
  246. package/test/deprecate/version_unit.js +0 -2
  247. package/test/hls/hls_live_unit.js +101 -234
  248. package/test/hls/hls_parser_unit.js +517 -447
  249. package/test/hls/manifest_text_parser_unit.js +0 -10
  250. package/test/media/adaptation_set_criteria_unit.js +3 -7
  251. package/test/media/adaptation_set_unit.js +0 -2
  252. package/test/media/buffering_observer_unit.js +1 -4
  253. package/test/media/closed_caption_parser_unit.js +0 -3
  254. package/test/media/drm_engine_integration.js +2 -15
  255. package/test/media/drm_engine_unit.js +90 -144
  256. package/test/media/manifest_parser_unit.js +0 -4
  257. package/test/media/media_source_engine_integration.js +26 -10
  258. package/test/media/media_source_engine_unit.js +8 -20
  259. package/test/media/mp4_segment_index_parser_unit.js +0 -4
  260. package/test/media/play_rate_controller_unit.js +0 -4
  261. package/test/media/playhead_unit.js +35 -207
  262. package/test/media/presentation_timeline_unit.js +4 -7
  263. package/test/media/quality_observer_unit.js +0 -4
  264. package/test/media/region_observer_unit.js +1 -6
  265. package/test/media/region_timeline_unit.js +0 -3
  266. package/test/media/segment_index_unit.js +15 -31
  267. package/test/media/segment_reference_unit.js +0 -3
  268. package/test/media/stall_detector_unit.js +0 -5
  269. package/test/media/streaming_engine_integration.js +13 -75
  270. package/test/media/streaming_engine_unit.js +14 -37
  271. package/test/media/time_ranges_utils_unit.js +0 -7
  272. package/test/media/transmuxer_integration.js +0 -6
  273. package/test/media/webm_segment_index_parser_unit.js +0 -4
  274. package/test/net/data_uri_plugin_unit.js +0 -7
  275. package/test/net/http_plugin_unit.js +0 -9
  276. package/test/net/networking_engine_unit.js +0 -11
  277. package/test/offline/download_progress_estimator_unit.js +0 -2
  278. package/test/offline/indexeddb_storage_unit.js +0 -6
  279. package/test/offline/manifest_convert_unit.js +34 -12
  280. package/test/offline/offline_integration.js +1 -10
  281. package/test/offline/offline_manifest_parser_unit.js +1 -6
  282. package/test/offline/offline_scheme_unit.js +0 -8
  283. package/test/offline/offline_uri_unit.js +0 -2
  284. package/test/offline/storage_compatibility_unit.js +1 -14
  285. package/test/offline/storage_integration.js +6 -31
  286. package/test/player_external.js +1 -15
  287. package/test/player_integration.js +38 -28
  288. package/test/player_load_graph_integration.js +1 -6
  289. package/test/player_src_equals_external.js +3 -9
  290. package/test/player_src_equals_integration.js +0 -7
  291. package/test/player_unit.js +78 -37
  292. package/test/routing/walker_unit.js +0 -8
  293. package/test/test/assets/large_file.mpd +1 -1
  294. package/test/test/boot.js +75 -22
  295. package/test/test/externs/jasmine.js +2 -2
  296. package/test/test/externs/karma.js +4 -0
  297. package/test/test/namespace.js +10 -0
  298. package/test/test/util/canned_idb.js +0 -8
  299. package/test/test/util/cea_utils.js +0 -6
  300. package/test/test/util/dash_parser_util.js +0 -13
  301. package/test/test/util/fake_ad.js +0 -3
  302. package/test/test/util/fake_ad_manager.js +0 -9
  303. package/test/test/util/fake_demo_main.js +0 -5
  304. package/test/test/util/fake_drm_engine.js +0 -6
  305. package/test/test/util/fake_media_source_engine.js +11 -11
  306. package/test/test/util/fake_networking_engine.js +0 -5
  307. package/test/test/util/fake_text_displayer.js +0 -5
  308. package/test/test/util/indexeddb_utils.js +1 -10
  309. package/test/test/util/jasmine_fetch.js +0 -1
  310. package/test/test/util/loader.js +0 -18
  311. package/test/test/util/manifest_generator.js +12 -15
  312. package/test/test/util/manifest_parser_util.js +4 -7
  313. package/test/test/util/offline_utils.js +1 -5
  314. package/test/test/util/simple_fakes.js +9 -26
  315. package/test/test/util/stream_generator.js +0 -14
  316. package/test/test/util/streaming_engine_util.js +1 -15
  317. package/test/test/util/test_scheme.js +25 -20
  318. package/test/test/util/ttml_utils.js +0 -2
  319. package/test/test/util/ui_utils.js +0 -9
  320. package/test/test/util/util.js +9 -23
  321. package/test/test/util/waiter.js +84 -43
  322. package/test/text/cue_integration.js +2 -6
  323. package/test/text/lrc_text_parser_unit.js +6 -11
  324. package/test/text/mp4_ttml_parser_unit.js +6 -10
  325. package/test/text/mp4_vtt_parser_unit.js +7 -12
  326. package/test/text/sbv_text_parser_unit.js +5 -10
  327. package/test/text/simple_text_displayer_unit.js +1 -8
  328. package/test/text/srt_text_parser_unit.js +5 -10
  329. package/test/text/ssa_text_parser_unit.js +17 -34
  330. package/test/text/text_engine_unit.js +47 -12
  331. package/test/text/text_track_integration.js +0 -2
  332. package/test/text/ttml_text_parser_unit.js +79 -88
  333. package/test/text/ui_text_displayer_unit.js +44 -41
  334. package/test/text/vtt_text_parser_unit.js +55 -66
  335. package/test/text/web_vtt_generator_unit.js +0 -3
  336. package/test/ui/ad_ui_unit.js +0 -11
  337. package/test/ui/localization_unit.js +0 -3
  338. package/test/ui/text_displayer_layout_unit.js +1 -12
  339. package/test/ui/ui_customization_unit.js +0 -6
  340. package/test/ui/ui_integration.js +0 -32
  341. package/test/ui/ui_unit.js +28 -17
  342. package/test/util/abortable_operation_unit.js +4 -9
  343. package/test/util/array_utils_unit.js +0 -2
  344. package/test/util/buffer_utils_unit.js +0 -2
  345. package/test/util/cmcd_manager_unit.js +3 -3
  346. package/test/util/data_view_reader_unit.js +0 -4
  347. package/test/util/ebml_parser_unit.js +0 -4
  348. package/test/util/event_manager_unit.js +0 -3
  349. package/test/util/fake_event_target_unit.js +0 -5
  350. package/test/util/iterables_unit.js +0 -64
  351. package/test/util/language_utils_unit.js +0 -3
  352. package/test/util/manifest_parser_utils_unit.js +0 -2
  353. package/test/util/mp4_box_parsers_unit.js +0 -5
  354. package/test/util/mp4_parser_unit.js +0 -4
  355. package/test/util/multi_map_unit.js +0 -3
  356. package/test/util/object_utils_unit.js +0 -2
  357. package/test/util/periods_unit.js +14 -7
  358. package/test/util/pssh_unit.js +0 -5
  359. package/test/util/state_history_unit.js +0 -2
  360. package/test/util/stream_utils_unit.js +26 -15
  361. package/test/util/string_utils_unit.js +0 -6
  362. package/test/util/text_parser_unit.js +0 -2
  363. package/test/util/xml_utils_unit.js +0 -4
  364. package/ui/controls.js +65 -40
  365. package/ui/fullscreen_button.js +26 -6
  366. package/ui/less/ad_controls.less +6 -6
  367. package/ui/less/buttons.less +6 -6
  368. package/ui/less/containers.less +10 -12
  369. package/ui/less/overflow_menu.less +4 -4
  370. package/ui/less/range_elements.less +7 -2
  371. package/ui/less/tooltip.less +4 -4
  372. package/ui/locales/en.json +1 -0
  373. package/ui/locales/sjn-translations.yaml +257 -0
  374. package/ui/locales/sjn.json +42 -0
  375. package/ui/locales/source.json +5 -0
  376. package/ui/resolution_selection.js +31 -33
  377. package/ui/seek_bar.js +2 -1
  378. package/ui/ui.js +0 -17
  379. package/.github/workflows/build_and_test.yaml +0 -73
  380. package/.github/workflows/release.yaml +0 -53
  381. package/docs/tutorials/upgrade-v2-5.md +0 -441
  382. package/docs/tutorials/upgrade-v3.md +0 -38
  383. package/externs/svgelement.js +0 -18
  384. package/externs/webcrypto.js +0 -18
  385. package/lib/polyfill/mathround.js +0 -49
  386. package/lib/polyfill/patchedmediakeys_apple.js +0 -744
  387. package/lib/polyfill/patchedmediakeys_ms.js +0 -698
  388. package/lib/util/mutex.js +0 -52
  389. package/test/util/functional_unit.js +0 -82
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": "4.0.0",
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
@@ -9,50 +9,50 @@ The goals of future milestones are fluid until we begin that development cycle,
9
9
  so the exact milestone for future features is not pre-determined.
10
10
 
11
11
  Priority features up next:
12
- - Support containerless formats
13
- https://github.com/google/shaka-player/issues/2337
14
12
  - Preload API
15
- https://github.com/google/shaka-player/issues/880
16
- - Codec-switching and order preference
17
- https://github.com/google/shaka-player/issues/1528
18
- https://github.com/google/shaka-player/issues/2179
13
+ https://github.com/shaka-project/shaka-player/issues/880
19
14
 
20
15
  Candidate features for future release cycles:
21
- - HLS interstitial support
22
- https://github.com/google/shaka-player/issues/3364
16
+ - Official TypeScript defs, generated from source
17
+ https://github.com/shaka-project/shaka-player/issues/1030
18
+ - Codec-switching
19
+ https://github.com/shaka-project/shaka-player/issues/1528
20
+ - Background fetch for offline storage
21
+ https://github.com/shaka-project/shaka-player/issues/879
23
22
  - Support ID3 tags in mp4
24
- https://github.com/google/shaka-player/issues/3351
25
- - MSE support for FairPlay
26
- https://github.com/google/shaka-player/issues/3346
23
+ https://github.com/shaka-project/shaka-player/issues/3351
27
24
  - Smaller, more modular binary
28
- - Official TypeScript defs, generated from source
29
- https://github.com/google/shaka-player/issues/1030
30
- - Shaka Analytics Component and an integration with BigQuery Analytics
31
- https://github.com/google/shaka-player/issues/3359
32
- - Integration with Google Video ML/Cloud AI
33
25
 
34
- v3.3 - 2021 Q3 or Q4
35
- - Background fetch for offline storage
36
- https://github.com/google/shaka-player/issues/879
37
- - HLS performance improvements
38
- https://github.com/google/shaka-player/issues/3363
26
+ v3.4 - 2022 Q1 or Q2
27
+ - MSE support for FairPlay
28
+ https://github.com/shaka-project/shaka-player/issues/3346
29
+ - Support containerless formats
30
+ https://github.com/shaka-project/shaka-player/issues/2337
39
31
 
40
32
  =====
41
33
 
34
+ v3.3 - 2022 Q1
35
+ - Common Media Client Data (CMCD) logging support
36
+ https://github.com/shaka-project/shaka-player/issues/3619
37
+ - Non-linear IMA CS ads
38
+ https://github.com/shaka-project/shaka-player/pull/3639
39
+
42
40
  v3.2 - 2021 Q3
43
41
  - MediaCapabilities to make performance-based decisions
44
- https://github.com/google/shaka-player/issues/1391
42
+ https://github.com/shaka-project/shaka-player/issues/1391
45
43
  - Configurable key-system priority
46
- https://github.com/google/shaka-player/issues/3002
44
+ https://github.com/shaka-project/shaka-player/issues/3002
45
+ - Codec order preferences
46
+ https://github.com/shaka-project/shaka-player/issues/2179
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
@@ -35,16 +35,14 @@ goog.require('shaka.offline.indexeddb.StorageMechanism');
35
35
  goog.require('shaka.polyfill.Aria');
36
36
  goog.require('shaka.polyfill.EncryptionScheme');
37
37
  goog.require('shaka.polyfill.Fullscreen');
38
- goog.require('shaka.polyfill.MathRound');
39
38
  goog.require('shaka.polyfill.MediaSource');
40
39
  goog.require('shaka.polyfill.MediaCapabilities');
41
40
  goog.require('shaka.polyfill.Orientation');
42
- goog.require('shaka.polyfill.PatchedMediaKeysApple');
43
- goog.require('shaka.polyfill.PatchedMediaKeysMs');
44
41
  goog.require('shaka.polyfill.PatchedMediaKeysNop');
45
42
  goog.require('shaka.polyfill.PatchedMediaKeysWebkit');
46
43
  goog.require('shaka.polyfill.PiPWebkit');
47
44
  goog.require('shaka.polyfill.RandomUUID');
45
+ goog.require('shaka.polyfill.Symbol');
48
46
  goog.require('shaka.polyfill.VTTCue');
49
47
  goog.require('shaka.polyfill.VideoPlayPromise');
50
48
  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;
@@ -4,22 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.Player');
8
- goog.require('shaka.cast.CastReceiver');
9
- goog.require('shaka.cast.CastUtils');
10
- goog.require('shaka.log');
11
- goog.require('shaka.media.DrmEngine');
12
- goog.require('shaka.media.ManifestParser');
13
- goog.require('shaka.media.StreamingEngine');
14
- goog.require('shaka.net.NetworkingEngine');
15
- goog.require('shaka.test.TestScheme');
16
- goog.require('shaka.test.UiUtils');
17
- goog.require('shaka.util.EventManager');
18
- goog.require('shaka.util.Functional');
19
- goog.require('shaka.util.Iterables');
20
- goog.require('shaka.util.Platform');
21
- goog.require('shaka.util.PublicPromise');
22
-
23
7
  // The receiver is only meant to run on the Chromecast, so we have the
24
8
  // ability to use modern APIs there that may not be available on all of the
25
9
  // browsers our library supports. Because of this, CastReceiver tests will
@@ -198,8 +182,7 @@ filterDescribe('CastReceiver', castReceiverIntegrationSupport, () => {
198
182
  // the average length is expected to be lower than the length of the first
199
183
  // update message.
200
184
  let totalLength = 0;
201
- for (const _ of shaka.util.Iterables.range(50)) {
202
- shaka.util.Functional.ignored(_);
185
+ for (let i = 0; i < 50; i++) {
203
186
  // eslint-disable-next-line no-await-in-loop
204
187
  const message = await waitForUpdateMessage();
205
188
  totalLength += message.length;
@@ -4,14 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.cast.CastReceiver');
8
- goog.require('shaka.cast.CastUtils');
9
- goog.require('shaka.test.FakeVideo');
10
- goog.require('shaka.test.Util');
11
- goog.require('shaka.util.Error');
12
- goog.require('shaka.util.Platform');
13
- goog.require('shaka.util.PublicPromise');
14
-
15
7
  // The receiver is only meant to run on the Chromecast, so we have the
16
8
  // ability to use modern APIs there that may not be available on all of the
17
9
  // browsers our library supports. Because of this, CastReceiver tests will
@@ -756,7 +748,7 @@ filterDescribe('CastReceiver', castReceiverSupport, () => {
756
748
  expect(mockGenericMessageBus.broadcast).toHaveBeenCalledTimes(1);
757
749
 
758
750
  // This covers the lack of scrubber in the Google Home app, as described
759
- // in https://github.com/google/shaka-player/issues/2606
751
+ // in https://github.com/shaka-project/shaka-player/issues/2606
760
752
  expectMediaInfo('URI A', 1);
761
753
  });
762
754
 
@@ -4,12 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.cast.CastSender');
8
- goog.require('shaka.cast.CastUtils');
9
- goog.require('shaka.test.StatusPromise');
10
- goog.require('shaka.test.Util');
11
- goog.require('shaka.util.Error');
12
-
13
7
  describe('CastSender', () => {
14
8
  const CastSender = shaka.cast.CastSender;
15
9
  const CastUtils = shaka.cast.CastUtils;
@@ -4,19 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.Player');
8
- goog.require('shaka.cast.CastUtils');
9
- goog.require('shaka.media.MediaSourceEngine');
10
- goog.require('shaka.media.TimeRangesUtils');
11
- goog.require('shaka.test.FakeClosedCaptionParser');
12
- goog.require('shaka.test.FakeTextDisplayer');
13
- goog.require('shaka.test.UiUtils');
14
- goog.require('shaka.test.Util');
15
- goog.require('shaka.util.EventManager');
16
- goog.require('shaka.util.FakeEvent');
17
- goog.require('shaka.util.FakeEventTarget');
18
- goog.require('shaka.util.ManifestParserUtils');
19
-
20
7
  describe('CastUtils', () => {
21
8
  const CastUtils = shaka.cast.CastUtils;
22
9
  const FakeEvent = shaka.util.FakeEvent;
@@ -202,6 +189,7 @@ describe('CastUtils', () => {
202
189
  const fakeVideoStream = {
203
190
  mimeType: 'video/mp4',
204
191
  codecs: 'avc1.42c01e',
192
+ drmInfos: [],
205
193
  };
206
194
  const initSegmentUrl = '/base/test/test/assets/sintel-video-init.mp4';
207
195
  const videoSegmentUrl =
@@ -4,11 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.cea.Cea608Memory');
8
- goog.require('shaka.cea.CeaUtils');
9
- goog.require('shaka.test.CeaUtils');
10
- goog.require('shaka.text.Cue');
11
-
12
7
  describe('Cea608Memory', () => {
13
8
  const CeaUtils = shaka.test.CeaUtils;
14
9
 
@@ -4,13 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.cea.Cea708Service');
8
- goog.require('shaka.cea.CeaUtils');
9
- goog.require('shaka.cea.DtvccPacket');
10
- goog.require('shaka.cea.DtvccPacketBuilder');
11
- goog.require('shaka.test.CeaUtils');
12
- goog.require('shaka.text.Cue');
13
-
14
7
  describe('Cea708Service', () => {
15
8
  const CeaUtils = shaka.test.CeaUtils;
16
9
 
@@ -4,11 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.cea.Cea708Window');
8
- goog.require('shaka.cea.CeaUtils');
9
- goog.require('shaka.test.CeaUtils');
10
- goog.require('shaka.text.Cue');
11
-
12
7
  describe('Cea708Window', () => {
13
8
  const CeaUtils = shaka.test.CeaUtils;
14
9
 
@@ -4,12 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.cea.CeaDecoder');
8
- goog.require('shaka.cea.CeaUtils');
9
- goog.require('shaka.log');
10
- goog.require('shaka.test.CeaUtils');
11
- goog.require('shaka.text.Cue');
12
-
13
7
  describe('CeaDecoder', () => {
14
8
  const CeaUtils = shaka.test.CeaUtils;
15
9
 
@@ -4,9 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.cea.DtvccPacket');
8
- goog.require('shaka.cea.DtvccPacketBuilder');
9
-
10
7
  describe('DtvccPacketBuilder', () => {
11
8
  /** @type {!shaka.cea.DtvccPacketBuilder} */
12
9
  let dtvccPacketBuilder;
@@ -4,11 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.cea.DtvccPacket');
8
- goog.require('shaka.cea.DtvccPacketBuilder');
9
- goog.require('shaka.test.Util');
10
- goog.require('shaka.util.Error');
11
-
12
7
  describe('DtvccPacket', () => {
13
8
  /** @type {!shaka.cea.DtvccPacket} */
14
9
  let dtvccPacket;
@@ -4,10 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.cea.Mp4CeaParser');
8
- goog.require('shaka.test.Util');
9
- goog.require('shaka.util.Error');
10
-
11
7
  describe('Mp4CeaParser', () => {
12
8
  const ceaInitSegmentUri = '/base/test/test/assets/cea-init.mp4';
13
9
  const ceaSegmentUri = '/base/test/test/assets/cea-segment.mp4';
@@ -4,15 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('shaka.dash.ContentProtection');
8
- goog.require('shaka.dash.DashParser');
9
- goog.require('shaka.test.Dash');
10
- goog.require('shaka.test.FakeNetworkingEngine');
11
- goog.require('shaka.util.Error');
12
- goog.require('shaka.util.Iterables');
13
- goog.require('shaka.util.PlayerConfiguration');
14
- goog.require('shaka.util.Uint8ArrayUtils');
15
-
16
7
  // Test DRM-related parsing.
17
8
  describe('DashParser ContentProtection', () => {
18
9
  const Dash = shaka.test.Dash;
@@ -142,7 +133,7 @@ describe('DashParser ContentProtection', () => {
142
133
 
143
134
  const variants = [];
144
135
  const numVariants = 2;
145
- for (const i of shaka.util.Iterables.range(numVariants)) {
136
+ for (let i = 0; i < numVariants; i++) {
146
137
  const variant = jasmine.objectContaining({
147
138
  video: jasmine.objectContaining({
148
139
  keyIds: new Set(keyIds[i] ? [keyIds[i]] : []),
@@ -814,6 +805,50 @@ describe('DashParser ContentProtection', () => {
814
805
  });
815
806
  });
816
807
 
808
+ describe('getClearKeyLicenseUrl', () => {
809
+ it('valid clearkey:Laurl node', () => {
810
+ const input = {
811
+ init: null,
812
+ keyId: null,
813
+ schemeUri: '',
814
+ node: strToXml([
815
+ '<test xmlns:clearkey="http://dashif.org/guidelines/clearKey">',
816
+ ' <clearkey:Laurl ',
817
+ ' Lic_type="EME-1.0">www.example.com</clearkey:Laurl>',
818
+ '</test>',
819
+ ].join('\n')),
820
+ };
821
+ const actual = ContentProtection.getClearKeyLicenseUrl(input);
822
+ expect(actual).toBe('www.example.com');
823
+ });
824
+
825
+ it('clearkey:Laurl without license url', () => {
826
+ const input = {
827
+ init: null,
828
+ keyId: null,
829
+ schemeUri: '',
830
+ node: strToXml([
831
+ '<test xmlns:clearkey="http://dashif.org/guidelines/clearKey">',
832
+ ' <clearkey:Laurl Lic_type="EME-1.0"></clearkey:Laurl>',
833
+ '</test>',
834
+ ].join('\n')),
835
+ };
836
+ const actual = ContentProtection.getClearKeyLicenseUrl(input);
837
+ expect(actual).toBe('');
838
+ });
839
+
840
+ it('no clearkey:Laurl node', () => {
841
+ const input = {
842
+ init: null,
843
+ keyId: null,
844
+ schemeUri: '',
845
+ node: strToXml('<test></test>'),
846
+ };
847
+ const actual = ContentProtection.getClearKeyLicenseUrl(input);
848
+ expect(actual).toBe('');
849
+ });
850
+ });
851
+
817
852
  describe('getPlayReadyLicenseURL', () => {
818
853
  it('mspro', () => {
819
854
  const laurl = [
@@ -4,19 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('goog.asserts');
8
- goog.require('shaka.dash.DashParser');
9
- goog.require('shaka.media.SegmentReference');
10
- goog.require('shaka.net.NetworkingEngine');
11
- goog.require('shaka.test.FakeNetworkingEngine');
12
- goog.require('shaka.test.ManifestParser');
13
- goog.require('shaka.test.Util');
14
- goog.require('shaka.util.AbortableOperation');
15
- goog.require('shaka.util.Error');
16
- goog.require('shaka.util.PlayerConfiguration');
17
- goog.require('shaka.util.StringUtils');
18
- goog.requireType('shaka.util.PublicPromise');
19
-
20
7
  describe('DashParser Live', () => {
21
8
  const Util = shaka.test.Util;
22
9
  const ManifestParser = shaka.test.ManifestParser;
@@ -1228,8 +1215,8 @@ describe('DashParser Live', () => {
1228
1215
  const liveEdge =
1229
1216
  manifest.presentationTimeline.getSegmentAvailabilityEnd();
1230
1217
 
1231
- // In https://github.com/google/shaka-player/issues/1204, a get on the
1232
- // final segment failed an assertion and returned endTime == 0.
1218
+ // In https://github.com/shaka-project/shaka-player/issues/1204, a get on
1219
+ // the final segment failed an assertion and returned endTime == 0.
1233
1220
  // Find the last segment by looking just before the live edge. Looking
1234
1221
  // right on the live edge creates test flake, and the segments are 2
1235
1222
  // seconds in duration.
@@ -4,21 +4,6 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- goog.require('goog.asserts');
8
- goog.require('shaka.media.SegmentReference');
9
- goog.require('shaka.net.NetworkingEngine');
10
- goog.require('shaka.test.Dash');
11
- goog.require('shaka.test.FakeNetworkingEngine');
12
- goog.require('shaka.test.ManifestGenerator');
13
- goog.require('shaka.test.Util');
14
- goog.require('shaka.util.AbortableOperation');
15
- goog.require('shaka.util.Error');
16
- goog.require('shaka.util.LanguageUtils');
17
- goog.require('shaka.util.ManifestParserUtils');
18
- goog.require('shaka.util.PlayerConfiguration');
19
- goog.require('shaka.util.StringUtils');
20
- goog.requireType('shaka.dash.DashParser');
21
-
22
7
  // Test basic manifest parsing functionality.
23
8
  describe('DashParser Manifest', () => {
24
9
  const ContentType = shaka.util.ManifestParserUtils.ContentType;
@@ -462,30 +447,6 @@ describe('DashParser Manifest', () => {
462
447
  expect(stream.closedCaptions).toEqual(expectedClosedCaptions);
463
448
  });
464
449
 
465
- it('Detects E-AC3 JOC content by SupplementalProperty', async () => {
466
- const idUri = 'tag:dolby.com,2018:dash:EC3_ExtensionType:2018';
467
- const source = [
468
- '<MPD>',
469
- ' <Period duration="PT30M">',
470
- ' <AdaptationSet mimeType="audio/mp4" lang="\u2603">',
471
- ' <Representation bandwidth="500">',
472
- ' <SupplementalProperty schemeIdUri="' + idUri + '" value="JOC"/>',
473
- ' <BaseURL>http://example.com</BaseURL>',
474
- ' <SegmentTemplate media="2.mp4" duration="1" />',
475
- ' </Representation>',
476
- ' </AdaptationSet>',
477
- ' </Period>',
478
- '</MPD>',
479
- ].join('\n');
480
-
481
- fakeNetEngine.setResponseText('dummy://foo', source);
482
-
483
- /** @type {shaka.extern.Manifest} */
484
- const manifest = await parser.start('dummy://foo', playerInterface);
485
- const stream = manifest.variants[0].audio;
486
- expect(stream.mimeType).toBe('audio/eac3-joc');
487
- });
488
-
489
450
  it('Detects spatial audio', async () => {
490
451
  const idUri = 'tag:dolby.com,2018:dash:EC3_ExtensionType:2018';
491
452
  const source = [
@@ -1277,7 +1238,8 @@ describe('DashParser Manifest', () => {
1277
1238
  });
1278
1239
 
1279
1240
  it('handles bandwidth of 0 or missing', async () => {
1280
- // Regression test for https://github.com/google/shaka-player/issues/938
1241
+ // Regression test for
1242
+ // https://github.com/shaka-project/shaka-player/issues/938
1281
1243
  const source = [
1282
1244
  '<MPD minBufferTime="PT75S">',
1283
1245
  ' <Period id="1" duration="PT30S">',