shaka-player 4.3.9 → 4.4.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 (321) hide show
  1. package/.github/workflows/build-and-test.yaml +11 -18
  2. package/.github/workflows/compute-incremental-coverage.py +3 -0
  3. package/.github/workflows/release-please.yaml +7 -0
  4. package/.github/workflows/selenium-lab-tests.yaml +45 -10
  5. package/AUTHORS +9 -0
  6. package/CHANGELOG.md +295 -190
  7. package/CONTRIBUTORS +8 -0
  8. package/LICENSE +32 -0
  9. package/README.md +63 -10
  10. package/demo/autoTemplate.txt +40 -5
  11. package/demo/close_button.js +11 -0
  12. package/demo/common/asset.js +13 -1
  13. package/demo/common/assets.js +112 -28
  14. package/demo/common/message_ids.js +25 -1
  15. package/demo/config.js +69 -10
  16. package/demo/customWarning.txt +2 -2
  17. package/demo/index.html +3 -1
  18. package/demo/locales/en.json +26 -2
  19. package/demo/locales/source.json +105 -9
  20. package/demo/main.js +57 -9
  21. package/demo/search.js +3 -1
  22. package/demo/service_worker.js +3 -0
  23. package/dist/controls.css +1 -1
  24. package/dist/controls.css.map +1 -1
  25. package/dist/demo.compiled.debug.js +132 -118
  26. package/dist/demo.compiled.debug.map +3 -3
  27. package/dist/demo.compiled.js +132 -118
  28. package/dist/demo.compiled.map +3 -3
  29. package/dist/deps.js +46 -28
  30. package/dist/locales.js +31 -31
  31. package/dist/receiver.compiled.debug.js +60 -52
  32. package/dist/receiver.compiled.debug.map +3 -3
  33. package/dist/receiver.compiled.js +60 -52
  34. package/dist/receiver.compiled.map +3 -3
  35. package/dist/shaka-player.compiled.d.ts +676 -391
  36. package/dist/shaka-player.compiled.debug.d.ts +676 -391
  37. package/dist/shaka-player.compiled.debug.externs.js +1188 -616
  38. package/dist/shaka-player.compiled.debug.js +1046 -700
  39. package/dist/shaka-player.compiled.debug.map +4 -4
  40. package/dist/shaka-player.compiled.externs.js +1188 -616
  41. package/dist/shaka-player.compiled.js +1094 -933
  42. package/dist/shaka-player.compiled.map +4 -4
  43. package/dist/shaka-player.ui.d.ts +677 -392
  44. package/dist/shaka-player.ui.debug.d.ts +677 -392
  45. package/dist/shaka-player.ui.debug.externs.js +1023 -451
  46. package/dist/shaka-player.ui.debug.js +1101 -738
  47. package/dist/shaka-player.ui.debug.map +4 -4
  48. package/dist/shaka-player.ui.externs.js +1023 -451
  49. package/dist/shaka-player.ui.js +1244 -1071
  50. package/dist/shaka-player.ui.map +4 -4
  51. package/docs/tutorials/ad_monetization.md +15 -1
  52. package/docs/tutorials/application-level-redirects.md +1 -1
  53. package/docs/tutorials/config.md +9 -5
  54. package/docs/tutorials/drm-config.md +61 -0
  55. package/docs/tutorials/fairplay.md +19 -4
  56. package/docs/tutorials/license-server-auth.md +4 -4
  57. package/docs/tutorials/license-wrapping.md +2 -2
  58. package/docs/tutorials/ui-customization.md +7 -3
  59. package/docs/tutorials/ui.md +7 -7
  60. package/docs/tutorials/upgrade.md +3 -0
  61. package/externs/ima.js +123 -2
  62. package/externs/isoboxer.js +217 -0
  63. package/externs/mediakeys.js +18 -0
  64. package/externs/mux.js +1 -105
  65. package/externs/pictureinpicture.js +48 -0
  66. package/externs/shaka/ads.js +61 -1
  67. package/externs/shaka/cea.js +110 -0
  68. package/externs/shaka/codecs.js +32 -0
  69. package/externs/shaka/manifest.js +101 -1
  70. package/externs/shaka/manifest_parser.js +0 -10
  71. package/externs/shaka/net.js +36 -7
  72. package/externs/shaka/offline.js +8 -1
  73. package/externs/shaka/player.js +220 -21
  74. package/externs/shaka/text.js +1 -382
  75. package/externs/shaka/transmuxer.js +59 -0
  76. package/karma.conf.js +15 -0
  77. package/lib/abr/simple_abr_manager.js +6 -3
  78. package/lib/ads/ad_manager.js +60 -2
  79. package/lib/ads/client_side_ad.js +86 -0
  80. package/lib/ads/client_side_ad_manager.js +93 -5
  81. package/lib/ads/server_side_ad.js +86 -0
  82. package/lib/ads/server_side_ad_manager.js +13 -0
  83. package/lib/cast/cast_utils.js +1 -0
  84. package/lib/cea/cea608_data_channel.js +24 -14
  85. package/lib/cea/cea608_memory.js +5 -2
  86. package/lib/cea/cea708_service.js +8 -9
  87. package/lib/cea/cea708_window.js +1 -2
  88. package/lib/cea/cea_decoder.js +23 -6
  89. package/lib/cea/cea_utils.js +25 -2
  90. package/lib/cea/dummy_caption_decoder.js +21 -0
  91. package/lib/cea/dummy_cea_parser.js +1 -3
  92. package/lib/cea/mp4_cea_parser.js +15 -10
  93. package/lib/cea/ts_cea_parser.js +69 -0
  94. package/lib/dash/content_protection.js +32 -2
  95. package/lib/dash/dash_parser.js +93 -31
  96. package/lib/dash/mpd_utils.js +6 -25
  97. package/lib/dash/segment_base.js +12 -14
  98. package/lib/dash/segment_list.js +10 -6
  99. package/lib/dash/segment_template.js +349 -32
  100. package/lib/dependencies/all.js +8 -0
  101. package/lib/hls/hls_classes.js +33 -8
  102. package/lib/hls/hls_parser.js +805 -191
  103. package/lib/hls/manifest_text_parser.js +4 -14
  104. package/lib/media/adaptation_set_criteria.js +43 -3
  105. package/lib/media/closed_caption_parser.js +74 -12
  106. package/lib/media/drm_engine.js +189 -49
  107. package/lib/media/gap_jumping_controller.js +1 -1
  108. package/lib/media/manifest_parser.js +34 -0
  109. package/lib/media/media_source_capabilities.js +10 -0
  110. package/lib/media/media_source_engine.js +475 -231
  111. package/lib/media/playhead.js +1 -1
  112. package/lib/media/presentation_timeline.js +62 -0
  113. package/lib/media/segment_index.js +50 -14
  114. package/lib/media/segment_prefetch.js +277 -0
  115. package/lib/media/segment_reference.js +70 -4
  116. package/lib/media/streaming_engine.js +258 -81
  117. package/lib/media/video_wrapper.js +15 -7
  118. package/lib/mss/content_protection.js +353 -0
  119. package/lib/mss/mss_parser.js +1081 -0
  120. package/lib/net/networking_engine.js +60 -10
  121. package/lib/offline/indexeddb/v1_storage_cell.js +1 -0
  122. package/lib/offline/indexeddb/v2_storage_cell.js +1 -0
  123. package/lib/offline/manifest_converter.js +6 -0
  124. package/lib/offline/storage.js +2 -4
  125. package/lib/player.js +309 -105
  126. package/lib/polyfill/media_capabilities.js +43 -3
  127. package/lib/polyfill/patchedmediakeys_apple.js +5 -0
  128. package/lib/polyfill/patchedmediakeys_nop.js +5 -0
  129. package/lib/polyfill/patchedmediakeys_webkit.js +5 -0
  130. package/lib/text/cue.js +208 -130
  131. package/lib/text/lrc_text_parser.js +2 -2
  132. package/lib/text/mp4_vtt_parser.js +2 -2
  133. package/lib/text/sbv_text_parser.js +1 -1
  134. package/lib/text/simple_text_displayer.js +2 -1
  135. package/lib/text/srt_text_parser.js +9 -1
  136. package/lib/text/ssa_text_parser.js +2 -2
  137. package/lib/text/text_engine.js +3 -21
  138. package/lib/text/text_utils.js +71 -20
  139. package/lib/text/ui_text_displayer.js +14 -14
  140. package/lib/text/vtt_text_parser.js +22 -14
  141. package/lib/transmuxer/aac_transmuxer.js +224 -0
  142. package/lib/transmuxer/ac3.js +142 -0
  143. package/lib/transmuxer/ac3_transmuxer.js +212 -0
  144. package/lib/transmuxer/adts.js +232 -0
  145. package/lib/transmuxer/ec3.js +103 -0
  146. package/lib/transmuxer/ec3_transmuxer.js +212 -0
  147. package/lib/transmuxer/h264.js +324 -0
  148. package/lib/transmuxer/mp3_transmuxer.js +204 -0
  149. package/lib/transmuxer/mpeg_audio.js +196 -0
  150. package/lib/transmuxer/mpeg_ts_transmuxer.js +182 -0
  151. package/lib/transmuxer/mss_transmuxer.js +389 -0
  152. package/lib/{media/transmuxer.js → transmuxer/muxjs_transmuxer.js} +34 -80
  153. package/lib/transmuxer/transmuxer_engine.js +161 -0
  154. package/lib/transmuxer/ts_transmuxer.js +738 -0
  155. package/lib/util/cmcd_manager.js +131 -71
  156. package/lib/util/error.js +62 -26
  157. package/lib/util/exp_golomb.js +220 -0
  158. package/lib/util/fairplay_utils.js +64 -13
  159. package/lib/util/id3_utils.js +56 -3
  160. package/lib/util/language_utils.js +11 -8
  161. package/lib/util/manifest_parser_utils.js +3 -0
  162. package/lib/util/mime_utils.js +44 -7
  163. package/lib/util/mp4_box_parsers.js +233 -5
  164. package/lib/util/mp4_generator.js +1381 -0
  165. package/lib/util/periods.js +40 -34
  166. package/lib/util/platform.js +25 -3
  167. package/lib/util/player_configuration.js +38 -1
  168. package/lib/util/stream_utils.js +138 -27
  169. package/lib/util/text_parser.js +1 -1
  170. package/lib/util/ts_parser.js +470 -47
  171. package/lib/util/xml_utils.js +16 -3
  172. package/maintained-branches.md +2 -2
  173. package/package.json +4 -2
  174. package/roadmap.md +21 -6
  175. package/shaka-player.uncompiled.js +18 -0
  176. package/test/abr/simple_abr_manager_unit.js +32 -4
  177. package/test/ads/ad_manager_unit.js +18 -2
  178. package/test/cast/cast_utils_unit.js +7 -2
  179. package/test/cea/cea608_memory_unit.js +24 -0
  180. package/test/cea/cea_decoder_unit.js +33 -0
  181. package/test/dash/dash_parser_content_protection_unit.js +93 -3
  182. package/test/dash/dash_parser_live_unit.js +56 -13
  183. package/test/dash/dash_parser_manifest_unit.js +70 -2
  184. package/test/dash/dash_parser_segment_base_unit.js +14 -9
  185. package/test/dash/dash_parser_segment_template_unit.js +286 -6
  186. package/test/demo/demo_unit.js +5 -1
  187. package/test/hls/hls_live_unit.js +188 -28
  188. package/test/hls/hls_parser_unit.js +250 -109
  189. package/test/hls/manifest_text_parser_unit.js +18 -13
  190. package/test/media/adaptation_set_criteria_unit.js +46 -14
  191. package/test/media/adaptation_set_unit.js +2 -0
  192. package/test/media/drm_engine_integration.js +11 -8
  193. package/test/media/drm_engine_unit.js +220 -7
  194. package/test/media/media_source_engine_integration.js +122 -38
  195. package/test/media/media_source_engine_unit.js +133 -153
  196. package/test/media/playhead_unit.js +3 -0
  197. package/test/media/presentation_timeline_unit.js +51 -0
  198. package/test/media/segment_index_unit.js +52 -0
  199. package/test/media/segment_prefetch_unit.js +243 -0
  200. package/test/media/streaming_engine_integration.js +9 -3
  201. package/test/media/streaming_engine_unit.js +440 -59
  202. package/test/mss/mss_parser_content_protection_unit.js +49 -0
  203. package/test/mss/mss_parser_unit.js +472 -0
  204. package/test/mss/mss_player_integration.js +123 -0
  205. package/test/offline/manifest_convert_unit.js +9 -0
  206. package/test/offline/storage_integration.js +6 -1
  207. package/test/player_integration.js +4 -1
  208. package/test/player_unit.js +386 -133
  209. package/test/polyfill/media_capabilities_unit.js +18 -0
  210. package/test/test/assets/hls-raw-aac/fileSequence0.aac +0 -0
  211. package/test/test/assets/hls-raw-aac/fileSequence1.aac +0 -0
  212. package/test/test/assets/hls-raw-aac/fileSequence2.aac +0 -0
  213. package/test/test/assets/hls-raw-aac/fileSequence3.aac +0 -0
  214. package/test/test/assets/hls-raw-aac/manifest.m3u8 +4 -0
  215. package/test/test/assets/hls-raw-aac/stream.m4a.m3u8 +14 -0
  216. package/test/test/assets/hls-raw-ac3/fileSequence0.ac3 +0 -0
  217. package/test/test/assets/hls-raw-ac3/fileSequence1.ac3 +0 -0
  218. package/test/test/assets/hls-raw-ac3/fileSequence2.ac3 +0 -0
  219. package/test/test/assets/hls-raw-ac3/fileSequence3.ac3 +0 -0
  220. package/test/test/assets/hls-raw-ac3/fileSequence4.ac3 +0 -0
  221. package/test/test/assets/hls-raw-ac3/fileSequence5.ac3 +0 -0
  222. package/test/test/assets/hls-raw-ac3/fileSequence6.ac3 +0 -0
  223. package/test/test/assets/hls-raw-ac3/fileSequence7.ac3 +0 -0
  224. package/test/test/assets/hls-raw-ac3/prog_index.m3u8 +31 -0
  225. package/test/test/assets/hls-raw-ec3/fileSequence0.ec3 +0 -0
  226. package/test/test/assets/hls-raw-ec3/fileSequence1.ec3 +0 -0
  227. package/test/test/assets/hls-raw-ec3/fileSequence2.ec3 +0 -0
  228. package/test/test/assets/hls-raw-ec3/fileSequence3.ec3 +0 -0
  229. package/test/test/assets/hls-raw-ec3/fileSequence4.ec3 +0 -0
  230. package/test/test/assets/hls-raw-ec3/fileSequence5.ec3 +0 -0
  231. package/test/test/assets/hls-raw-ec3/fileSequence6.ec3 +0 -0
  232. package/test/test/assets/hls-raw-ec3/fileSequence7.ec3 +0 -0
  233. package/test/test/assets/hls-raw-ec3/prog_index.m3u8 +31 -0
  234. package/test/test/assets/hls-raw-mp3/chunklist_w905519204.m3u8 +13 -0
  235. package/test/test/assets/hls-raw-mp3/media_w905519204_0.mp3 +0 -0
  236. package/test/test/assets/hls-raw-mp3/media_w905519204_1.mp3 +0 -0
  237. package/test/test/assets/hls-raw-mp3/media_w905519204_2.mp3 +0 -0
  238. package/test/test/assets/hls-raw-mp3/media_w905519204_3.mp3 +0 -0
  239. package/test/test/assets/hls-raw-mp3/playlist.m3u8 +4 -0
  240. package/test/test/assets/hls-ts-aac/playlist.m3u8 +23 -0
  241. package/test/test/assets/hls-ts-aac/segment_0.ts +0 -0
  242. package/test/test/assets/hls-ts-aac/segment_1.ts +0 -0
  243. package/test/test/assets/hls-ts-aac/segment_2.ts +0 -0
  244. package/test/test/assets/hls-ts-aac/segment_3.ts +0 -0
  245. package/test/test/assets/hls-ts-aac/segment_4.ts +0 -0
  246. package/test/test/assets/hls-ts-aac/segment_5.ts +0 -0
  247. package/test/test/assets/hls-ts-aac/segment_6.ts +0 -0
  248. package/test/test/assets/hls-ts-aac/segment_7.ts +0 -0
  249. package/test/test/assets/hls-ts-ac3/ChID_voices_6ch_640kbps_dd_sub_0000.ts +0 -0
  250. package/test/test/assets/hls-ts-ac3/ChID_voices_6ch_640kbps_dd_sub_0001.ts +0 -0
  251. package/test/test/assets/hls-ts-ac3/ChID_voices_6ch_640kbps_dd_sub_0002.ts +0 -0
  252. package/test/test/assets/hls-ts-ac3/ChID_voices_6ch_640kbps_dd_sub_0003.ts +0 -0
  253. package/test/test/assets/hls-ts-ac3/ChID_voices_6ch_640kbps_dd_sub_0004.ts +0 -0
  254. package/test/test/assets/hls-ts-ac3/ChID_voices_6ch_640kbps_dd_sub_0005.ts +0 -0
  255. package/test/test/assets/hls-ts-ac3/prog_index.m3u8 +19 -0
  256. package/test/test/assets/hls-ts-ec3/ChID_voices_6ch_256kbps_ddp_sub_0000.ts +0 -0
  257. package/test/test/assets/hls-ts-ec3/ChID_voices_6ch_256kbps_ddp_sub_0001.ts +0 -0
  258. package/test/test/assets/hls-ts-ec3/ChID_voices_6ch_256kbps_ddp_sub_0002.ts +0 -0
  259. package/test/test/assets/hls-ts-ec3/ChID_voices_6ch_256kbps_ddp_sub_0003.ts +0 -0
  260. package/test/test/assets/hls-ts-ec3/ChID_voices_6ch_256kbps_ddp_sub_0004.ts +0 -0
  261. package/test/test/assets/hls-ts-ec3/ChID_voices_6ch_256kbps_ddp_sub_0005.ts +0 -0
  262. package/test/test/assets/hls-ts-ec3/prog_index.m3u8 +19 -0
  263. package/test/test/assets/hls-ts-h264/fileSequence0.ts +0 -0
  264. package/test/test/assets/hls-ts-h264/fileSequence1.ts +0 -0
  265. package/test/test/assets/hls-ts-h264/fileSequence2.ts +0 -0
  266. package/test/test/assets/hls-ts-h264/fileSequence3.ts +0 -0
  267. package/test/test/assets/hls-ts-h264/fileSequence4.ts +0 -0
  268. package/test/test/assets/hls-ts-h264/fileSequence5.ts +0 -0
  269. package/test/test/assets/hls-ts-h264/prog_index.m3u8 +25 -0
  270. package/test/test/assets/hls-ts-mp3/manifest.m3u8 +13 -0
  271. package/test/test/assets/hls-ts-mp3/media_w239891843_0.ts +0 -0
  272. package/test/test/assets/hls-ts-mp3/media_w239891843_1.ts +0 -0
  273. package/test/test/assets/hls-ts-mp3/media_w239891843_2.ts +0 -0
  274. package/test/test/assets/hls-ts-mp3/media_w239891843_3.ts +0 -0
  275. package/test/test/assets/hls-ts-muxed-aac-h264/chunk.m3u8 +17 -0
  276. package/test/test/assets/hls-ts-muxed-aac-h264/n_0_0_0.ts +0 -0
  277. package/test/test/assets/hls-ts-muxed-aac-h264/n_1_0_0.ts +0 -0
  278. package/test/test/assets/hls-ts-muxed-aac-h264/n_2_0_0.ts +0 -0
  279. package/test/test/assets/hls-ts-muxed-aac-h264/n_3_0_0.ts +0 -0
  280. package/test/test/assets/hls-ts-muxed-aac-h264/n_4_0_0.ts +0 -0
  281. package/test/test/assets/hls-ts-muxed-aac-h264/n_5_0_0.ts +0 -0
  282. package/test/test/assets/hls-ts-muxed-aac-h264/playlist.m3u8 +4 -0
  283. package/test/test/boot.js +7 -2
  284. package/test/test/util/fake_ad.js +99 -0
  285. package/test/test/util/fake_ad_manager.js +7 -1
  286. package/test/test/util/fake_networking_engine.js +41 -14
  287. package/test/test/util/fake_segment_prefetch.js +81 -0
  288. package/test/test/util/manifest_generator.js +19 -5
  289. package/test/test/util/mss_parser_util.js +115 -0
  290. package/test/test/util/offline_utils.js +1 -0
  291. package/test/test/util/simple_fakes.js +12 -3
  292. package/test/test/util/streaming_engine_util.js +14 -4
  293. package/test/test/util/ttml_utils.js +2 -2
  294. package/test/test/util/ui_utils.js +5 -1
  295. package/test/text/cue_integration.js +1 -1
  296. package/test/text/srt_text_parser_unit.js +78 -0
  297. package/test/text/text_engine_unit.js +17 -8
  298. package/test/text/ui_text_displayer_unit.js +4 -4
  299. package/test/text/vtt_text_parser_unit.js +59 -40
  300. package/test/text/web_vtt_generator_unit.js +9 -3
  301. package/test/{media/transmuxer_integration.js → transmuxer/muxjs_transmuxer_integration.js} +30 -33
  302. package/test/transmuxer/transmuxer_engine_integration.js +60 -0
  303. package/test/transmuxer/transmuxer_integration.js +296 -0
  304. package/test/util/cmcd_manager_unit.js +162 -13
  305. package/test/util/language_utils_unit.js +9 -2
  306. package/test/util/mp4_box_parsers_unit.js +39 -4
  307. package/test/util/periods_unit.js +34 -26
  308. package/test/util/stream_utils_unit.js +60 -107
  309. package/ui/controls.js +19 -1
  310. package/ui/controls.less +1 -0
  311. package/ui/externs/ui.js +13 -3
  312. package/ui/language_utils.js +15 -0
  313. package/ui/less/thumbnails.less +26 -0
  314. package/ui/locales/oc.json +42 -0
  315. package/ui/pip_button.js +83 -2
  316. package/ui/range_element.js +15 -0
  317. package/ui/resolution_selection.js +9 -2
  318. package/ui/seek_bar.js +230 -1
  319. package/ui/ui.js +5 -0
  320. package/lib/cea/i_caption_decoder.js +0 -51
  321. package/lib/cea/i_cea_parser.js +0 -68
@@ -21,6 +21,7 @@ shakaDemo.MessageIds = {
21
21
  LIVE: 'DEMO_LIVE',
22
22
  MP2TS: 'DEMO_MP2TS',
23
23
  MP4: 'DEMO_MP4',
24
+ MSS: 'DEMO_MSS',
24
25
  MULTIPLE_LANGUAGES: 'DEMO_MULTIPLE_LANGUAGES',
25
26
  OFFLINE: 'DEMO_OFFLINE',
26
27
  STORED: 'DEMO_STORED',
@@ -32,6 +33,7 @@ shakaDemo.MessageIds = {
32
33
  VOD: 'DEMO_VOD',
33
34
  WEBM: 'DEMO_WEBM',
34
35
  XLINK: 'DEMO_XLINK',
36
+ LOW_LATENCY_STREAM: 'DEMO_LOW_LATENCY_STREAM',
35
37
  /* Key systems. */
36
38
  CLEAR: 'DEMO_CLEAR',
37
39
  CLEAR_KEY: 'DEMO_CLEAR_KEY',
@@ -86,6 +88,7 @@ shakaDemo.MessageIds = {
86
88
  UNSUPPORTED_NO_OFFLINE: 'DEMO_UNSUPPORTED_NO_OFFLINE',
87
89
  UNSUPPORTED_NO_KEY_SUPPORT: 'DEMO_UNSUPPORTED_NO_KEY_SUPPORT',
88
90
  UNSUPPORTED_NO_LICENSE_SUPPORT: 'DEMO_UNSUPPORTED_NO_LICENSE_SUPPORT',
91
+ UNSUPPORTED_NO_MSS_SUPPORT: 'DEMO_UNSUPPORTED_NO_MSS_SUPPORT',
89
92
  /* Visualizer. */
90
93
  VISUALIZER_AUTO_SCREENSHOT_TOGGLE: 'DEMO_VISUALIZER_AUTO_SCREENSHOT_TOGGLE',
91
94
  VISUALIZER_BUTTON: 'DEMO_VISUALIZER_BUTTON',
@@ -150,10 +153,12 @@ shakaDemo.MessageIds = {
150
153
  /* Config panel. */
151
154
  ADAPTATION_RESTRICTIONS_SECTION_HEADER: 'DEMO_ADAPTATION_RESTRICTIONS_SECTION_HEADER',
152
155
  ADAPTATION_SECTION_HEADER: 'DEMO_ADAPTATION_SECTION_HEADER',
156
+ ADS_SECTION_HEADER: 'DEMO_ADS_SECTION_HEADER',
153
157
  ALWAYS_STREAM_TEXT: 'DEMO_ALWAYS_STREAM_TEXT',
154
158
  ALWAYS_STREAM_TEXT_WARNING: 'DEMO_ALWAYS_STREAM_TEXT_WARNING',
155
159
  AUDIO_CHANNEL_COUNT: 'DEMO_AUDIO_CHANNEL_COUNT',
156
160
  AUDIO_LANGUAGE: 'DEMO_AUDIO_LANGUAGE',
161
+ AUDIO_LABEL: 'DEMO_AUDIO_LABEL',
157
162
  AUDIO_ROBUSTNESS: 'DEMO_AUDIO_ROBUSTNESS',
158
163
  AUTO_CORRECT_DASH_DRIFT: 'DEMO_AUTO_CORRECT_DASH_DRIFT',
159
164
  AUTO_LOW_LATENCY: 'DEMO_AUTO_LOW_LATENCY',
@@ -170,10 +175,13 @@ shakaDemo.MessageIds = {
170
175
  BANDWIDTH_UPGRADE: 'DEMO_BANDWIDTH_UPGRADE',
171
176
  BUFFER_BEHIND: 'DEMO_BUFFER_BEHIND',
172
177
  BUFFERING_GOAL: 'DEMO_BUFFERING_GOAL',
178
+ CLEAR_BUFFER_SWITCH: 'DEMO_CLEAR_BUFFER_SWITCH',
173
179
  CLOCK_SYNC_URI: 'DEMO_CLOCK_SYNC_URI',
174
180
  CMCD_SECTION_HEADER: 'DEMO_CMCD_SECTION_HEADER',
175
181
  CONNECTION_TIMEOUT: 'DEMO_CONNECTION_TIMEOUT',
176
182
  CONTENT_ID: 'DEMO_CONTENT_ID',
183
+ CUSTOM_PLAYHEAD_TRACKER: 'DEMO_CUSTOM_PLAYHEAD_TRACKER',
184
+ DASH_SEQUENCE_MODE: 'DEMO_DASH_SEQUENCE_MODE',
177
185
  DEFAULT_AUDIO_CODEC: 'DEMO_DEFAULT_AUDIO_CODEC',
178
186
  DEFAULT_PRESENTATION_DELAY: 'DEMO_DEFAULT_PRESENTATION_DELAY',
179
187
  DEFAULT_VIDEO_CODEC: 'DEMO_DEFAULT_VIDEO_CODEC',
@@ -193,8 +201,17 @@ shakaDemo.MessageIds = {
193
201
  FAST_HALF_LIFE: 'DEMO_FAST_HALF_LIFE',
194
202
  FORCE_HTTPS: 'DEMO_FORCE_HTTPS',
195
203
  FORCE_TRANSMUX: 'DEMO_FORCE_TRANSMUX',
204
+ INSERT_FAKE_ENCRYPTION_IN_INIT: 'DEMO_INSERT_FAKE_ENCRYPTION_IN_INIT',
196
205
  FUZZ_FACTOR: 'DEMO_FUZZ_FACTOR',
197
206
  GAP_DETECTION_THRESHOLD: 'DEMO_GAP_DETECTION_THRESHOLD',
207
+ GAP_JUMP_TIMER_TIME: 'DEMO_GAP_JUMP_TIMER_TIME',
208
+ HDR_LEVEL: 'DEMO_HDR_LEVEL',
209
+ HDR_LEVEL_AUTO: 'DEMO_HDR_LEVEL_AUTO',
210
+ HDR_LEVEL_HLG: 'DEMO_HDR_LEVEL_HLG',
211
+ HDR_LEVEL_NONE: 'DEMO_HDR_LEVEL_NONE',
212
+ HDR_LEVEL_PQ: 'DEMO_HDR_LEVEL_PQ',
213
+ HDR_LEVEL_SDR: 'DEMO_HDR_LEVEL_SDR',
214
+ HLS_SEQUENCE_MODE: 'DEMO_HLS_SEQUENCE_MODE',
198
215
  IGNORE_DASH_EMPTY_ADAPTATION_SET: 'DEMO_IGNORE_DASH_EMPTY_ADAPTATION_SET',
199
216
  IGNORE_DASH_DRM: 'DEMO_IGNORE_DASH_DRM',
200
217
  IGNORE_DASH_MAX_SEGMENT_DURATION: 'DEMO_IGNORE_DASH_MAX_SEGMENT_DURATION',
@@ -203,6 +220,7 @@ shakaDemo.MessageIds = {
203
220
  IGNORE_HLS_IMAGE_FAILURES: 'DEMO_IGNORE_HLS_IMAGE_FAILURES',
204
221
  IGNORE_HLS_TEXT_FAILURES: 'DEMO_IGNORE_HLS_TEXT_FAILURES',
205
222
  IGNORE_MANIFEST_PROGRAM_DATE_TIME: 'DEMO_IGNORE_MANIFEST_PROGRAM_DATE_TIME',
223
+ IGNORE_MANIFEST_TIMESTAMPS_IN_SEGMENTS_MODE: 'DEMO_IGNORE_MANIFEST_TIMESTAMPS_IN_SEGMENTS_MODE',
206
224
  IGNORE_MIN_BUFFER_TIME: 'DEMO_IGNORE_MIN_BUFFER_TIME',
207
225
  IGNORE_TEXT_FAILURES: 'DEMO_IGNORE_TEXT_FAILURES',
208
226
  INACCURATE_MANIFEST_TOLERANCE: 'DEMO_INACCURATE_MANIFEST_TOLERANCE',
@@ -213,6 +231,9 @@ shakaDemo.MessageIds = {
213
231
  LCEVC_LOG_LEVEL: 'DEMO_LCEVC_LOG_LEVEL',
214
232
  LCEVC_SECTION_HEADER: 'DEMO_LCEVC_SECTION_HEADER',
215
233
  LIVE_SEGMENTS_DELAY: 'DEMO_LIVE_SEGMENTS_DELAY',
234
+ LIVE_SYNC: 'DEMO_LIVE_SYNC',
235
+ LIVE_SYNC_MAX_LATENCY: 'DEMO_LIVE_SYNC_MAX_LATENCY',
236
+ LIVE_SYNC_PLAYBACK_RATE: 'DEMO_LIVE_SYNC_PLAYBACK_RATE',
216
237
  LOG_LEVEL: 'DEMO_LOG_LEVEL',
217
238
  LOG_LEVEL_DEBUG: 'DEMO_LOG_LEVEL_DEBUG',
218
239
  LOG_LEVEL_INFO: 'DEMO_LOG_LEVEL_INFO',
@@ -232,11 +253,13 @@ shakaDemo.MessageIds = {
232
253
  MEDIA_SOURCE_SECTION_HEADER: 'DEMO_MEDIA_SOURCE_SECTION_HEADER',
233
254
  MIN_BANDWIDTH: 'DEMO_MIN_BANDWIDTH',
234
255
  MIN_BYTES: 'DEMO_MIN_BYTES',
256
+ MIN_HDCP_VERSION: 'DEMO_MIN_HDCP_VERSION',
235
257
  MIN_FRAMERATE: 'DEMO_MIN_FRAMERATE',
236
258
  MIN_HEIGHT: 'DEMO_MIN_HEIGHT',
237
259
  MIN_PIXELS: 'DEMO_MIN_PIXELS',
238
260
  MIN_TOTAL_BYTES: 'DEMO_MIN_TOTAL_BYTES',
239
261
  MIN_WIDTH: 'DEMO_MIN_WIDTH',
262
+ MSS_SEQUENCE_MODE: 'DEMO_MSS_SEQUENCE_MODE',
240
263
  NETWORK_INFORMATION: 'DEMO_NETWORK_INFORMATION',
241
264
  NUMBER_DECIMAL_WARNING: 'DEMO_NUMBER_DECIMAL_WARNING',
242
265
  NUMBER_INTEGER_WARNING: 'DEMO_NUMBER_INTEGER_WARNING',
@@ -251,10 +274,10 @@ shakaDemo.MessageIds = {
251
274
  RESTRICT_TO_ELEMENT_SIZE: 'DEMO_RESTRICT_TO_ELEMENT_SIZE',
252
275
  RESTRICT_TO_SCREEN_SIZE: 'DEMO_RESTRICT_TO_SCREEN_SIZE',
253
276
  RESTRICTIONS_SECTION_HEADER: 'DEMO_RESTRICTIONS_SECTION_HEADER',
277
+ SAFE_MARGIN_SWITCH: 'DEMO_SAFE_MARGIN_SWITCH',
254
278
  SAFE_SEEK_OFFSET: 'DEMO_SAFE_SEEK_OFFSET',
255
279
  SAFE_SKIP_DISTANCE: 'DEMO_SAFE_SKIP_DISTANCE',
256
280
  SEGMENT_RELATIVE_VTT_TIMING: 'DEMO_SEGMENT_RELATIVE_VTT_TIMING',
257
- SEQUENCE_MODE: 'DEMO_SEQUENCE_MODE',
258
281
  SESSION_ID: 'DEMO_SESSION_ID',
259
282
  SHAKA_CONTROLS: 'DEMO_SHAKA_CONTROLS',
260
283
  SLOW_HALF_LIFE: 'DEMO_SLOW_HALF_LIFE',
@@ -281,5 +304,6 @@ shakaDemo.MessageIds = {
281
304
  VIDEO_ROBUSTNESS: 'DEMO_VIDEO_ROBUSTNESS',
282
305
  VNOVA: 'DEMO_VNOVA',
283
306
  XLINK_FAIL_GRACEFULLY: 'DEMO_XLINK_FAIL_GRACEFULLY',
307
+ SEGMENT_PREFETCH_LIMIT: 'DEMO_SEGMENT_PREFETCH_LIMIT',
284
308
  };
285
309
  /* eslint-enable max-len */
package/demo/config.js CHANGED
@@ -98,6 +98,7 @@ shakaDemo.Config = class {
98
98
  shakaDemo.MessageIds.RESTRICTIONS_SECTION_HEADER);
99
99
  this.addCmcdSection_();
100
100
  this.addLcevcSection_();
101
+ this.addAdsSection_();
101
102
  }
102
103
 
103
104
  /**
@@ -135,7 +136,9 @@ shakaDemo.Config = class {
135
136
  /* canBeZero= */ false,
136
137
  /* canBeUnset= */ true)
137
138
  .addBoolInput_(MessageIds.PARSE_INBAND_PSSH_ENABLED,
138
- 'drm.parseInbandPsshEnabled');
139
+ 'drm.parseInbandPsshEnabled')
140
+ .addTextInput_(MessageIds.MIN_HDCP_VERSION,
141
+ 'drm.minHdcpVersion');
139
142
  const advanced = shakaDemoMain.getConfiguration().drm.advanced || {};
140
143
  const addDRMAdvancedField = (name, valueName, suggestions) => {
141
144
  // All advanced fields of a given type are set at once.
@@ -222,6 +225,10 @@ shakaDemo.Config = class {
222
225
  'manifest.hls.useSafariBehaviorForLive')
223
226
  .addNumberInput_(MessageIds.LIVE_SEGMENTS_DELAY,
224
227
  'manifest.hls.liveSegmentsDelay')
228
+ .addBoolInput_(MessageIds.HLS_SEQUENCE_MODE,
229
+ 'manifest.hls.sequenceMode')
230
+ .addBoolInput_(MessageIds.IGNORE_MANIFEST_TIMESTAMPS_IN_SEGMENTS_MODE,
231
+ 'manifest.hls.ignoreManifestTimestampsInSegmentsMode')
225
232
  .addNumberInput_(MessageIds.AVAILABILITY_WINDOW_OVERRIDE,
226
233
  'manifest.availabilityWindowOverride',
227
234
  /* canBeDecimal= */ true,
@@ -237,7 +244,7 @@ shakaDemo.Config = class {
237
244
  /* canBeDecimal= */ false,
238
245
  /* canBeZero= */ false,
239
246
  /* canBeUnset= */ true)
240
- .addBoolInput_(MessageIds.SEQUENCE_MODE,
247
+ .addBoolInput_(MessageIds.DASH_SEQUENCE_MODE,
241
248
  'manifest.dash.sequenceMode')
242
249
  .addBoolInput_(MessageIds.DISABLE_AUDIO,
243
250
  'manifest.disableAudio')
@@ -248,7 +255,9 @@ shakaDemo.Config = class {
248
255
  .addBoolInput_(MessageIds.DISABLE_THUMBNAILS,
249
256
  'manifest.disableThumbnails')
250
257
  .addBoolInput_(MessageIds.SEGMENT_RELATIVE_VTT_TIMING,
251
- 'manifest.segmentRelativeVttTiming');
258
+ 'manifest.segmentRelativeVttTiming')
259
+ .addBoolInput_(MessageIds.MSS_SEQUENCE_MODE,
260
+ 'manifest.mss.sequenceMode');
252
261
 
253
262
  this.addRetrySection_('manifest', MessageIds.MANIFEST_RETRY_SECTION_HEADER);
254
263
  }
@@ -287,7 +296,12 @@ shakaDemo.Config = class {
287
296
  .addBoolInput_(MessageIds.RESTRICT_TO_SCREEN_SIZE,
288
297
  'abr.restrictToScreenSize')
289
298
  .addBoolInput_(MessageIds.IGNORE_DEVICE_PIXEL_RATIO,
290
- 'abr.ignoreDevicePixelRatio');
299
+ 'abr.ignoreDevicePixelRatio')
300
+ .addBoolInput_(MessageIds.CLEAR_BUFFER_SWITCH,
301
+ 'abr.clearBufferSwitch')
302
+ .addNumberInput_(MessageIds.SAFE_MARGIN_SWITCH,
303
+ 'abr.safeMarginSwitch',
304
+ /* canBeDecimal= */ true);
291
305
  this.addRetrictionsSection_('abr',
292
306
  MessageIds.ADAPTATION_RESTRICTIONS_SECTION_HEADER);
293
307
  }
@@ -315,6 +329,15 @@ shakaDemo.Config = class {
315
329
  .addBoolInput_(MessageIds.LCEVC_DRAW_LOGO, 'lcevc.drawLogo');
316
330
  }
317
331
 
332
+ /** @private */
333
+ addAdsSection_() {
334
+ const MessageIds = shakaDemo.MessageIds;
335
+ const docLink = this.resolveExternLink_('.AdsConfiguration');
336
+ this.addSection_(MessageIds.ADS_SECTION_HEADER, docLink)
337
+ .addBoolInput_(MessageIds.CUSTOM_PLAYHEAD_TRACKER,
338
+ 'ads.customPlayheadTracker');
339
+ }
340
+
318
341
  /**
319
342
  * @param {string} category
320
343
  * @param {!shakaDemo.MessageIds} sectionName
@@ -382,6 +405,9 @@ shakaDemo.Config = class {
382
405
  .addNumberInput_(MessageIds.GAP_DETECTION_THRESHOLD,
383
406
  'streaming.gapDetectionThreshold',
384
407
  /* canBeDecimal= */ true)
408
+ .addNumberInput_(MessageIds.GAP_JUMP_TIMER_TIME,
409
+ 'streaming.gapJumpTimerTime',
410
+ /* canBeDecimal= */ true)
385
411
  .addNumberInput_(MessageIds.BUFFERING_GOAL,
386
412
  'streaming.bufferingGoal',
387
413
  /* canBeDecimal= */ true)
@@ -422,7 +448,19 @@ shakaDemo.Config = class {
422
448
  .addBoolInput_(MessageIds.OBSERVE_QUALITY_CHANGES,
423
449
  'streaming.observeQualityChanges')
424
450
  .addNumberInput_(MessageIds.MAX_DISABLED_TIME,
425
- 'streaming.maxDisabledTime');
451
+ 'streaming.maxDisabledTime')
452
+ .addNumberInput_(MessageIds.SEGMENT_PREFETCH_LIMIT,
453
+ 'streaming.segmentPrefetchLimit')
454
+ .addBoolInput_(MessageIds.LIVE_SYNC,
455
+ 'streaming.liveSync')
456
+ .addNumberInput_(MessageIds.LIVE_SYNC_MAX_LATENCY,
457
+ 'streaming.liveSyncMaxLatency',
458
+ /* canBeDecimal= */ true,
459
+ /* canBeZero= */ true)
460
+ .addNumberInput_(MessageIds.LIVE_SYNC_PLAYBACK_RATE,
461
+ 'streaming.liveSyncPlaybackRate',
462
+ /* canBeDecimal= */ true,
463
+ /* canBeZero= */ false);
426
464
 
427
465
  if (!shakaDemoMain.getNativeControlsEnabled()) {
428
466
  this.addBoolInput_(MessageIds.ALWAYS_STREAM_TEXT,
@@ -436,10 +474,26 @@ shakaDemo.Config = class {
436
474
  this.latestInput_.input().checked = true;
437
475
  }
438
476
 
439
- this.addBoolInput_(MessageIds.FORCE_TRANSMUX,
440
- 'streaming.forceTransmux')
441
- .addBoolInput_(MessageIds.START_AT_SEGMENT_BOUNDARY,
442
- 'streaming.startAtSegmentBoundary')
477
+ const hdrLevels = {
478
+ '': '',
479
+ 'AUTO': 'AUTO',
480
+ 'SDR': 'SDR',
481
+ 'PQ': 'PQ',
482
+ 'HLG': 'HLG',
483
+ };
484
+ const localize = (name) => shakaDemoMain.getLocalizedString(name);
485
+ const hdrLevelNames = {
486
+ 'AUTO': localize(MessageIds.HDR_LEVEL_AUTO),
487
+ 'SDR': localize(MessageIds.HDR_LEVEL_SDR),
488
+ 'PQ': localize(MessageIds.HDR_LEVEL_PQ),
489
+ 'HLG': localize(MessageIds.HDR_LEVEL_HLG),
490
+ '': localize(MessageIds.HDR_LEVEL_NONE),
491
+ };
492
+ this.addSelectInput_(MessageIds.HDR_LEVEL, 'preferredVideoHdrLevel',
493
+ hdrLevels, hdrLevelNames);
494
+
495
+ this.addBoolInput_(MessageIds.START_AT_SEGMENT_BOUNDARY,
496
+ 'streaming.startAtSegmentBoundary')
443
497
  .addBoolInput_(MessageIds.IGNORE_TEXT_FAILURES,
444
498
  'streaming.ignoreTextStreamFailures')
445
499
  .addBoolInput_(MessageIds.STALL_DETECTOR_ENABLED,
@@ -456,7 +510,11 @@ shakaDemo.Config = class {
456
510
  const docLink = this.resolveExternLink_('.MediaSourceConfiguration');
457
511
  this.addSection_(MessageIds.MEDIA_SOURCE_SECTION_HEADER, docLink)
458
512
  .addTextInput_(MessageIds.SOURCE_BUFFER_EXTRA_FEATURES,
459
- 'mediaSource.sourceBufferExtraFeatures');
513
+ 'mediaSource.sourceBufferExtraFeatures')
514
+ .addBoolInput_(MessageIds.FORCE_TRANSMUX,
515
+ 'mediaSource.forceTransmux')
516
+ .addBoolInput_(MessageIds.INSERT_FAKE_ENCRYPTION_IN_INIT,
517
+ 'mediaSource.insertFakeEncryptionInInit');
460
518
  }
461
519
 
462
520
  /** @private */
@@ -477,6 +535,7 @@ shakaDemo.Config = class {
477
535
 
478
536
  this.addSection_(MessageIds.LANGUAGE_SECTION_HEADER, docLink)
479
537
  .addTextInput_(MessageIds.AUDIO_LANGUAGE, 'preferredAudioLanguage')
538
+ .addTextInput_(MessageIds.AUDIO_LABEL, 'preferredAudioLabel')
480
539
  .addTextInput_(MessageIds.TEXT_LANGUAGE, 'preferredTextLanguage')
481
540
  .addTextInput_(MessageIds.TEXT_ROLE, 'preferredTextRole')
482
541
  .addSelectInput_(
@@ -2,7 +2,7 @@
2
2
  Note: This auto-filled issue template contains the manifest and license server
3
3
  of the asset you were playing at the time you pressed the bug report button.
4
4
  We have detected that you were playing a custom asset.
5
- If this asset's URL is confidential, you might instead want to fill out an issue
6
- template manually:
5
+ If this asset's URL is confidential, you might instead want to censor this or
6
+ fill out an issue template manually:
7
7
  https://github.com/shaka-project/shaka-player/issues/new/choose
8
8
  -->
package/demo/index.html CHANGED
@@ -38,6 +38,8 @@
38
38
  <script defer src="https://www.gstatic.com/cv/js/sender/v1/cast_sender.js"></script>
39
39
  <!-- transmuxing support is enabled by including this: -->
40
40
  <script defer src="../node_modules/mux.js/dist/mux.min.js"></script>
41
+ <!-- MSS support is enabled by including this: -->
42
+ <script defer src="../node_modules/codem-isoboxer/dist/iso_boxer.min.js"></script>
41
43
  <!-- MPEG-5 Part2 LCEVC support is enabled by including this: -->
42
44
  <script defer src="../node_modules/lcevc_dil.js/dist/lcevc_dil.min.js"></script>
43
45
  <!-- MDL is enabled by including this: -->
@@ -128,7 +130,7 @@ UNCOMPILED_JS = [
128
130
  </div>
129
131
  <main class="mdl-layout__content" id="main-div">
130
132
  <div id="video-bar" class="hidden">
131
- <div data-shaka-player-container data-shaka-player-cast-receiver-id="8D8C71A7" class="video-container">
133
+ <div data-shaka-player-container data-shaka-player-cast-receiver-id="07AEE832" class="video-container">
132
134
  <video data-shaka-player autoplay playsinline id="video"></video>
133
135
  </div>
134
136
  </div>
@@ -5,12 +5,14 @@
5
5
  "DEMO_AD_SEARCH": "Filters for assets that have advertisements.",
6
6
  "DEMO_AD_TAG_URL": "Ad Tag URL",
7
7
  "DEMO_ADS_TAB": "Ads",
8
+ "DEMO_ADS_SECTION_HEADER": "Ads",
8
9
  "DEMO_ALL_CONTENT": "ALL CONTENT",
9
10
  "DEMO_ALWAYS_STREAM_TEXT": "Always Stream Text",
10
11
  "DEMO_ALWAYS_STREAM_TEXT_WARNING": "Text must always be streamed while native controls are enabled, for captions to work.",
11
12
  "DEMO_APPLE": "Apple",
12
13
  "DEMO_AUDIO_CHANNEL_COUNT": "Preferred Audio Channel Count",
13
14
  "DEMO_AUDIO_LANGUAGE": "Preferred Audio Language",
15
+ "DEMO_AUDIO_LABEL": "Preferred Audio Label",
14
16
  "DEMO_AUDIO_ONLY": "Audio only",
15
17
  "DEMO_AUDIO_ONLY_SEARCH": "Filters for assets that do not have video streams.",
16
18
  "DEMO_AUDIO_ROBUSTNESS": "Audio Robustness",
@@ -38,6 +40,7 @@
38
40
  "DEMO_CLEAR": "No DRM protection",
39
41
  "DEMO_CLEAR_KEY": "Clear Key DRM",
40
42
  "DEMO_CLOCK_SYNC_URI": "Clock Sync URI",
43
+ "DEMO_CLEAR_BUFFER_SWITCH": "Clear video buffer on abr rendition switch",
41
44
  "DEMO_CMCD_SECTION_HEADER": "CMCD",
42
45
  "DEMO_COMPILED_DEBUG": "Compiled (Debug)",
43
46
  "DEMO_COMPILED_RELEASE": "Compiled (Release)",
@@ -51,8 +54,10 @@
51
54
  "DEMO_CUSTOM_INTRO_ONE": "Try Shaka Player with your own content!",
52
55
  "DEMO_CUSTOM_INTRO_THREE": "Custom assets will remain even after reloading the page.",
53
56
  "DEMO_CUSTOM_INTRO_TWO": "Press the button below to add a custom asset.",
57
+ "DEMO_CUSTOM_PLAYHEAD_TRACKER": "Custom playhead tracker",
54
58
  "DEMO_DASH": "DASH",
55
59
  "DEMO_DASH_IF": "DASH-IF",
60
+ "DEMO_DASH_SEQUENCE_MODE": "Enable DASH sequence mode",
56
61
  "DEMO_DEFAULT_AUDIO_CODEC": "Default Audio Codec",
57
62
  "DEMO_DEFAULT_PRESENTATION_DELAY": "Default Presentation Delay",
58
63
  "DEMO_DEFAULT_VIDEO_CODEC": "Default Video Codec",
@@ -83,13 +88,21 @@
83
88
  "DEMO_FAST_HALF_LIFE": "Fast half life",
84
89
  "DEMO_FORCE_HTTPS": "Force HTTPS",
85
90
  "DEMO_FORCE_TRANSMUX": "Force Transmux",
91
+ "DEMO_INSERT_FAKE_ENCRYPTION_IN_INIT": "Insert fake encryption in init segments when needed by the platform.",
86
92
  "DEMO_FRONT_INTRO_DISMISS": "Dismiss",
87
93
  "DEMO_FRONT_INTRO_ONE": "This is a demo of Google's Shaka Player, a JavaScript library for adaptive video streaming.",
88
94
  "DEMO_FRONT_INTRO_TWO": "Choose a video to playback; more assets are available via the \"all content\" tab.",
89
95
  "DEMO_FUZZ_FACTOR": "Fuzz Factor",
90
96
  "DEMO_GAP_DETECTION_THRESHOLD": "Gap detection threshold",
97
+ "DEMO_GAP_JUMP_TIMER_TIME": "Gap jump timer time",
91
98
  "DEMO_GPAC": "GPAC",
92
99
  "DEMO_HEADERS_TAB": "Headers",
100
+ "DEMO_HDR_LEVEL": "Preferred HDR Level",
101
+ "DEMO_HDR_LEVEL_AUTO": "Auto Detect",
102
+ "DEMO_HDR_LEVEL_HLG": "HLG",
103
+ "DEMO_HDR_LEVEL_NONE": "No Preference",
104
+ "DEMO_HDR_LEVEL_PQ": "PQ",
105
+ "DEMO_HDR_LEVEL_SDR": "SDR",
93
106
  "DEMO_HIGH_DEFINITION": "High definition",
94
107
  "DEMO_HIGH_DEFINITION_SEARCH": "Filters for assets with at least one high-definition video stream.",
95
108
  "DEMO_HLS": "HLS",
@@ -108,6 +121,7 @@
108
121
  "DEMO_IMA_MANIFEST_TYPE": "Manifest type (for DAI Content)",
109
122
  "DEMO_IMA_VIDEO_ID": "Video ID (for VOD DAI Content)",
110
123
  "DEMO_IGNORE_MANIFEST_PROGRAM_DATE_TIME": "Ignore Program Date Time from manifest",
124
+ "DEMO_IGNORE_MANIFEST_TIMESTAMPS_IN_SEGMENTS_MODE": "Ignore Manifest Timestamps in Segments Mode",
111
125
  "DEMO_IGNORE_MIN_BUFFER_TIME": "Ignore Min Buffer Time",
112
126
  "DEMO_IGNORE_TEXT_FAILURES": "Ignore Text Stream Failures",
113
127
  "DEMO_INACCURATE_MANIFEST_TOLERANCE": "Inaccurate Manifest Tolerance",
@@ -121,6 +135,7 @@
121
135
  "DEMO_LCEVC_DYNAMIC_PERFORMANCE_SCALING": "LCEVC Dynamic Performance scaling",
122
136
  "DEMO_LCEVC_LOG_LEVEL": "LCEVC Log Level",
123
137
  "DEMO_LCEVC_SECTION_HEADER": "MPEG-5 Part-2 LCEVC",
138
+ "DEMO_LOW_LATENCY_STREAM": "Low Latency Streams",
124
139
  "DEMO_LIBRARIES": "Google Hosted Libraries",
125
140
  "DEMO_LICENSE": "Apache License",
126
141
  "DEMO_LICENSE_CERTIFICATE_URL": "Custom License Certificate URL",
@@ -131,6 +146,9 @@
131
146
  "DEMO_LIVE": "Live",
132
147
  "DEMO_LIVE_SEARCH": "Live",
133
148
  "DEMO_LIVE_SEGMENTS_DELAY": "Live segments delay",
149
+ "DEMO_LIVE_SYNC": "Live sync",
150
+ "DEMO_LIVE_SYNC_MAX_LATENCY":"Max latency for live sync",
151
+ "DEMO_LIVE_SYNC_PLAYBACK_RATE":"Playback rate for live sync",
134
152
  "DEMO_LOG_LEVEL": "Log Level",
135
153
  "DEMO_LOG_LEVEL_DEBUG": "Debug",
136
154
  "DEMO_LOG_LEVEL_INFO": "Info",
@@ -157,6 +175,7 @@
157
175
  "DEMO_MIME_TYPE": "MIME Type",
158
176
  "DEMO_MIN_BANDWIDTH": "Min Bandwidth",
159
177
  "DEMO_MIN_BYTES": "Min Bytes",
178
+ "DEMO_MIN_HDCP_VERSION": "Min HDCP version",
160
179
  "DEMO_MIN_FRAMERATE": "Min Framerate",
161
180
  "DEMO_MIN_HEIGHT": "Min Height",
162
181
  "DEMO_MIN_PIXELS": "Min Pixels",
@@ -164,6 +183,8 @@
164
183
  "DEMO_MIN_WIDTH": "Min Width",
165
184
  "DEMO_MP2TS": "MPEG-2 TS",
166
185
  "DEMO_MP4": "MP4",
186
+ "DEMO_MSS": "MSS",
187
+ "DEMO_MSS_SEQUENCE_MODE": "Enable MSS sequence mode",
167
188
  "DEMO_MULTIPLE_LANGUAGES": "Multiple languages",
168
189
  "DEMO_NAME": "Name",
169
190
  "DEMO_NAME_ERROR": "Must be a unique name.",
@@ -183,6 +204,7 @@
183
204
  "DEMO_FAILURE_MISC": "Shaka Player failed to load! If you are using an ad blocker, try switching to compiled mode at the bottom of the page.",
184
205
  "DEMO_FAILURE_NO_BROWSER_SUPPORT": "Your browser is not supported!",
185
206
  "DEMO_HLS_FULL_MIME_TYPE": "Full Mime Type for Playing Media Playlists Directly",
207
+ "DEMO_HLS_SEQUENCE_MODE": "Enable HLS sequence mode",
186
208
  "DEMO_PLAY": "Play",
187
209
  "DEMO_PLAYREADY": "PlayReady DRM",
188
210
  "DEMO_PREFER_FORCED_SUBS": "Prefer Forced Subs",
@@ -195,10 +217,10 @@
195
217
  "DEMO_RESTRICT_TO_ELEMENT_SIZE": "Restrict to element size",
196
218
  "DEMO_RESTRICT_TO_SCREEN_SIZE": "Restrict to screen size",
197
219
  "DEMO_RESTRICTIONS_SECTION_HEADER": "Restrictions",
220
+ "DEMO_SAFE_MARGIN_SWITCH": "Safe margin on abr switch rendition",
198
221
  "DEMO_SAFE_SEEK_OFFSET": "Safe Seek Offset",
199
222
  "DEMO_SAFE_SKIP_DISTANCE": "Safe Skip Distance",
200
223
  "DEMO_SEGMENT_RELATIVE_VTT_TIMING": "Enable segment-relative VTT Timing",
201
- "DEMO_SEQUENCE_MODE": "Enable sequence mode",
202
224
  "DEMO_SESSION_ID": "Session ID",
203
225
  "DEMO_SAVE_BUTTON": "Save",
204
226
  "DEMO_SHAKA": "Shaka",
@@ -241,6 +263,7 @@
241
263
  "DEMO_UNSUPPORTED_NO_HLS_SUPPORT": "Your browser does not support HLS manifests.",
242
264
  "DEMO_UNSUPPORTED_NO_KEY_SUPPORT": "Your browser does not support the required key systems.",
243
265
  "DEMO_UNSUPPORTED_NO_LICENSE_SUPPORT": "Your browser does not support offline licenses for the required key systems.",
266
+ "DEMO_UNSUPPORTED_NO_MSS_SUPPORT": "Your browser does not support MSS manifests.",
244
267
  "DEMO_UNSUPPORTED_NO_OFFLINE": "Your browser does not support offline storage.",
245
268
  "DEMO_UPDATE_EXPIRATION_TIME": "Update expiration time",
246
269
  "DEMO_UPDATE_INTERVAL_SECONDS": "Update interval seconds",
@@ -259,5 +282,6 @@
259
282
  "DEMO_WIDEVINE": "Widevine DRM",
260
283
  "DEMO_XLINK": "XLink",
261
284
  "DEMO_XLINK_FAIL_GRACEFULLY": "Xlink Should Fail Gracefully",
262
- "DEMO_XLINK_SEARCH": "Filters for assets that have XLINK tags in their manifests, so that they can be broken into multiple files."
285
+ "DEMO_XLINK_SEARCH": "Filters for assets that have XLINK tags in their manifests, so that they can be broken into multiple files.",
286
+ "DEMO_SEGMENT_PREFETCH_LIMIT": "Segment Prefetch Limit"
263
287
  }