shaka-player 4.4.3 → 4.6.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 (307) hide show
  1. package/.github/ISSUE_TEMPLATE/bug_report.md +1 -1
  2. package/.github/workflows/release-please.yaml +2 -27
  3. package/AUTHORS +2 -0
  4. package/CHANGELOG.md +156 -39
  5. package/CODE_OF_CONDUCT.md +1 -1
  6. package/CONTRIBUTORS +2 -0
  7. package/README.md +54 -42
  8. package/demo/asset_card.js +18 -21
  9. package/demo/cast_receiver/index.html +0 -1
  10. package/demo/close_button.js +0 -3
  11. package/demo/common/asset.js +33 -22
  12. package/demo/common/assets.js +249 -60
  13. package/demo/config.js +219 -253
  14. package/demo/custom.js +88 -133
  15. package/demo/front.js +7 -10
  16. package/demo/index.html +19 -22
  17. package/demo/input.js +6 -11
  18. package/demo/input_container.js +8 -9
  19. package/demo/main.js +62 -126
  20. package/demo/search.js +29 -34
  21. package/demo/service_worker.js +0 -3
  22. package/demo/tooltip.js +3 -5
  23. package/demo/visualizer.js +3 -5
  24. package/demo/visualizer_button.js +1 -20
  25. package/dist/controls.css +1 -1
  26. package/dist/controls.css.map +1 -1
  27. package/dist/demo.compiled.debug.js +211 -228
  28. package/dist/demo.compiled.debug.map +4 -4
  29. package/dist/demo.compiled.js +211 -228
  30. package/dist/demo.compiled.map +4 -4
  31. package/dist/deps.js +42 -37
  32. package/dist/locales.js +34 -30
  33. package/dist/receiver.compiled.debug.js +64 -77
  34. package/dist/receiver.compiled.debug.map +4 -4
  35. package/dist/receiver.compiled.js +64 -77
  36. package/dist/receiver.compiled.map +4 -4
  37. package/dist/shaka-player.compiled.d.ts +343 -151
  38. package/dist/shaka-player.compiled.debug.d.ts +343 -151
  39. package/dist/shaka-player.compiled.debug.externs.js +356 -117
  40. package/dist/shaka-player.compiled.debug.js +952 -811
  41. package/dist/shaka-player.compiled.debug.map +4 -4
  42. package/dist/shaka-player.compiled.externs.js +356 -117
  43. package/dist/shaka-player.compiled.js +1165 -1078
  44. package/dist/shaka-player.compiled.map +4 -4
  45. package/dist/shaka-player.ui.d.ts +359 -153
  46. package/dist/shaka-player.ui.debug.d.ts +359 -153
  47. package/dist/shaka-player.ui.debug.externs.js +382 -117
  48. package/dist/shaka-player.ui.debug.js +1084 -918
  49. package/dist/shaka-player.ui.debug.map +4 -4
  50. package/dist/shaka-player.ui.externs.js +382 -117
  51. package/dist/shaka-player.ui.js +1377 -1274
  52. package/dist/shaka-player.ui.map +4 -4
  53. package/docs/design/lcevc-integration.md +14 -14
  54. package/docs/tutorials/ad_monetization.md +54 -0
  55. package/docs/tutorials/basic-usage.md +2 -1
  56. package/docs/tutorials/errors.md +2 -1
  57. package/docs/tutorials/faq.md +27 -55
  58. package/docs/tutorials/index.json +2 -1
  59. package/docs/tutorials/lcevc.md +118 -0
  60. package/docs/tutorials/offline.md +10 -8
  61. package/docs/tutorials/plugins.md +5 -0
  62. package/docs/tutorials/ui-customization.md +17 -0
  63. package/docs/tutorials/ui.md +2 -1
  64. package/docs/tutorials/upgrade.md +3 -0
  65. package/externs/css_style_declaration.js +19 -0
  66. package/externs/lcevc.js +37 -13
  67. package/externs/managedmediasource.js +24 -0
  68. package/externs/media_remote.js +68 -0
  69. package/externs/mediatailor.js +193 -0
  70. package/externs/pictureinpicture.js +11 -0
  71. package/externs/shaka/abr_manager.js +6 -2
  72. package/externs/shaka/ads.js +27 -0
  73. package/externs/shaka/cea.js +7 -0
  74. package/externs/shaka/codecs.js +5 -3
  75. package/externs/shaka/manifest.js +31 -10
  76. package/externs/shaka/manifest_parser.js +24 -1
  77. package/externs/shaka/net.js +2 -2
  78. package/externs/shaka/offline.js +13 -2
  79. package/externs/shaka/player.js +65 -8
  80. package/externs/shaka/text.js +3 -1
  81. package/externs/shaka/transmuxer.js +1 -1
  82. package/karma.conf.js +7 -3
  83. package/lib/abr/simple_abr_manager.js +66 -9
  84. package/lib/ads/ad_manager.js +104 -50
  85. package/lib/ads/media_tailor_ad.js +297 -0
  86. package/lib/ads/media_tailor_ad_manager.js +839 -0
  87. package/lib/cast/cast_receiver.js +1 -1
  88. package/lib/cea/cea_decoder.js +28 -0
  89. package/lib/cea/dummy_caption_decoder.js +5 -0
  90. package/lib/cea/ts_cea_parser.js +15 -2
  91. package/lib/config/codec_switching_strategy.js +24 -0
  92. package/lib/dash/content_protection.js +120 -2
  93. package/lib/dash/dash_parser.js +322 -93
  94. package/lib/dash/mpd_utils.js +62 -37
  95. package/lib/dash/segment_base.js +17 -10
  96. package/lib/dash/segment_list.js +18 -9
  97. package/lib/dash/segment_template.js +122 -107
  98. package/lib/dependencies/all.js +8 -7
  99. package/lib/hls/hls_classes.js +28 -43
  100. package/lib/hls/hls_parser.js +798 -658
  101. package/lib/hls/hls_utils.js +64 -5
  102. package/lib/hls/manifest_text_parser.js +7 -11
  103. package/lib/lcevc/lcevc_dec.js +220 -0
  104. package/lib/media/adaptation_set.js +32 -14
  105. package/lib/media/adaptation_set_criteria.js +86 -16
  106. package/lib/media/closed_caption_parser.js +13 -0
  107. package/lib/media/content_workarounds.js +6 -0
  108. package/lib/media/drm_engine.js +8 -13
  109. package/lib/media/manifest_parser.js +8 -113
  110. package/lib/media/media_source_capabilities.js +10 -3
  111. package/lib/media/media_source_engine.js +286 -44
  112. package/lib/media/play_rate_controller.js +8 -38
  113. package/lib/media/presentation_timeline.js +7 -1
  114. package/lib/media/quality_observer.js +1 -1
  115. package/lib/media/segment_index.js +6 -6
  116. package/lib/media/segment_prefetch.js +92 -24
  117. package/lib/media/segment_reference.js +73 -7
  118. package/lib/media/segment_utils.js +343 -0
  119. package/lib/media/stall_detector.js +0 -3
  120. package/lib/media/streaming_engine.js +73 -38
  121. package/lib/mss/mss_parser.js +19 -2
  122. package/lib/net/networking_engine.js +67 -12
  123. package/lib/net/networking_utils.js +95 -0
  124. package/lib/offline/indexeddb/v1_storage_cell.js +3 -0
  125. package/lib/offline/indexeddb/v2_storage_cell.js +3 -0
  126. package/lib/offline/manifest_converter.js +3 -0
  127. package/lib/offline/offline_manifest_parser.js +10 -0
  128. package/lib/offline/storage.js +14 -7
  129. package/lib/player.js +1098 -1537
  130. package/lib/polyfill/mediasource.js +22 -1
  131. package/lib/text/cue.js +15 -0
  132. package/lib/text/mp4_ttml_parser.js +2 -2
  133. package/lib/text/srt_text_parser.js +2 -2
  134. package/lib/text/stub_text_displayer.js +51 -0
  135. package/lib/text/text_engine.js +3 -2
  136. package/lib/text/ttml_text_parser.js +45 -5
  137. package/lib/text/ui_text_displayer.js +8 -0
  138. package/lib/text/vtt_text_parser.js +40 -22
  139. package/lib/transmuxer/aac_transmuxer.js +1 -1
  140. package/lib/transmuxer/ac3_transmuxer.js +1 -1
  141. package/lib/transmuxer/ec3_transmuxer.js +1 -1
  142. package/lib/transmuxer/h264.js +5 -4
  143. package/lib/transmuxer/h265.js +863 -0
  144. package/lib/transmuxer/mp3_transmuxer.js +1 -1
  145. package/lib/transmuxer/mpeg_ts_transmuxer.js +4 -3
  146. package/lib/transmuxer/mss_transmuxer.js +1 -1
  147. package/lib/transmuxer/ts_transmuxer.js +187 -22
  148. package/lib/util/buffer_utils.js +26 -4
  149. package/lib/util/content_steering_manager.js +358 -0
  150. package/lib/util/error.js +30 -15
  151. package/lib/util/exp_golomb.js +30 -2
  152. package/lib/util/fairplay_utils.js +1 -1
  153. package/lib/util/fake_event.js +8 -1
  154. package/lib/util/id3_utils.js +50 -1
  155. package/lib/util/manifest_parser_utils.js +12 -8
  156. package/lib/util/mp4_generator.js +6 -8
  157. package/lib/util/mutex.js +59 -0
  158. package/lib/util/object_utils.js +1 -1
  159. package/lib/util/periods.js +156 -179
  160. package/lib/util/platform.js +44 -3
  161. package/lib/util/player_configuration.js +43 -6
  162. package/lib/util/state_history.js +6 -2
  163. package/lib/util/stream_utils.js +206 -283
  164. package/lib/util/ts_parser.js +335 -98
  165. package/lib/util/uint8array_utils.js +5 -1
  166. package/lib/util/xml_utils.js +5 -0
  167. package/maintained-branches.md +3 -2
  168. package/package.json +4 -6
  169. package/roadmap.md +25 -5
  170. package/shaka-player.uncompiled.js +2 -2
  171. package/support.html +0 -1
  172. package/test/abr/simple_abr_manager_unit.js +33 -33
  173. package/test/ads/ad_manager_unit.js +3 -2
  174. package/test/cast/cast_receiver_integration.js +50 -4
  175. package/test/cast/cast_utils_unit.js +2 -0
  176. package/test/cea/cea_decoder_unit.js +7 -0
  177. package/test/codec_switching/codec_switching_integration.js +182 -0
  178. package/test/dash/dash_parser_content_protection_unit.js +2 -0
  179. package/test/dash/dash_parser_integration.js +74 -0
  180. package/test/dash/dash_parser_live_unit.js +2 -19
  181. package/test/dash/dash_parser_manifest_unit.js +536 -2
  182. package/test/dash/dash_parser_segment_base_unit.js +2 -0
  183. package/test/dash/dash_parser_segment_list_unit.js +2 -0
  184. package/test/dash/dash_parser_segment_template_unit.js +2 -0
  185. package/test/dash/mpd_utils_unit.js +61 -30
  186. package/test/demo/demo_unit.js +0 -16
  187. package/test/hls/hls_live_unit.js +14 -3
  188. package/test/hls/hls_parser_unit.js +385 -33
  189. package/test/hls/manifest_text_parser_unit.js +32 -99
  190. package/test/media/adaptation_set_criteria_unit.js +284 -15
  191. package/test/media/adaptation_set_unit.js +2 -0
  192. package/test/media/content_workarounds_unit.js +1 -1
  193. package/test/media/drm_engine_unit.js +3 -3
  194. package/test/media/media_source_engine_unit.js +166 -2
  195. package/test/media/play_rate_controller_unit.js +0 -48
  196. package/test/media/segment_index_unit.js +5 -4
  197. package/test/media/segment_prefetch_unit.js +1 -1
  198. package/test/media/streaming_engine_unit.js +17 -17
  199. package/test/mss/mss_parser_unit.js +2 -0
  200. package/test/mss/mss_player_integration.js +3 -2
  201. package/test/net/networking_engine_unit.js +3 -3
  202. package/test/{media/manifest_parser_unit.js → net/networking_utils_unit.js} +2 -2
  203. package/test/offline/manifest_convert_unit.js +14 -0
  204. package/test/offline/offline_integration.js +2 -1
  205. package/test/offline/storage_integration.js +22 -13
  206. package/test/player_external.js +4 -2
  207. package/test/player_integration.js +15 -4
  208. package/test/player_load_graph_integration.js +47 -151
  209. package/test/player_src_equals_external.js +1 -0
  210. package/test/player_src_equals_integration.js +71 -4
  211. package/test/player_unit.js +182 -158
  212. package/test/test/assets/dash-aes-128/Fragments(video=0,format=mpd-time-csf) +0 -0
  213. package/test/test/assets/dash-aes-128/Fragments(video=20000000,format=mpd-time-csf) +0 -0
  214. package/test/test/assets/dash-aes-128/Fragments(video=40000000,format=mpd-time-csf) +0 -0
  215. package/test/test/assets/dash-aes-128/Fragments(video=60000000,format=mpd-time-csf) +0 -0
  216. package/test/test/assets/dash-aes-128/Fragments(video=i,format=mpd-time-csf) +0 -0
  217. package/test/test/assets/dash-aes-128/dash.mpd +18 -0
  218. package/test/test/assets/dash-aes-128/license +1 -0
  219. package/test/test/assets/dash-multi-codec/audio_en_2c_128k_aac.mp4 +0 -0
  220. package/test/test/assets/dash-multi-codec/audio_es_2c_64k_opus.webm +0 -0
  221. package/test/test/assets/dash-multi-codec/dash.mpd +32 -0
  222. package/test/test/assets/dash-multi-codec/video_144p_108k_h264.mp4 +0 -0
  223. package/test/test/assets/hls-ts-h265/0.ts +0 -0
  224. package/test/test/assets/hls-ts-h265/hevc.m3u8 +6 -0
  225. package/test/test/assets/hls-ts-h265/index.m3u8 +7 -0
  226. package/test/test/assets/hls-ts-muxed-aac-h265/0.ts +0 -0
  227. package/test/test/assets/hls-ts-muxed-aac-h265/1.ts +0 -0
  228. package/test/test/assets/hls-ts-muxed-aac-h265/media.m3u8 +9 -0
  229. package/test/test/assets/hls-ts-muxed-ac3-h264/media.m3u8 +24 -0
  230. package/test/test/assets/hls-ts-muxed-ac3-h264/s_00000.ts +0 -0
  231. package/test/test/assets/hls-ts-muxed-ac3-h264/s_00001.ts +0 -0
  232. package/test/test/assets/hls-ts-muxed-ac3-h264/s_00002.ts +0 -0
  233. package/test/test/assets/hls-ts-muxed-ac3-h264/s_00003.ts +0 -0
  234. package/test/test/assets/hls-ts-muxed-ac3-h264/s_00004.ts +0 -0
  235. package/test/test/assets/hls-ts-muxed-ac3-h264/s_00005.ts +0 -0
  236. package/test/test/assets/hls-ts-muxed-ec3-h264/ChID_voices_1280x720p_25fps_h264_6ch_256kbps_ddp_sub_0000.ts +0 -0
  237. package/test/test/assets/hls-ts-muxed-ec3-h264/ChID_voices_1280x720p_25fps_h264_6ch_256kbps_ddp_sub_0001.ts +0 -0
  238. package/test/test/assets/hls-ts-muxed-ec3-h264/ChID_voices_1280x720p_25fps_h264_6ch_256kbps_ddp_sub_0002.ts +0 -0
  239. package/test/test/assets/hls-ts-muxed-ec3-h264/ChID_voices_1280x720p_25fps_h264_6ch_256kbps_ddp_sub_0003.ts +0 -0
  240. package/test/test/assets/hls-ts-muxed-ec3-h264/prog_index.m3u8 +14 -0
  241. package/test/test/assets/hls-ts-muxed-mp3-h264/index.m3u8 +23 -0
  242. package/test/test/assets/hls-ts-muxed-mp3-h264/seg-1-v1-a1.ts +0 -0
  243. package/test/test/assets/hls-ts-muxed-mp3-h264/seg-2-v1-a1.ts +0 -0
  244. package/test/test/assets/hls-ts-muxed-mp3-h264/seg-3-v1-a1.ts +0 -0
  245. package/test/test/assets/hls-ts-muxed-mp3-h264/seg-4-v1-a1.ts +0 -0
  246. package/test/test/assets/hls-ts-muxed-mp3-h264/seg-5-v1-a1.ts +0 -0
  247. package/test/test/assets/hls-ts-muxed-mp3-h264/seg-6-v1-a1.ts +0 -0
  248. package/test/test/assets/hls-ts-muxed-mp3-h264/seg-7-v1-a1.ts +0 -0
  249. package/test/test/assets/hls-ts-muxed-mp3-h264/seg-8-v1-a1.ts +0 -0
  250. package/test/test/util/dash_parser_util.js +4 -0
  251. package/test/test/util/fake_ad_manager.js +20 -0
  252. package/test/test/util/fake_media_source_engine.js +13 -2
  253. package/test/test/util/fake_networking_engine.js +9 -1
  254. package/test/test/util/fake_segment_prefetch.js +3 -0
  255. package/test/test/util/manifest_generator.js +11 -3
  256. package/test/test/util/manifest_parser_util.js +14 -2
  257. package/test/test/util/mss_parser_util.js +4 -0
  258. package/test/test/util/offline_utils.js +2 -0
  259. package/test/test/util/simple_fakes.js +2 -2
  260. package/test/test/util/streaming_engine_util.js +10 -4
  261. package/test/test/util/test_scheme.js +6 -0
  262. package/test/test/util/ui_utils.js +4 -3
  263. package/test/text/mp4_ttml_parser_unit.js +4 -4
  264. package/test/text/srt_text_parser_unit.js +1 -1
  265. package/test/text/text_displayer_layout_unit.js +1 -1
  266. package/test/text/text_engine_unit.js +6 -0
  267. package/test/text/ttml_text_parser_unit.js +85 -2
  268. package/test/text/vtt_text_parser_unit.js +103 -31
  269. package/test/transmuxer/transmuxer_engine_integration.js +9 -0
  270. package/test/transmuxer/transmuxer_integration.js +150 -3
  271. package/test/ui/ad_ui_unit.js +2 -2
  272. package/test/ui/ui_customization_unit.js +17 -16
  273. package/test/ui/ui_integration.js +30 -20
  274. package/test/ui/ui_unit.js +28 -29
  275. package/test/util/buffer_utils_unit.js +1 -1
  276. package/test/util/content_steering_manager_unit.js +427 -0
  277. package/test/util/id3_utils_unit.js +52 -0
  278. package/test/util/stream_utils_unit.js +207 -169
  279. package/test/util/ts_parser_unit.js +3 -3
  280. package/third_party/closure-uri/uri.js +13 -1
  281. package/ui/audio_language_selection.js +9 -2
  282. package/ui/controls.js +125 -0
  283. package/ui/externs/ui.js +24 -2
  284. package/ui/language_utils.js +43 -8
  285. package/ui/less/range_elements.less +33 -0
  286. package/ui/locales/en.json +1 -0
  287. package/ui/locales/es-419.json +1 -0
  288. package/ui/locales/es.json +1 -0
  289. package/ui/locales/source.json +4 -0
  290. package/ui/localization.js +10 -0
  291. package/ui/pip_button.js +22 -120
  292. package/ui/remote_button.js +203 -0
  293. package/ui/resolution_selection.js +47 -10
  294. package/ui/seek_bar.js +296 -3
  295. package/ui/text_selection.js +2 -1
  296. package/ui/ui.js +11 -4
  297. package/demo/common/message_ids.js +0 -309
  298. package/demo/locales/en.json +0 -288
  299. package/demo/locales/source.json +0 -1146
  300. package/externs/mux.js +0 -69
  301. package/lib/lcevc/lcevc_dil.js +0 -152
  302. package/lib/routing/node.js +0 -23
  303. package/lib/routing/payload.js +0 -43
  304. package/lib/routing/walker.js +0 -587
  305. package/lib/transmuxer/muxjs_transmuxer.js +0 -242
  306. package/test/routing/walker_unit.js +0 -504
  307. package/test/transmuxer/muxjs_transmuxer_integration.js +0 -177
@@ -11,7 +11,6 @@
11
11
  */
12
12
 
13
13
  goog.require('ShakaDemoAssetInfo');
14
- goog.require('shakaDemo.MessageIds');
15
14
 
16
15
  goog.provide('shakaAssets');
17
16
 
@@ -24,34 +23,36 @@ goog.provide('shakaAssets');
24
23
  const shakaAssets = {};
25
24
 
26
25
 
27
- /** @enum {shakaDemo.MessageIds} */
26
+ /** @enum {string} */
28
27
  shakaAssets.Source = {
29
- CUSTOM: shakaDemo.MessageIds.CUSTOM,
30
- SHAKA: shakaDemo.MessageIds.SHAKA,
31
- AXINOM: shakaDemo.MessageIds.AXINOM,
32
- UNIFIED_STREAMING: shakaDemo.MessageIds.UNIFIED_STREAMING,
33
- DASH_IF: shakaDemo.MessageIds.DASH_IF,
34
- BITCODIN: shakaDemo.MessageIds.BITCODIN,
35
- METACDN: shakaDemo.MessageIds.METACDN,
36
- NIMBLE_STREAMER: shakaDemo.MessageIds.NIMBLE_STREAMER,
37
- AZURE_MEDIA_SERVICES: shakaDemo.MessageIds.AZURE_MEDIA_SERVICES,
38
- GPAC: shakaDemo.MessageIds.GPAC,
39
- UPLYNK: shakaDemo.MessageIds.UPLYNK,
40
- APPLE: shakaDemo.MessageIds.APPLE,
41
- IRT: shakaDemo.MessageIds.IRT,
42
- MICROSOFT: shakaDemo.MessageIds.MICROSOFT,
43
- VNOVA: shakaDemo.MessageIds.VNOVA,
28
+ CUSTOM: 'Custom',
29
+ SHAKA: 'Shaka',
30
+ AXINOM: 'Axinom',
31
+ UNIFIED_STREAMING: 'Unified Streaming',
32
+ DASH_IF: 'DASH-IF',
33
+ BITCODIN: 'Bitcodin',
34
+ METACDN: 'MetaCDN',
35
+ NIMBLE_STREAMER: 'Nimble Streamer',
36
+ AZURE_MEDIA_SERVICES: 'Azure Media Services',
37
+ GPAC: 'GPAC',
38
+ UPLYNK: 'Verizon Digital Media Services',
39
+ APPLE: 'Apple',
40
+ IRT: 'IRT',
41
+ MICROSOFT: 'Microsoft',
42
+ VNOVA: 'V-Nova',
43
+ AWS: 'AWS',
44
+ BRIGHTCOVE: 'Brightcove',
44
45
  };
45
46
 
46
47
 
47
- /** @enum {shakaDemo.MessageIds} */
48
+ /** @enum {string} */
48
49
  shakaAssets.KeySystem = {
49
- CLEAR_KEY: shakaDemo.MessageIds.CLEAR_KEY,
50
- FAIRPLAY: shakaDemo.MessageIds.FAIRPLAY,
51
- PLAYREADY: shakaDemo.MessageIds.PLAYREADY,
52
- WIDEVINE: shakaDemo.MessageIds.WIDEVINE,
53
- AES128: shakaDemo.MessageIds.AES128,
54
- CLEAR: shakaDemo.MessageIds.CLEAR,
50
+ CLEAR_KEY: 'Clear Key DRM',
51
+ FAIRPLAY: 'Fairplay DRM',
52
+ PLAYREADY: 'PlayReady DRM',
53
+ WIDEVINE: 'Widevine DRM',
54
+ AES128: 'AES-128 protection',
55
+ CLEAR: 'No DRM protection',
55
56
  };
56
57
 
57
58
 
@@ -95,65 +96,74 @@ shakaAssets.identifierForKeySystem = (keySystem) => {
95
96
  };
96
97
 
97
98
 
98
- /** @enum {shakaDemo.MessageIds} */
99
+ /** @enum {string} */
99
100
  shakaAssets.Feature = {
100
101
  // Set if the asset has a special trick mode track, for rewinding effects.
101
- TRICK_MODE: shakaDemo.MessageIds.TRICK_MODE,
102
- XLINK: shakaDemo.MessageIds.XLINK,
102
+ TRICK_MODE: 'Special trick mode track',
103
+ XLINK: 'XLink',
103
104
 
104
105
  // Set if the asset has any subtitle tracks.
105
- SUBTITLES: shakaDemo.MessageIds.SUBTITLES,
106
+ SUBTITLES: 'Subtitles',
106
107
  // Set if the asset has any closed caption tracks.
107
- CAPTIONS: shakaDemo.MessageIds.CAPTIONS,
108
+ CAPTIONS: 'Captions',
108
109
  // Set if the asset has multiple audio languages.
109
- MULTIPLE_LANGUAGES: shakaDemo.MessageIds.MULTIPLE_LANGUAGES,
110
+ MULTIPLE_LANGUAGES: 'Multiple languages',
110
111
  // Set if the asset is audio-only.
111
- AUDIO_ONLY: shakaDemo.MessageIds.AUDIO_ONLY,
112
+ AUDIO_ONLY: 'Audio only',
112
113
  // Set if the asset can be stored offline.
113
- OFFLINE: shakaDemo.MessageIds.OFFLINE,
114
+ OFFLINE: 'Downloadable',
114
115
  // A synthetic property used in the "all content" tab. Should not be given to
115
116
  // assets.
116
- STORED: shakaDemo.MessageIds.STORED,
117
+ STORED: 'Downloaded',
117
118
  // Set if the asset has ads. Autoset by calling setAdTagUri() on an asset.
118
119
  // Does not need to be set manually.
119
- ADS: shakaDemo.MessageIds.ADS,
120
+ ADS: 'Ads',
120
121
 
121
122
  // Set if the asset is a livestream.
122
- LIVE: shakaDemo.MessageIds.LIVE,
123
+ LIVE: 'Live',
123
124
  // A synthetic property used if the asset is VOD (not-livestream).
124
- VOD: shakaDemo.MessageIds.VOD,
125
+ VOD: 'VOD',
125
126
  // Set if the asset has at least one WebM stream.
126
- WEBM: shakaDemo.MessageIds.WEBM,
127
+ WEBM: 'WebM',
127
128
  // Set if the asset has at least one mp4 stream.
128
- MP4: shakaDemo.MessageIds.MP4,
129
+ MP4: 'MP4',
129
130
  // Set if the asset has at least one MPEG-2 TS stream.
130
- MP2TS: shakaDemo.MessageIds.MP2TS,
131
+ MP2TS: 'MPEG-2 TS',
131
132
  // Set if the asset has at least one containerless stream (AAC, etc).
132
- CONTAINERLESS: shakaDemo.MessageIds.CONTAINERLESS,
133
+ CONTAINERLESS: 'Containerless',
134
+
135
+ // Set if the asset requires Dolby Vision with MV-HEVC (for 3D) support.
136
+ DOLBY_VISION_3D: 'Dolby Vision 3D',
133
137
 
134
138
  // Set if the asset has at least one stream that is at least 720p.
135
- HIGH_DEFINITION: shakaDemo.MessageIds.HIGH_DEFINITION,
139
+ HIGH_DEFINITION: 'High definition',
136
140
  // Set if the asset has at least one stream that is at least 4k.
137
- ULTRA_HIGH_DEFINITION: shakaDemo.MessageIds.ULTRA_HIGH_DEFINITION,
141
+ ULTRA_HIGH_DEFINITION: 'Ultra-high definition',
138
142
 
139
143
  // Set if the asset has at least one stream that is surround sound.
140
- SURROUND: shakaDemo.MessageIds.SURROUND,
144
+ SURROUND: 'Surround sound',
141
145
 
142
146
  // Set if the asset is a MPEG-DASH manifest.
143
- DASH: shakaDemo.MessageIds.DASH,
147
+ DASH: 'DASH',
144
148
  // Set if the asset is an HLS manifest.
145
- HLS: shakaDemo.MessageIds.HLS,
149
+ HLS: 'HLS',
146
150
  // Set if the asset is an MSS manifest.
147
- MSS: shakaDemo.MessageIds.MSS,
151
+ MSS: 'MSS',
148
152
 
149
153
  // Set if the asset has at least one image stream.
150
- THUMBNAILS: shakaDemo.MessageIds.THUMBNAILS,
154
+ THUMBNAILS: 'Thumbnails',
155
+
156
+ // Set if the asset has at least one chapter stream.
157
+ CHAPTERS: 'Chapters',
151
158
 
152
159
  // Set if the asset has LCEVC.
153
- LCEVC: shakaDemo.MessageIds.LCEVC,
160
+ LCEVC: 'LCEVC',
154
161
 
155
162
  // Set if the asset has Low Latency mode.
156
- LOW_LATENCY: shakaDemo.MessageIds.LOW_LATENCY,
163
+ LOW_LATENCY: 'Low Latency',
164
+
165
+ // Set if the asset has Content Steering.
166
+ CONTENT_STEERING: 'Content Steering',
157
167
  };
158
168
 
159
169
 
@@ -178,6 +188,23 @@ shakaAssets.Feature = {
178
188
  * (optional) The codecs string, if needed to refine the MIME type.
179
189
  */
180
190
  shakaAssets.ExtraText;
191
+
192
+
193
+ /**
194
+ * @typedef {{
195
+ * uri: string,
196
+ * language: string,
197
+ * mime: string
198
+ * }}
199
+ *
200
+ * @property {string} uri
201
+ * The URI of the chapter.
202
+ * @property {string} language
203
+ * The language of the chapter (e.g. 'en').
204
+ * @property {string} mime
205
+ * The MIME type of the chapter (e.g. 'text/vtt')
206
+ */
207
+ shakaAssets.ExtraChapter;
181
208
  // End types and enums }}}
182
209
 
183
210
 
@@ -314,8 +341,7 @@ shakaAssets.testAssets = [
314
341
  /* source= */ shakaAssets.Source.SHAKA)
315
342
  .addFeature(shakaAssets.Feature.HLS)
316
343
  .addFeature(shakaAssets.Feature.MP4)
317
- .addFeature(shakaAssets.Feature.OFFLINE)
318
- .setMediaPlaylistFullMimeType('video/mp4; codecs="avc1.4d401f"'),
344
+ .addFeature(shakaAssets.Feature.OFFLINE),
319
345
  new ShakaDemoAssetInfo(
320
346
  /* name= */ 'Angel One (HLS, MP4, multilingual, Widevine)',
321
347
  /* iconUri= */ 'https://storage.googleapis.com/shaka-asset-icons/angel_one.png',
@@ -381,11 +407,17 @@ shakaAssets.testAssets = [
381
407
  /* manifestUri= */ 'https://storage.googleapis.com/shaka-demo-assets/sintel/dash.mpd',
382
408
  /* source= */ shakaAssets.Source.SHAKA)
383
409
  .addFeature(shakaAssets.Feature.DASH)
384
- .addFeature(shakaAssets.Feature.HIGH_DEFINITION)
410
+ .addFeature(shakaAssets.Feature.ULTRA_HIGH_DEFINITION)
385
411
  .addFeature(shakaAssets.Feature.MP4)
386
412
  .addFeature(shakaAssets.Feature.SUBTITLES)
387
413
  .addFeature(shakaAssets.Feature.WEBM)
388
- .addFeature(shakaAssets.Feature.OFFLINE),
414
+ .addFeature(shakaAssets.Feature.OFFLINE)
415
+ .addFeature(shakaAssets.Feature.CHAPTERS)
416
+ .addExtraChapter({
417
+ uri: 'https://storage.googleapis.com/shaka-demo-assets/sintel-chapters.vtt',
418
+ language: 'en',
419
+ mime: 'text/vtt',
420
+ }),
389
421
  new ShakaDemoAssetInfo(
390
422
  /* name= */ 'Sintel w/ trick mode (MP4 only, 720p)',
391
423
  /* iconUri= */ 'https://storage.googleapis.com/shaka-asset-icons/sintel.png',
@@ -404,7 +436,7 @@ shakaAssets.testAssets = [
404
436
  /* manifestUri= */ 'https://storage.googleapis.com/shaka-demo-assets/sintel-webm-only/dash.mpd',
405
437
  /* source= */ shakaAssets.Source.SHAKA)
406
438
  .addFeature(shakaAssets.Feature.DASH)
407
- .addFeature(shakaAssets.Feature.HIGH_DEFINITION)
439
+ .addFeature(shakaAssets.Feature.ULTRA_HIGH_DEFINITION)
408
440
  .addFeature(shakaAssets.Feature.SUBTITLES)
409
441
  .addFeature(shakaAssets.Feature.WEBM)
410
442
  .addFeature(shakaAssets.Feature.OFFLINE),
@@ -414,7 +446,7 @@ shakaAssets.testAssets = [
414
446
  /* manifestUri= */ 'https://storage.googleapis.com/shaka-demo-assets/sintel-mp4-only/dash.mpd',
415
447
  /* source= */ shakaAssets.Source.SHAKA)
416
448
  .addFeature(shakaAssets.Feature.DASH)
417
- .addFeature(shakaAssets.Feature.HIGH_DEFINITION)
449
+ .addFeature(shakaAssets.Feature.ULTRA_HIGH_DEFINITION)
418
450
  .addFeature(shakaAssets.Feature.MP4)
419
451
  .addFeature(shakaAssets.Feature.SUBTITLES)
420
452
  .addFeature(shakaAssets.Feature.OFFLINE),
@@ -425,7 +457,7 @@ shakaAssets.testAssets = [
425
457
  /* source= */ shakaAssets.Source.SHAKA)
426
458
  .addKeySystem(shakaAssets.KeySystem.WIDEVINE)
427
459
  .addFeature(shakaAssets.Feature.DASH)
428
- .addFeature(shakaAssets.Feature.HIGH_DEFINITION)
460
+ .addFeature(shakaAssets.Feature.ULTRA_HIGH_DEFINITION)
429
461
  .addFeature(shakaAssets.Feature.MP4)
430
462
  .addFeature(shakaAssets.Feature.SUBTITLES)
431
463
  .addFeature(shakaAssets.Feature.WEBM)
@@ -451,7 +483,7 @@ shakaAssets.testAssets = [
451
483
  .setAdTagUri(shakaAssets.AdTag.AD_POD_PREROLL_MIDROLL_POSTROLL)
452
484
  .addKeySystem(shakaAssets.KeySystem.WIDEVINE)
453
485
  .addFeature(shakaAssets.Feature.DASH)
454
- .addFeature(shakaAssets.Feature.HIGH_DEFINITION)
486
+ .addFeature(shakaAssets.Feature.ULTRA_HIGH_DEFINITION)
455
487
  .addFeature(shakaAssets.Feature.MP4)
456
488
  .addFeature(shakaAssets.Feature.SUBTITLES)
457
489
  .addFeature(shakaAssets.Feature.WEBM)
@@ -463,7 +495,7 @@ shakaAssets.testAssets = [
463
495
  /* manifestUri= */ 'https://storage.googleapis.com/shaka-demo-assets/sintel-mp4-wvtt/dash.mpd',
464
496
  /* source= */ shakaAssets.Source.SHAKA)
465
497
  .addFeature(shakaAssets.Feature.DASH)
466
- .addFeature(shakaAssets.Feature.HIGH_DEFINITION)
498
+ .addFeature(shakaAssets.Feature.ULTRA_HIGH_DEFINITION)
467
499
  .addFeature(shakaAssets.Feature.MP4)
468
500
  .addFeature(shakaAssets.Feature.SUBTITLES)
469
501
  .addFeature(shakaAssets.Feature.OFFLINE),
@@ -696,6 +728,21 @@ shakaAssets.testAssets = [
696
728
  .addFeature(shakaAssets.Feature.HLS)
697
729
  .addFeature(shakaAssets.Feature.LIVE)
698
730
  .addFeature(shakaAssets.Feature.MP4),
731
+ new ShakaDemoAssetInfo(
732
+ /* name= */ 'Multi-DRM (CBCS), multi-key',
733
+ /* iconUri= */ 'https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png',
734
+ /* manifestUri= */ 'https://media.axprod.net/TestVectors/MultiKey/Cmaf_h264_1080p_cbcs/manifest.mpd',
735
+ /* source= */ shakaAssets.Source.AXINOM)
736
+ .addKeySystem(shakaAssets.KeySystem.PLAYREADY)
737
+ .addKeySystem(shakaAssets.KeySystem.WIDEVINE)
738
+ .addFeature(shakaAssets.Feature.DASH)
739
+ .addFeature(shakaAssets.Feature.HIGH_DEFINITION)
740
+ .addFeature(shakaAssets.Feature.MP4)
741
+ .addFeature(shakaAssets.Feature.MULTIPLE_LANGUAGES)
742
+ .addFeature(shakaAssets.Feature.SUBTITLES)
743
+ .addLicenseServer('com.widevine.alpha', 'https://drm-widevine-licensing.axprod.net/AcquireLicense')
744
+ .addLicenseServer('com.microsoft.playready', 'https://drm-playready-licensing.axtest.net/AcquireLicense')
745
+ .addLicenseRequestHeader('X-AxDRM-Message', 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.ewogICJ2ZXJzaW9uIjogMSwKICAiY29tX2tleV9pZCI6ICI2OWU1NDA4OC1lOWUwLTQ1MzAtOGMxYS0xZWI2ZGNkMGQxNGUiLAogICJtZXNzYWdlIjogewogICAgInR5cGUiOiAiZW50aXRsZW1lbnRfbWVzc2FnZSIsCiAgICAidmVyc2lvbiI6IDIsCiAgICAibGljZW5zZSI6IHsKICAgICAgImFsbG93X3BlcnNpc3RlbmNlIjogdHJ1ZQogICAgfSwKICAgICJjb250ZW50X2tleXNfc291cmNlIjogewogICAgICAiaW5saW5lIjogWwogICAgICAgIHsKICAgICAgICAgICJpZCI6ICJiNTRlYzkxNC0xOTJkLTRlYTEtYWMxOS1mNDI5ZWI0OTgyNjgiLAogICAgICAgICAgImVuY3J5cHRlZF9rZXkiOiAiR1ZERnJZUU9Bb1kzZmpxVVVtamswQT09IiwKICAgICAgICAgICJ1c2FnZV9wb2xpY3kiOiAiUG9saWN5IEEiCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAiaWQiOiAiYzgzYzRlYTgtMGYyYS00NTIzLTg1MWMtZmJlY2NkYzBmMjAyIiwKICAgICAgICAgICJlbmNyeXB0ZWRfa2V5IjogIlRKZGZsWmJLYmZXQXl5K1dta21UUEE9PSIsCiAgICAgICAgICAidXNhZ2VfcG9saWN5IjogIlBvbGljeSBBIgogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgImlkIjogImM4NjhjNzAyLWM3MWItNDA2NC1hZTJiLWMyNGY3Y2MxMDc5MiIsCiAgICAgICAgICAiZW5jcnlwdGVkX2tleSI6ICJ4QXJpUkpOcUFTdXp6RExDRzNXSjdnPT0iLAogICAgICAgICAgInVzYWdlX3BvbGljeSI6ICJQb2xpY3kgQSIKICAgICAgICB9CiAgICAgIF0KICAgIH0sCiAgICAiY29udGVudF9rZXlfdXNhZ2VfcG9saWNpZXMiOiBbCiAgICAgIHsKICAgICAgICAibmFtZSI6ICJQb2xpY3kgQSIsCiAgICAgICAgInBsYXlyZWFkeSI6IHsKICAgICAgICAgICJtaW5fZGV2aWNlX3NlY3VyaXR5X2xldmVsIjogMTUwLAogICAgICAgICAgInBsYXlfZW5hYmxlcnMiOiBbCiAgICAgICAgICAgICI3ODY2MjdEOC1DMkE2LTQ0QkUtOEY4OC0wOEFFMjU1QjAxQTciCiAgICAgICAgICBdCiAgICAgICAgfQogICAgICB9CiAgICBdCiAgfQp9.XC0YIbZpKGFc3IZROklP4LvISc6cZGpE9UL-XcpcqWg'),
699
746
  // End Axinom assets }}}
700
747
 
701
748
  // Unified Streaming assets {{{
@@ -920,7 +967,6 @@ shakaAssets.testAssets = [
920
967
  /* manifestUri= */ 'https://livesim2.dashif.org/livesim2/testpic_2s/Manifest_thumbs.mpd',
921
968
  /* source= */ shakaAssets.Source.DASH_IF)
922
969
  .addFeature(shakaAssets.Feature.DASH)
923
- .addFeature(shakaAssets.Feature.ULTRA_HIGH_DEFINITION)
924
970
  .addFeature(shakaAssets.Feature.MP4)
925
971
  .addFeature(shakaAssets.Feature.LIVE)
926
972
  .addFeature(shakaAssets.Feature.THUMBNAILS),
@@ -964,7 +1010,7 @@ shakaAssets.testAssets = [
964
1010
  /* source= */ shakaAssets.Source.BITCODIN)
965
1011
  // Disabled because the audio playlist ends about 9 seconds early somehow.
966
1012
  .markAsDisabled()
967
- .addFeature(shakaAssets.Feature.HIGH_DEFINITION)
1013
+ .addFeature(shakaAssets.Feature.ULTRA_HIGH_DEFINITION)
968
1014
  .addFeature(shakaAssets.Feature.HLS)
969
1015
  .addFeature(shakaAssets.Feature.MP2TS)
970
1016
  .addFeature(shakaAssets.Feature.OFFLINE),
@@ -978,6 +1024,25 @@ shakaAssets.testAssets = [
978
1024
  .addFeature(shakaAssets.Feature.MP4)
979
1025
  .addFeature(shakaAssets.Feature.THUMBNAILS)
980
1026
  .addExtraThumbnail('https://cdn.bitmovin.com/content/assets/art-of-motion-dash-hls-progressive/thumbnails/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.vtt'),
1027
+ new ShakaDemoAssetInfo(
1028
+ /* name= */ 'Art of Motion (HLS) (external thumbnails)',
1029
+ /* iconUri= */ 'https://storage.googleapis.com/shaka-asset-icons/art_of_motion.png',
1030
+ /* manifestUri= */ 'https://cdn.bitmovin.com/content/assets/art-of-motion-dash-hls-progressive/m3u8s/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.m3u8',
1031
+ /* source= */ shakaAssets.Source.BITCODIN)
1032
+ .addFeature(shakaAssets.Feature.HLS)
1033
+ .addFeature(shakaAssets.Feature.HIGH_DEFINITION)
1034
+ .addFeature(shakaAssets.Feature.MP2TS)
1035
+ .addFeature(shakaAssets.Feature.THUMBNAILS)
1036
+ .addExtraThumbnail('https://cdn.bitmovin.com/content/assets/art-of-motion-dash-hls-progressive/thumbnails/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.vtt'),
1037
+ new ShakaDemoAssetInfo(
1038
+ /* name= */ 'Art of Motion (MP4) (external thumbnails)',
1039
+ /* iconUri= */ 'https://storage.googleapis.com/shaka-asset-icons/art_of_motion.png',
1040
+ /* manifestUri= */ 'https://cdn.bitmovin.com/content/assets/art-of-motion-dash-hls-progressive/MI201109210084_mpeg-4_hd_high_1080p25_10mbits.mp4',
1041
+ /* source= */ shakaAssets.Source.BITCODIN)
1042
+ .addFeature(shakaAssets.Feature.HIGH_DEFINITION)
1043
+ .addFeature(shakaAssets.Feature.MP4)
1044
+ .addFeature(shakaAssets.Feature.THUMBNAILS)
1045
+ .addExtraThumbnail('https://cdn.bitmovin.com/content/assets/art-of-motion-dash-hls-progressive/thumbnails/f08e80da-bf1d-4e3d-8899-f0f6155f6efa.vtt'),
981
1046
  // End bitcodin assets }}}
982
1047
 
983
1048
  // MetaCDN assets {{{
@@ -1298,6 +1363,25 @@ shakaAssets.testAssets = [
1298
1363
  .addFeature(shakaAssets.Feature.CONTAINERLESS)
1299
1364
  .addFeature(shakaAssets.Feature.HIGH_DEFINITION)
1300
1365
  .addFeature(shakaAssets.Feature.OFFLINE),
1366
+ new ShakaDemoAssetInfo(
1367
+ /* name= */ 'Advanced stream HLS Stream (UHD/4K/HDR/ATMOS)',
1368
+ /* iconUri= */ 'https://storage.googleapis.com/shaka-asset-icons/becoming_you.png',
1369
+ /* manifestUri= */ 'https://devstreaming-cdn.apple.com/videos/streaming/examples/adv_dv_atmos/main.m3u8',
1370
+ /* source= */ shakaAssets.Source.APPLE)
1371
+ .addFeature(shakaAssets.Feature.HLS)
1372
+ .addFeature(shakaAssets.Feature.MP4)
1373
+ .addFeature(shakaAssets.Feature.ULTRA_HIGH_DEFINITION)
1374
+ .addFeature(shakaAssets.Feature.OFFLINE)
1375
+ .addFeature(shakaAssets.Feature.THUMBNAILS),
1376
+ new ShakaDemoAssetInfo(
1377
+ /* name= */ '3D movie stream',
1378
+ /* iconUri= */ '',
1379
+ /* manifestUri= */ 'https://devstreaming-cdn.apple.com/videos/streaming/examples/historic_planet_content_2023-10-26-3d-video/main.m3u8',
1380
+ /* source= */ shakaAssets.Source.APPLE)
1381
+ .addFeature(shakaAssets.Feature.HLS)
1382
+ .addFeature(shakaAssets.Feature.ULTRA_HIGH_DEFINITION)
1383
+ .addFeature(shakaAssets.Feature.DOLBY_VISION_3D)
1384
+ .addFeature(shakaAssets.Feature.OFFLINE),
1301
1385
  // }}}
1302
1386
 
1303
1387
  // IRT assets {{{
@@ -1364,6 +1448,31 @@ shakaAssets.testAssets = [
1364
1448
  /* source= */ shakaAssets.Source.VNOVA)
1365
1449
  .addFeature(shakaAssets.Feature.DASH)
1366
1450
  .addFeature(shakaAssets.Feature.HIGH_DEFINITION)
1451
+ .addFeature(shakaAssets.Feature.MP2TS)
1452
+ .addFeature(shakaAssets.Feature.OFFLINE)
1453
+ .addFeature(shakaAssets.Feature.LCEVC)
1454
+ .addDescription('LCEVC Enhanced eSports content selection.')
1455
+ .setExtraConfig({
1456
+ streaming: {
1457
+ useNativeHlsOnSafari: false,
1458
+ },
1459
+ mediaSource: {
1460
+ forceTransmux: true,
1461
+ },
1462
+ lcevc: {
1463
+ enabled: true,
1464
+ dynamicPerformanceScaling: true,
1465
+ logLevel: 0,
1466
+ drawLogo: false,
1467
+ },
1468
+ }),
1469
+ new ShakaDemoAssetInfo(
1470
+ /* name= */ 'Tears of Steel LCEVC H264 (HLS, MP4)',
1471
+ /* iconUri= */ 'https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png',
1472
+ /* manifestUri= */ 'https://d3mfda3gpj3dw1.cloudfront.net/vn2LvEps745ShGtQ/master.m3u8',
1473
+ /* source= */ shakaAssets.Source.VNOVA)
1474
+ .addFeature(shakaAssets.Feature.HLS)
1475
+ .addFeature(shakaAssets.Feature.HIGH_DEFINITION)
1367
1476
  .addFeature(shakaAssets.Feature.MP4)
1368
1477
  .addFeature(shakaAssets.Feature.OFFLINE)
1369
1478
  .addFeature(shakaAssets.Feature.LCEVC)
@@ -1442,5 +1551,85 @@ shakaAssets.testAssets = [
1442
1551
  },
1443
1552
  }),
1444
1553
  // }}}
1554
+
1555
+ // AWS assets {{{
1556
+ /* MediaTailor Contents */
1557
+ new ShakaDemoAssetInfo(
1558
+ /* name= */ 'Media Tailor HLS',
1559
+ /* iconUri= */ 'https://storage.googleapis.com/shaka-asset-icons/sing.png',
1560
+ /* manifestUri= */ 'https://ad391cc0d55b44c6a86d232548adc225.mediatailor.us-east-1.amazonaws.com/v1/session/d02fedbbc5a68596164208dd24e9b48aa60dadc7/singssai/master.m3u8',
1561
+ /* source= */ shakaAssets.Source.AWS)
1562
+ .addFeature(shakaAssets.Feature.HLS)
1563
+ .addFeature(shakaAssets.Feature.HIGH_DEFINITION)
1564
+ .addFeature(shakaAssets.Feature.MP2TS)
1565
+ .setMediaTailor('https://ad391cc0d55b44c6a86d232548adc225.mediatailor.us-east-1.amazonaws.com/v1/session/d02fedbbc5a68596164208dd24e9b48aa60dadc7/singssai/master.m3u8'),
1566
+ new ShakaDemoAssetInfo(
1567
+ /* name= */ 'Media Tailor Live HLS',
1568
+ /* iconUri= */ 'https://storage.googleapis.com/shaka-asset-icons/big_buck_bunny.png',
1569
+ /* manifestUri= */ 'https://d305rncpy6ne2q.cloudfront.net/v1/session/94063eadf7d8c56e9e2edd84fdf897826a70d0df/SFP-MediaTailor-Live-HLS-DASH/channel/sfp-channel1/hls.m3u8',
1570
+ /* source= */ shakaAssets.Source.AWS)
1571
+ .addFeature(shakaAssets.Feature.HLS)
1572
+ .addFeature(shakaAssets.Feature.HIGH_DEFINITION)
1573
+ .addFeature(shakaAssets.Feature.MP2TS)
1574
+ .addFeature(shakaAssets.Feature.LIVE)
1575
+ .setMediaTailor('https://d305rncpy6ne2q.cloudfront.net/v1/session/94063eadf7d8c56e9e2edd84fdf897826a70d0df/SFP-MediaTailor-Live-HLS-DASH/channel/sfp-channel1/hls.m3u8'),
1576
+ new ShakaDemoAssetInfo(
1577
+ /* name= */ 'Media Tailor DASH',
1578
+ /* iconUri= */ 'https://storage.googleapis.com/shaka-asset-icons/big_buck_bunny.png',
1579
+ /* manifestUri= */ 'https://d305rncpy6ne2q.cloudfront.net/v1/session/94063eadf7d8c56e9e2edd84fdf897826a70d0df/SFP-MediaTailor-VOD-HLS-DASH/out/v1/b94f3611978f419985a18335bac9d9cb/ddb73bf548a44551a0059c346226445a/eaa5485198bf497284559efb8172425e/index.mpd',
1580
+ /* source= */ shakaAssets.Source.AWS)
1581
+ .addFeature(shakaAssets.Feature.DASH)
1582
+ .addFeature(shakaAssets.Feature.HIGH_DEFINITION)
1583
+ .addFeature(shakaAssets.Feature.MP4)
1584
+ .setMediaTailor('https://d305rncpy6ne2q.cloudfront.net/v1/session/94063eadf7d8c56e9e2edd84fdf897826a70d0df/SFP-MediaTailor-VOD-HLS-DASH/out/v1/b94f3611978f419985a18335bac9d9cb/ddb73bf548a44551a0059c346226445a/eaa5485198bf497284559efb8172425e/index.mpd',
1585
+ {
1586
+ adsParams: {
1587
+ assetid: 'test2',
1588
+ podduration: '15',
1589
+ },
1590
+ }),
1591
+ new ShakaDemoAssetInfo(
1592
+ /* name= */ 'Media Tailor Live DASH',
1593
+ /* iconUri= */ 'https://storage.googleapis.com/shaka-asset-icons/big_buck_bunny.png',
1594
+ /* manifestUri= */ 'https://d305rncpy6ne2q.cloudfront.net/v1/session/94063eadf7d8c56e9e2edd84fdf897826a70d0df/SFP-MediaTailor-Live-HLS-DASH/channel/sfp-channel1/dash.mpd',
1595
+ /* source= */ shakaAssets.Source.AWS)
1596
+ .addFeature(shakaAssets.Feature.DASH)
1597
+ .addFeature(shakaAssets.Feature.HIGH_DEFINITION)
1598
+ .addFeature(shakaAssets.Feature.MP4)
1599
+ .addFeature(shakaAssets.Feature.LIVE)
1600
+ .setMediaTailor('https://d305rncpy6ne2q.cloudfront.net/v1/session/94063eadf7d8c56e9e2edd84fdf897826a70d0df/SFP-MediaTailor-Live-HLS-DASH/channel/sfp-channel1/dash.mpd'),
1601
+ new ShakaDemoAssetInfo(
1602
+ /* name= */ 'Media Tailor Live HLS with overlays',
1603
+ /* iconUri= */ 'https://storage.googleapis.com/shaka-asset-icons/re_mars.png',
1604
+ /* manifestUri= */ 'https://d305rncpy6ne2q.cloudfront.net/v1/session/94063eadf7d8c56e9e2edd84fdf897826a70d0df/SFP-MediaTailor-Live-HLS-Overlays/channel/sfp-channel2/hls.m3u8',
1605
+ /* source= */ shakaAssets.Source.AWS)
1606
+ .addFeature(shakaAssets.Feature.HLS)
1607
+ .addFeature(shakaAssets.Feature.HIGH_DEFINITION)
1608
+ .addFeature(shakaAssets.Feature.MP2TS)
1609
+ .addFeature(shakaAssets.Feature.LIVE)
1610
+ .setMediaTailor('https://d305rncpy6ne2q.cloudfront.net/v1/session/94063eadf7d8c56e9e2edd84fdf897826a70d0df/SFP-MediaTailor-Live-HLS-Overlays/channel/sfp-channel2/hls.m3u8'),
1611
+ // }}}
1612
+
1613
+ // Brightcove assets {{{
1614
+ /* Brightcove Contents */
1615
+ new ShakaDemoAssetInfo(
1616
+ /* name= */ 'Content Steering HLS',
1617
+ /* iconUri= */ 'https://storage.googleapis.com/shaka-asset-icons/big_buck_bunny.png',
1618
+ /* manifestUri= */ 'https://fastly.content-steering.com/bbb_hls/master_steering_fastly_https.m3u8',
1619
+ /* source= */ shakaAssets.Source.BRIGHTCOVE)
1620
+ .addFeature(shakaAssets.Feature.HLS)
1621
+ .addFeature(shakaAssets.Feature.HIGH_DEFINITION)
1622
+ .addFeature(shakaAssets.Feature.MP4)
1623
+ .addFeature(shakaAssets.Feature.CONTENT_STEERING),
1624
+ new ShakaDemoAssetInfo(
1625
+ /* name= */ 'Content Steering DASH',
1626
+ /* iconUri= */ 'https://storage.googleapis.com/shaka-asset-icons/big_buck_bunny.png',
1627
+ /* manifestUri= */ 'https://fastly.content-steering.com/bbb/playlist_steering_fastly_https_cdn-a_cdn-c_cdn-b.mpd',
1628
+ /* source= */ shakaAssets.Source.BRIGHTCOVE)
1629
+ .addFeature(shakaAssets.Feature.DASH)
1630
+ .addFeature(shakaAssets.Feature.HIGH_DEFINITION)
1631
+ .addFeature(shakaAssets.Feature.MP4)
1632
+ .addFeature(shakaAssets.Feature.CONTENT_STEERING),
1633
+ // }}}
1445
1634
  ];
1446
1635
  /* eslint-enable max-len */