shaka-player 4.4.2 → 4.5.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 (202) hide show
  1. package/.github/workflows/release-please.yaml +2 -27
  2. package/CHANGELOG.md +67 -25
  3. package/README.md +16 -10
  4. package/demo/asset_card.js +18 -21
  5. package/demo/cast_receiver/index.html +0 -1
  6. package/demo/close_button.js +0 -3
  7. package/demo/common/asset.js +27 -5
  8. package/demo/common/assets.js +150 -52
  9. package/demo/config.js +192 -253
  10. package/demo/custom.js +39 -98
  11. package/demo/front.js +7 -10
  12. package/demo/index.html +19 -22
  13. package/demo/input.js +6 -11
  14. package/demo/input_container.js +8 -9
  15. package/demo/main.js +52 -124
  16. package/demo/search.js +23 -35
  17. package/demo/service_worker.js +0 -3
  18. package/demo/tooltip.js +3 -5
  19. package/demo/visualizer.js +3 -5
  20. package/demo/visualizer_button.js +1 -20
  21. package/dist/demo.compiled.debug.js +187 -211
  22. package/dist/demo.compiled.debug.map +4 -4
  23. package/dist/demo.compiled.js +187 -211
  24. package/dist/demo.compiled.map +4 -4
  25. package/dist/deps.js +27 -24
  26. package/dist/locales.js +31 -31
  27. package/dist/receiver.compiled.debug.js +42 -61
  28. package/dist/receiver.compiled.debug.map +4 -4
  29. package/dist/receiver.compiled.js +42 -61
  30. package/dist/receiver.compiled.map +4 -4
  31. package/dist/shaka-player.compiled.d.ts +728 -365
  32. package/dist/shaka-player.compiled.debug.d.ts +728 -365
  33. package/dist/shaka-player.compiled.debug.externs.js +475 -51
  34. package/dist/shaka-player.compiled.debug.js +576 -480
  35. package/dist/shaka-player.compiled.debug.map +4 -4
  36. package/dist/shaka-player.compiled.externs.js +475 -51
  37. package/dist/shaka-player.compiled.js +1117 -1056
  38. package/dist/shaka-player.compiled.map +4 -4
  39. package/dist/shaka-player.ui.d.ts +783 -410
  40. package/dist/shaka-player.ui.debug.d.ts +783 -410
  41. package/dist/shaka-player.ui.debug.externs.js +496 -51
  42. package/dist/shaka-player.ui.debug.js +647 -542
  43. package/dist/shaka-player.ui.debug.map +4 -4
  44. package/dist/shaka-player.ui.externs.js +496 -51
  45. package/dist/shaka-player.ui.js +1260 -1194
  46. package/dist/shaka-player.ui.map +4 -4
  47. package/docs/design/lcevc-integration.md +14 -14
  48. package/docs/tutorials/faq.md +27 -55
  49. package/docs/tutorials/index.json +2 -1
  50. package/docs/tutorials/lcevc.md +118 -0
  51. package/docs/tutorials/offline.md +1 -1
  52. package/docs/tutorials/ui-customization.md +4 -0
  53. package/externs/css_style_declaration.js +19 -0
  54. package/externs/lcevc.js +37 -13
  55. package/externs/media_remote.js +68 -0
  56. package/externs/mediatailor.js +193 -0
  57. package/externs/pictureinpicture.js +11 -0
  58. package/externs/shaka/ads.js +27 -0
  59. package/externs/shaka/manifest.js +10 -5
  60. package/externs/shaka/manifest_parser.js +7 -1
  61. package/externs/shaka/offline.js +4 -0
  62. package/externs/shaka/player.js +12 -1
  63. package/karma.conf.js +7 -3
  64. package/lib/abr/simple_abr_manager.js +43 -3
  65. package/lib/ads/ad_manager.js +104 -50
  66. package/lib/ads/media_tailor_ad.js +297 -0
  67. package/lib/ads/media_tailor_ad_manager.js +828 -0
  68. package/lib/cea/ts_cea_parser.js +15 -2
  69. package/lib/config/codec_switching_strategy.js +24 -0
  70. package/lib/dash/content_protection.js +120 -2
  71. package/lib/dash/dash_parser.js +79 -13
  72. package/lib/dash/mpd_utils.js +10 -6
  73. package/lib/dash/segment_base.js +13 -5
  74. package/lib/dash/segment_list.js +13 -5
  75. package/lib/dash/segment_template.js +43 -85
  76. package/lib/dependencies/all.js +8 -7
  77. package/lib/hls/hls_parser.js +101 -37
  78. package/lib/lcevc/lcevc_dec.js +220 -0
  79. package/lib/media/adaptation_set.js +22 -11
  80. package/lib/media/adaptation_set_criteria.js +25 -7
  81. package/lib/media/media_source_engine.js +215 -27
  82. package/lib/media/segment_index.js +5 -5
  83. package/lib/media/segment_reference.js +10 -5
  84. package/lib/media/streaming_engine.js +44 -39
  85. package/lib/mss/mss_parser.js +1 -0
  86. package/lib/net/networking_engine.js +1 -0
  87. package/lib/offline/indexeddb/v1_storage_cell.js +1 -0
  88. package/lib/offline/indexeddb/v2_storage_cell.js +1 -0
  89. package/lib/offline/manifest_converter.js +1 -0
  90. package/lib/offline/storage.js +3 -0
  91. package/lib/player.js +142 -72
  92. package/lib/routing/payload.js +5 -1
  93. package/lib/text/cue.js +62 -47
  94. package/lib/text/ttml_text_parser.js +17 -0
  95. package/lib/text/ui_text_displayer.js +4 -0
  96. package/lib/text/vtt_text_parser.js +35 -22
  97. package/lib/transmuxer/h265.js +862 -0
  98. package/lib/transmuxer/mpeg_ts_transmuxer.js +3 -2
  99. package/lib/transmuxer/ts_transmuxer.js +160 -15
  100. package/lib/util/cmcd_manager.js +6 -1
  101. package/lib/util/error.js +28 -9
  102. package/lib/util/exp_golomb.js +30 -2
  103. package/lib/util/fake_event.js +3 -0
  104. package/lib/util/manifest_parser_utils.js +10 -4
  105. package/lib/util/mp4_generator.js +4 -4
  106. package/lib/util/periods.js +2 -0
  107. package/lib/util/platform.js +54 -0
  108. package/lib/util/player_configuration.js +8 -0
  109. package/lib/util/state_history.js +6 -2
  110. package/lib/util/stream_utils.js +133 -217
  111. package/lib/util/ts_parser.js +229 -43
  112. package/maintained-branches.md +3 -2
  113. package/package.json +4 -6
  114. package/roadmap.md +15 -5
  115. package/shaka-player.uncompiled.js +2 -1
  116. package/support.html +0 -1
  117. package/test/cast/cast_receiver_integration.js +47 -0
  118. package/test/codec_switching/codec_switching_integration.js +181 -0
  119. package/test/dash/dash_parser_content_protection_unit.js +2 -0
  120. package/test/dash/dash_parser_integration.js +73 -0
  121. package/test/dash/dash_parser_live_unit.js +2 -0
  122. package/test/dash/dash_parser_manifest_unit.js +47 -0
  123. package/test/dash/dash_parser_segment_base_unit.js +7 -0
  124. package/test/dash/dash_parser_segment_list_unit.js +23 -17
  125. package/test/dash/dash_parser_segment_template_unit.js +49 -0
  126. package/test/demo/demo_unit.js +0 -16
  127. package/test/hls/hls_live_unit.js +35 -0
  128. package/test/hls/hls_parser_unit.js +8 -61
  129. package/test/media/adaptation_set_criteria_unit.js +118 -0
  130. package/test/media/adaptation_set_unit.js +1 -0
  131. package/test/media/media_source_engine_unit.js +165 -1
  132. package/test/media/segment_index_unit.js +4 -4
  133. package/test/media/segment_prefetch_unit.js +1 -1
  134. package/test/media/streaming_engine_unit.js +17 -17
  135. package/test/mss/mss_parser_unit.js +2 -0
  136. package/test/offline/manifest_convert_unit.js +5 -0
  137. package/test/offline/storage_integration.js +1 -4
  138. package/test/player_unit.js +102 -131
  139. package/test/routing/walker_unit.js +1 -0
  140. package/test/test/assets/dash-aes-128/Fragments(video=0,format=mpd-time-csf) +0 -0
  141. package/test/test/assets/dash-aes-128/Fragments(video=20000000,format=mpd-time-csf) +0 -0
  142. package/test/test/assets/dash-aes-128/Fragments(video=40000000,format=mpd-time-csf) +0 -0
  143. package/test/test/assets/dash-aes-128/Fragments(video=60000000,format=mpd-time-csf) +0 -0
  144. package/test/test/assets/dash-aes-128/Fragments(video=i,format=mpd-time-csf) +0 -0
  145. package/test/test/assets/dash-aes-128/dash.mpd +18 -0
  146. package/test/test/assets/dash-aes-128/license +1 -0
  147. package/test/test/assets/dash-multi-codec/audio_en_2c_128k_aac.mp4 +0 -0
  148. package/test/test/assets/dash-multi-codec/audio_es_2c_64k_opus.webm +0 -0
  149. package/test/test/assets/dash-multi-codec/dash.mpd +32 -0
  150. package/test/test/assets/dash-multi-codec/video_144p_108k_h264.mp4 +0 -0
  151. package/test/test/assets/hls-ts-h265/0.ts +0 -0
  152. package/test/test/assets/hls-ts-h265/hevc.m3u8 +6 -0
  153. package/test/test/assets/hls-ts-h265/index.m3u8 +7 -0
  154. package/test/test/assets/hls-ts-muxed-aac-h265/0.ts +0 -0
  155. package/test/test/assets/hls-ts-muxed-aac-h265/1.ts +0 -0
  156. package/test/test/assets/hls-ts-muxed-aac-h265/media.m3u8 +9 -0
  157. package/test/test/assets/hls-ts-muxed-ac3-h264/media.m3u8 +24 -0
  158. package/test/test/assets/hls-ts-muxed-ac3-h264/s_00000.ts +0 -0
  159. package/test/test/assets/hls-ts-muxed-ac3-h264/s_00001.ts +0 -0
  160. package/test/test/assets/hls-ts-muxed-ac3-h264/s_00002.ts +0 -0
  161. package/test/test/assets/hls-ts-muxed-ac3-h264/s_00003.ts +0 -0
  162. package/test/test/assets/hls-ts-muxed-ac3-h264/s_00004.ts +0 -0
  163. package/test/test/assets/hls-ts-muxed-ac3-h264/s_00005.ts +0 -0
  164. package/test/test/assets/hls-ts-muxed-ec3-h264/ChID_voices_1280x720p_25fps_h264_6ch_256kbps_ddp_sub_0000.ts +0 -0
  165. package/test/test/assets/hls-ts-muxed-ec3-h264/ChID_voices_1280x720p_25fps_h264_6ch_256kbps_ddp_sub_0001.ts +0 -0
  166. package/test/test/assets/hls-ts-muxed-ec3-h264/ChID_voices_1280x720p_25fps_h264_6ch_256kbps_ddp_sub_0002.ts +0 -0
  167. package/test/test/assets/hls-ts-muxed-ec3-h264/ChID_voices_1280x720p_25fps_h264_6ch_256kbps_ddp_sub_0003.ts +0 -0
  168. package/test/test/assets/hls-ts-muxed-ec3-h264/prog_index.m3u8 +14 -0
  169. package/test/test/assets/hls-ts-muxed-mp3-h264/index.m3u8 +23 -0
  170. package/test/test/assets/hls-ts-muxed-mp3-h264/seg-1-v1-a1.ts +0 -0
  171. package/test/test/assets/hls-ts-muxed-mp3-h264/seg-2-v1-a1.ts +0 -0
  172. package/test/test/assets/hls-ts-muxed-mp3-h264/seg-3-v1-a1.ts +0 -0
  173. package/test/test/assets/hls-ts-muxed-mp3-h264/seg-4-v1-a1.ts +0 -0
  174. package/test/test/assets/hls-ts-muxed-mp3-h264/seg-5-v1-a1.ts +0 -0
  175. package/test/test/assets/hls-ts-muxed-mp3-h264/seg-6-v1-a1.ts +0 -0
  176. package/test/test/assets/hls-ts-muxed-mp3-h264/seg-7-v1-a1.ts +0 -0
  177. package/test/test/assets/hls-ts-muxed-mp3-h264/seg-8-v1-a1.ts +0 -0
  178. package/test/test/util/dash_parser_util.js +20 -7
  179. package/test/test/util/fake_ad_manager.js +20 -0
  180. package/test/test/util/fake_media_source_engine.js +8 -2
  181. package/test/test/util/manifest_generator.js +7 -3
  182. package/test/test/util/mss_parser_util.js +4 -0
  183. package/test/test/util/offline_utils.js +1 -0
  184. package/test/test/util/streaming_engine_util.js +7 -4
  185. package/test/text/ttml_text_parser_unit.js +52 -0
  186. package/test/text/vtt_text_parser_unit.js +105 -48
  187. package/test/transmuxer/transmuxer_integration.js +121 -4
  188. package/test/ui/ui_unit.js +3 -10
  189. package/test/util/stream_utils_unit.js +208 -74
  190. package/test/util/ts_parser_unit.js +1 -1
  191. package/ui/controls.js +125 -0
  192. package/ui/externs/ui.js +8 -1
  193. package/ui/pip_button.js +22 -120
  194. package/ui/remote_button.js +201 -0
  195. package/ui/ui.js +5 -2
  196. package/demo/common/message_ids.js +0 -309
  197. package/demo/locales/en.json +0 -287
  198. package/demo/locales/source.json +0 -1142
  199. package/externs/mux.js +0 -69
  200. package/lib/lcevc/lcevc_dil.js +0 -152
  201. package/lib/transmuxer/muxjs_transmuxer.js +0 -242
  202. 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,33 +23,35 @@ 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
44
  };
45
45
 
46
46
 
47
- /** @enum {shakaDemo.MessageIds} */
47
+ /** @enum {string} */
48
48
  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
- CLEAR: shakaDemo.MessageIds.CLEAR,
49
+ CLEAR_KEY: 'Clear Key DRM',
50
+ FAIRPLAY: 'Fairplay DRM',
51
+ PLAYREADY: 'PlayReady DRM',
52
+ WIDEVINE: 'Widevine DRM',
53
+ AES128: 'AES-128 protection',
54
+ CLEAR: 'No DRM protection',
54
55
  };
55
56
 
56
57
 
@@ -88,70 +89,71 @@ shakaAssets.identifierForKeySystem = (keySystem) => {
88
89
  case KeySystem.FAIRPLAY: return 'com.apple.fps';
89
90
  case KeySystem.PLAYREADY: return 'com.microsoft.playready';
90
91
  case KeySystem.WIDEVINE: return 'com.widevine.alpha';
92
+ case KeySystem.AES128: return 'aes128';
91
93
  default: return 'no drm protection';
92
94
  }
93
95
  };
94
96
 
95
97
 
96
- /** @enum {shakaDemo.MessageIds} */
98
+ /** @enum {string} */
97
99
  shakaAssets.Feature = {
98
100
  // Set if the asset has a special trick mode track, for rewinding effects.
99
- TRICK_MODE: shakaDemo.MessageIds.TRICK_MODE,
100
- XLINK: shakaDemo.MessageIds.XLINK,
101
+ TRICK_MODE: 'Special trick mode track',
102
+ XLINK: 'XLink',
101
103
 
102
104
  // Set if the asset has any subtitle tracks.
103
- SUBTITLES: shakaDemo.MessageIds.SUBTITLES,
105
+ SUBTITLES: 'Subtitles',
104
106
  // Set if the asset has any closed caption tracks.
105
- CAPTIONS: shakaDemo.MessageIds.CAPTIONS,
107
+ CAPTIONS: 'Captions',
106
108
  // Set if the asset has multiple audio languages.
107
- MULTIPLE_LANGUAGES: shakaDemo.MessageIds.MULTIPLE_LANGUAGES,
109
+ MULTIPLE_LANGUAGES: 'Multiple languages',
108
110
  // Set if the asset is audio-only.
109
- AUDIO_ONLY: shakaDemo.MessageIds.AUDIO_ONLY,
111
+ AUDIO_ONLY: 'Audio only',
110
112
  // Set if the asset can be stored offline.
111
- OFFLINE: shakaDemo.MessageIds.OFFLINE,
113
+ OFFLINE: 'Downloadable',
112
114
  // A synthetic property used in the "all content" tab. Should not be given to
113
115
  // assets.
114
- STORED: shakaDemo.MessageIds.STORED,
116
+ STORED: 'Downloaded',
115
117
  // Set if the asset has ads. Autoset by calling setAdTagUri() on an asset.
116
118
  // Does not need to be set manually.
117
- ADS: shakaDemo.MessageIds.ADS,
119
+ ADS: 'Ads',
118
120
 
119
121
  // Set if the asset is a livestream.
120
- LIVE: shakaDemo.MessageIds.LIVE,
122
+ LIVE: 'Live',
121
123
  // A synthetic property used if the asset is VOD (not-livestream).
122
- VOD: shakaDemo.MessageIds.VOD,
124
+ VOD: 'VOD',
123
125
  // Set if the asset has at least one WebM stream.
124
- WEBM: shakaDemo.MessageIds.WEBM,
126
+ WEBM: 'WebM',
125
127
  // Set if the asset has at least one mp4 stream.
126
- MP4: shakaDemo.MessageIds.MP4,
128
+ MP4: 'MP4',
127
129
  // Set if the asset has at least one MPEG-2 TS stream.
128
- MP2TS: shakaDemo.MessageIds.MP2TS,
130
+ MP2TS: 'MPEG-2 TS',
129
131
  // Set if the asset has at least one containerless stream (AAC, etc).
130
- CONTAINERLESS: shakaDemo.MessageIds.CONTAINERLESS,
132
+ CONTAINERLESS: 'Containerless',
131
133
 
132
134
  // Set if the asset has at least one stream that is at least 720p.
133
- HIGH_DEFINITION: shakaDemo.MessageIds.HIGH_DEFINITION,
135
+ HIGH_DEFINITION: 'High definition',
134
136
  // Set if the asset has at least one stream that is at least 4k.
135
- ULTRA_HIGH_DEFINITION: shakaDemo.MessageIds.ULTRA_HIGH_DEFINITION,
137
+ ULTRA_HIGH_DEFINITION: 'Ultra-high definition',
136
138
 
137
139
  // Set if the asset has at least one stream that is surround sound.
138
- SURROUND: shakaDemo.MessageIds.SURROUND,
140
+ SURROUND: 'Surround sound',
139
141
 
140
142
  // Set if the asset is a MPEG-DASH manifest.
141
- DASH: shakaDemo.MessageIds.DASH,
143
+ DASH: 'DASH',
142
144
  // Set if the asset is an HLS manifest.
143
- HLS: shakaDemo.MessageIds.HLS,
145
+ HLS: 'HLS',
144
146
  // Set if the asset is an MSS manifest.
145
- MSS: shakaDemo.MessageIds.MSS,
147
+ MSS: 'MSS',
146
148
 
147
149
  // Set if the asset has at least one image stream.
148
- THUMBNAILS: shakaDemo.MessageIds.THUMBNAILS,
150
+ THUMBNAILS: 'Thumbnails',
149
151
 
150
152
  // Set if the asset has LCEVC.
151
- LCEVC: shakaDemo.MessageIds.LCEVC,
153
+ LCEVC: 'LCEVC',
152
154
 
153
155
  // Set if the asset has Low Latency mode.
154
- LOW_LATENCY_STREAM: shakaDemo.MessageIds.LOW_LATENCY_STREAM,
156
+ LOW_LATENCY: 'Low Latency',
155
157
  };
156
158
 
157
159
 
@@ -360,6 +362,7 @@ shakaAssets.testAssets = [
360
362
  /* iconUri= */ 'https://storage.googleapis.com/shaka-asset-icons/sintel.png',
361
363
  /* manifestUri= */ 'https://storage.googleapis.com/shaka-demo-assets/sintel-ts-aes-key-rotation/master.m3u8',
362
364
  /* source= */ shakaAssets.Source.SHAKA)
365
+ .addKeySystem(shakaAssets.KeySystem.AES128)
363
366
  .addFeature(shakaAssets.Feature.HLS)
364
367
  .addFeature(shakaAssets.Feature.MP2TS)
365
368
  .addFeature(shakaAssets.Feature.OFFLINE),
@@ -368,6 +371,7 @@ shakaAssets.testAssets = [
368
371
  /* iconUri= */ 'https://storage.googleapis.com/shaka-asset-icons/sintel.png',
369
372
  /* manifestUri= */ 'https://storage.googleapis.com/shaka-demo-assets/sintel-fmp4-aes/master.m3u8',
370
373
  /* source= */ shakaAssets.Source.SHAKA)
374
+ .addKeySystem(shakaAssets.KeySystem.AES128)
371
375
  .addFeature(shakaAssets.Feature.HLS)
372
376
  .addFeature(shakaAssets.Feature.MP4)
373
377
  .addFeature(shakaAssets.Feature.OFFLINE),
@@ -833,7 +837,7 @@ shakaAssets.testAssets = [
833
837
  .addFeature(shakaAssets.Feature.DASH)
834
838
  .addFeature(shakaAssets.Feature.LIVE)
835
839
  .addFeature(shakaAssets.Feature.MP4)
836
- .addFeature(shakaAssets.Feature.LOW_LATENCY_STREAM)
840
+ .addFeature(shakaAssets.Feature.LOW_LATENCY)
837
841
  .setExtraConfig({
838
842
  streaming: {
839
843
  lowLatencyMode: true,
@@ -864,7 +868,7 @@ shakaAssets.testAssets = [
864
868
  .addFeature(shakaAssets.Feature.DASH)
865
869
  .addFeature(shakaAssets.Feature.LIVE)
866
870
  .addFeature(shakaAssets.Feature.MP4)
867
- .addFeature(shakaAssets.Feature.LOW_LATENCY_STREAM)
871
+ .addFeature(shakaAssets.Feature.LOW_LATENCY)
868
872
  .setExtraConfig({
869
873
  streaming: {
870
874
  lowLatencyMode: true,
@@ -948,6 +952,7 @@ shakaAssets.testAssets = [
948
952
  /* iconUri= */ 'https://storage.googleapis.com/shaka-asset-icons/art_of_motion.png',
949
953
  /* manifestUri= */ 'https://bitmovin-a.akamaihd.net/content/art-of-motion_drm/m3u8s/11331.m3u8',
950
954
  /* source= */ shakaAssets.Source.BITCODIN)
955
+ .addKeySystem(shakaAssets.KeySystem.AES128)
951
956
  .addFeature(shakaAssets.Feature.HIGH_DEFINITION)
952
957
  .addFeature(shakaAssets.Feature.HLS)
953
958
  .addFeature(shakaAssets.Feature.MP2TS)
@@ -1087,6 +1092,16 @@ shakaAssets.testAssets = [
1087
1092
  kind: 'subtitle',
1088
1093
  mime: 'text/vtt',
1089
1094
  }),
1095
+ new ShakaDemoAssetInfo(
1096
+ /* name= */ 'Sintel (DASH, AES-128)',
1097
+ /* iconUri= */ 'https://storage.googleapis.com/shaka-asset-icons/sintel.png',
1098
+ /* manifestUri= */ 'https://amssamples.streaming.mediaservices.windows.net/49b57c87-f5f3-48b3-ba22-c55cfdffa9cb/Sintel.ism/manifest(format=mpd-time-csf)',
1099
+ /* source= */ shakaAssets.Source.AZURE_MEDIA_SERVICES)
1100
+ .addKeySystem(shakaAssets.KeySystem.AES128)
1101
+ .addFeature(shakaAssets.Feature.DASH)
1102
+ .addFeature(shakaAssets.Feature.MP4)
1103
+ .addFeature(shakaAssets.Feature.HIGH_DEFINITION)
1104
+ .addFeature(shakaAssets.Feature.OFFLINE),
1090
1105
  // End Azure Media Services assets }}}
1091
1106
 
1092
1107
  // GPAC assets {{{
@@ -1254,12 +1269,12 @@ shakaAssets.testAssets = [
1254
1269
  new ShakaDemoAssetInfo(
1255
1270
  /* name= */ 'Low Latency HLS Live',
1256
1271
  /* iconUri= */ 'https://storage.googleapis.com/shaka-asset-icons/apple_test_pattern.png',
1257
- /* manifestUri= */ 'https://ll-hls-test.apple.com/cmaf/master.m3u8',
1272
+ /* manifestUri= */ 'https://ll-hls-test.cdn-apple.com/llhls4/ll-hls-test-04/multi.m3u8',
1258
1273
  /* source= */ shakaAssets.Source.APPLE)
1259
1274
  .addFeature(shakaAssets.Feature.HLS)
1260
1275
  .addFeature(shakaAssets.Feature.LIVE)
1261
1276
  .addFeature(shakaAssets.Feature.MP4)
1262
- .addFeature(shakaAssets.Feature.LOW_LATENCY_STREAM)
1277
+ .addFeature(shakaAssets.Feature.LOW_LATENCY)
1263
1278
  .setExtraConfig({
1264
1279
  streaming: {
1265
1280
  lowLatencyMode: true,
@@ -1349,6 +1364,31 @@ shakaAssets.testAssets = [
1349
1364
  /* source= */ shakaAssets.Source.VNOVA)
1350
1365
  .addFeature(shakaAssets.Feature.DASH)
1351
1366
  .addFeature(shakaAssets.Feature.HIGH_DEFINITION)
1367
+ .addFeature(shakaAssets.Feature.MP2TS)
1368
+ .addFeature(shakaAssets.Feature.OFFLINE)
1369
+ .addFeature(shakaAssets.Feature.LCEVC)
1370
+ .addDescription('LCEVC Enhanced eSports content selection.')
1371
+ .setExtraConfig({
1372
+ streaming: {
1373
+ useNativeHlsOnSafari: false,
1374
+ },
1375
+ mediaSource: {
1376
+ forceTransmux: true,
1377
+ },
1378
+ lcevc: {
1379
+ enabled: true,
1380
+ dynamicPerformanceScaling: true,
1381
+ logLevel: 0,
1382
+ drawLogo: false,
1383
+ },
1384
+ }),
1385
+ new ShakaDemoAssetInfo(
1386
+ /* name= */ 'Tears of Steel LCEVC H264 (HLS, MP4)',
1387
+ /* iconUri= */ 'https://storage.googleapis.com/shaka-asset-icons/tears_of_steel.png',
1388
+ /* manifestUri= */ 'https://d3mfda3gpj3dw1.cloudfront.net/vn2LvEps745ShGtQ/master.m3u8',
1389
+ /* source= */ shakaAssets.Source.VNOVA)
1390
+ .addFeature(shakaAssets.Feature.HLS)
1391
+ .addFeature(shakaAssets.Feature.HIGH_DEFINITION)
1352
1392
  .addFeature(shakaAssets.Feature.MP4)
1353
1393
  .addFeature(shakaAssets.Feature.OFFLINE)
1354
1394
  .addFeature(shakaAssets.Feature.LCEVC)
@@ -1427,5 +1467,63 @@ shakaAssets.testAssets = [
1427
1467
  },
1428
1468
  }),
1429
1469
  // }}}
1470
+
1471
+ // AWS assets {{{
1472
+ /* MediaTailor Contents */
1473
+ new ShakaDemoAssetInfo(
1474
+ /* name= */ 'Media Tailor HLS',
1475
+ /* iconUri= */ 'https://storage.googleapis.com/shaka-asset-icons/sing.png',
1476
+ /* manifestUri= */ 'https://ad391cc0d55b44c6a86d232548adc225.mediatailor.us-east-1.amazonaws.com/v1/session/d02fedbbc5a68596164208dd24e9b48aa60dadc7/singssai/master.m3u8',
1477
+ /* source= */ shakaAssets.Source.AWS)
1478
+ .addFeature(shakaAssets.Feature.HLS)
1479
+ .addFeature(shakaAssets.Feature.HIGH_DEFINITION)
1480
+ .addFeature(shakaAssets.Feature.MP2TS)
1481
+ .setMediaTailor('https://ad391cc0d55b44c6a86d232548adc225.mediatailor.us-east-1.amazonaws.com/v1/session/d02fedbbc5a68596164208dd24e9b48aa60dadc7/singssai/master.m3u8'),
1482
+ new ShakaDemoAssetInfo(
1483
+ /* name= */ 'Media Tailor Live HLS',
1484
+ /* iconUri= */ 'https://storage.googleapis.com/shaka-asset-icons/big_buck_bunny.png',
1485
+ /* manifestUri= */ 'https://d305rncpy6ne2q.cloudfront.net/v1/session/94063eadf7d8c56e9e2edd84fdf897826a70d0df/SFP-MediaTailor-Live-HLS-DASH/channel/sfp-channel1/hls.m3u8',
1486
+ /* source= */ shakaAssets.Source.AWS)
1487
+ .addFeature(shakaAssets.Feature.HLS)
1488
+ .addFeature(shakaAssets.Feature.HIGH_DEFINITION)
1489
+ .addFeature(shakaAssets.Feature.MP2TS)
1490
+ .addFeature(shakaAssets.Feature.LIVE)
1491
+ .setMediaTailor('https://d305rncpy6ne2q.cloudfront.net/v1/session/94063eadf7d8c56e9e2edd84fdf897826a70d0df/SFP-MediaTailor-Live-HLS-DASH/channel/sfp-channel1/hls.m3u8'),
1492
+ new ShakaDemoAssetInfo(
1493
+ /* name= */ 'Media Tailor DASH',
1494
+ /* iconUri= */ 'https://storage.googleapis.com/shaka-asset-icons/big_buck_bunny.png',
1495
+ /* manifestUri= */ 'https://d305rncpy6ne2q.cloudfront.net/v1/session/94063eadf7d8c56e9e2edd84fdf897826a70d0df/SFP-MediaTailor-VOD-HLS-DASH/out/v1/b94f3611978f419985a18335bac9d9cb/ddb73bf548a44551a0059c346226445a/eaa5485198bf497284559efb8172425e/index.mpd',
1496
+ /* source= */ shakaAssets.Source.AWS)
1497
+ .addFeature(shakaAssets.Feature.DASH)
1498
+ .addFeature(shakaAssets.Feature.HIGH_DEFINITION)
1499
+ .addFeature(shakaAssets.Feature.MP4)
1500
+ .setMediaTailor('https://d305rncpy6ne2q.cloudfront.net/v1/session/94063eadf7d8c56e9e2edd84fdf897826a70d0df/SFP-MediaTailor-VOD-HLS-DASH/out/v1/b94f3611978f419985a18335bac9d9cb/ddb73bf548a44551a0059c346226445a/eaa5485198bf497284559efb8172425e/index.mpd',
1501
+ {
1502
+ adsParams: {
1503
+ assetid: 'test2',
1504
+ podduration: '15',
1505
+ },
1506
+ }),
1507
+ new ShakaDemoAssetInfo(
1508
+ /* name= */ 'Media Tailor Live DASH',
1509
+ /* iconUri= */ 'https://storage.googleapis.com/shaka-asset-icons/big_buck_bunny.png',
1510
+ /* manifestUri= */ 'https://d305rncpy6ne2q.cloudfront.net/v1/session/94063eadf7d8c56e9e2edd84fdf897826a70d0df/SFP-MediaTailor-Live-HLS-DASH/channel/sfp-channel1/dash.mpd',
1511
+ /* source= */ shakaAssets.Source.AWS)
1512
+ .addFeature(shakaAssets.Feature.DASH)
1513
+ .addFeature(shakaAssets.Feature.HIGH_DEFINITION)
1514
+ .addFeature(shakaAssets.Feature.MP4)
1515
+ .addFeature(shakaAssets.Feature.LIVE)
1516
+ .setMediaTailor('https://d305rncpy6ne2q.cloudfront.net/v1/session/94063eadf7d8c56e9e2edd84fdf897826a70d0df/SFP-MediaTailor-Live-HLS-DASH/channel/sfp-channel1/dash.mpd'),
1517
+ new ShakaDemoAssetInfo(
1518
+ /* name= */ 'Media Tailor Live HLS with overlays',
1519
+ /* iconUri= */ 'https://storage.googleapis.com/shaka-asset-icons/re_mars.png',
1520
+ /* manifestUri= */ 'https://d305rncpy6ne2q.cloudfront.net/v1/session/94063eadf7d8c56e9e2edd84fdf897826a70d0df/SFP-MediaTailor-Live-HLS-Overlays/channel/sfp-channel2/hls.m3u8',
1521
+ /* source= */ shakaAssets.Source.AWS)
1522
+ .addFeature(shakaAssets.Feature.HLS)
1523
+ .addFeature(shakaAssets.Feature.HIGH_DEFINITION)
1524
+ .addFeature(shakaAssets.Feature.MP2TS)
1525
+ .addFeature(shakaAssets.Feature.LIVE)
1526
+ .setMediaTailor('https://d305rncpy6ne2q.cloudfront.net/v1/session/94063eadf7d8c56e9e2edd84fdf897826a70d0df/SFP-MediaTailor-Live-HLS-Overlays/channel/sfp-channel2/hls.m3u8'),
1527
+ // }}}
1430
1528
  ];
1431
1529
  /* eslint-enable max-len */