shaka-player 3.1.5 → 3.2.3

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 (134) hide show
  1. package/CHANGELOG.md +129 -6
  2. package/README.md +4 -4
  3. package/build/types/polyfill +1 -0
  4. package/demo/common/asset.js +9 -7
  5. package/demo/common/assets.js +10 -1
  6. package/demo/common/message_ids.js +2 -1
  7. package/demo/config.js +5 -2
  8. package/demo/index.html +1 -1
  9. package/demo/locales/en.json +2 -1
  10. package/demo/locales/source.json +8 -4
  11. package/demo/main.js +2 -1
  12. package/dist/demo.compiled.debug.js +14 -14
  13. package/dist/demo.compiled.debug.map +2 -2
  14. package/dist/demo.compiled.js +14 -14
  15. package/dist/demo.compiled.map +2 -2
  16. package/dist/deps.js +21 -20
  17. package/dist/locales.js +30 -30
  18. package/dist/receiver.compiled.debug.js +8 -8
  19. package/dist/receiver.compiled.debug.map +2 -2
  20. package/dist/receiver.compiled.js +8 -8
  21. package/dist/receiver.compiled.map +2 -2
  22. package/dist/shaka-player.compiled.d.ts +63 -10
  23. package/dist/shaka-player.compiled.debug.d.ts +63 -10
  24. package/dist/shaka-player.compiled.debug.externs.js +786 -716
  25. package/dist/shaka-player.compiled.debug.js +563 -534
  26. package/dist/shaka-player.compiled.debug.map +4 -4
  27. package/dist/shaka-player.compiled.externs.js +786 -716
  28. package/dist/shaka-player.compiled.js +820 -809
  29. package/dist/shaka-player.compiled.map +4 -4
  30. package/dist/shaka-player.ui.d.ts +63 -10
  31. package/dist/shaka-player.ui.debug.d.ts +63 -10
  32. package/dist/shaka-player.ui.debug.externs.js +542 -472
  33. package/dist/shaka-player.ui.debug.js +594 -566
  34. package/dist/shaka-player.ui.debug.map +4 -4
  35. package/dist/shaka-player.ui.externs.js +542 -472
  36. package/dist/shaka-player.ui.js +938 -927
  37. package/dist/shaka-player.ui.map +4 -4
  38. package/docs/tutorials/ui.md +5 -5
  39. package/externs/aria.js +6 -0
  40. package/externs/shaka/ads.js +24 -1
  41. package/externs/shaka/manifest.js +6 -1
  42. package/externs/shaka/offline.js +5 -0
  43. package/externs/shaka/player.js +61 -9
  44. package/externs/shaka/text.js +10 -10
  45. package/externs/texttrack.js +3 -0
  46. package/lib/ads/ad_manager.js +16 -15
  47. package/lib/ads/client_side_ad_manager.js +6 -2
  48. package/lib/ads/server_side_ad_manager.js +19 -2
  49. package/lib/cast/cast_proxy.js +8 -0
  50. package/lib/cast/cast_utils.js +6 -1
  51. package/lib/cea/cea608_data_channel.js +56 -56
  52. package/lib/cea/cea608_memory.js +33 -33
  53. package/lib/cea/cea708_service.js +43 -43
  54. package/lib/cea/cea708_window.js +38 -38
  55. package/lib/cea/cea_decoder.js +13 -14
  56. package/lib/cea/cea_utils.js +23 -23
  57. package/lib/cea/dtvcc_packet_builder.js +7 -7
  58. package/lib/cea/i_caption_decoder.js +2 -3
  59. package/lib/cea/i_cea_parser.js +2 -2
  60. package/lib/cea/mp4_cea_parser.js +6 -6
  61. package/lib/dash/dash_parser.js +5 -0
  62. package/lib/hls/hls_parser.js +159 -12
  63. package/lib/media/closed_caption_parser.js +1 -2
  64. package/lib/media/drm_engine.js +162 -192
  65. package/lib/media/segment_index.js +4 -1
  66. package/lib/media/segment_reference.js +37 -2
  67. package/lib/media/streaming_engine.js +6 -6
  68. package/lib/net/networking_engine.js +1 -0
  69. package/lib/offline/download_manager.js +1 -2
  70. package/lib/offline/indexeddb/v1_storage_cell.js +1 -0
  71. package/lib/offline/indexeddb/v2_storage_cell.js +1 -0
  72. package/lib/offline/manifest_converter.js +3 -1
  73. package/lib/offline/storage.js +12 -14
  74. package/lib/player.js +426 -149
  75. package/lib/polyfill/aria.js +82 -0
  76. package/lib/routing/walker.js +2 -3
  77. package/lib/text/srt_text_parser.js +4 -4
  78. package/lib/text/text_engine.js +2 -2
  79. package/lib/text/vtt_text_parser.js +2 -2
  80. package/lib/text/web_vtt_generator.js +55 -12
  81. package/lib/util/error.js +6 -0
  82. package/lib/util/manifest_parser_utils.js +1 -0
  83. package/lib/util/mp4_box_parsers.js +20 -20
  84. package/lib/util/multi_map.js +8 -0
  85. package/lib/util/player_configuration.js +13 -1
  86. package/lib/util/stream_utils.js +168 -88
  87. package/lib/util/xml_utils.js +31 -12
  88. package/package.json +1 -1
  89. package/roadmap.md +24 -22
  90. package/shaka-player.uncompiled.js +1 -0
  91. package/test/cast/cast_utils_unit.js +1 -0
  92. package/test/cea/cea608_memory_unit.js +1 -1
  93. package/test/cea/cea708_service_unit.js +8 -8
  94. package/test/cea/cea708_window_unit.js +6 -6
  95. package/test/cea/cea_decoder_unit.js +1 -1
  96. package/test/cea/dtvcc_packet_builder_unit.js +2 -2
  97. package/test/dash/dash_parser_manifest_unit.js +43 -1
  98. package/test/hls/hls_parser_unit.js +250 -0
  99. package/test/media/drm_engine_integration.js +86 -12
  100. package/test/media/drm_engine_unit.js +310 -450
  101. package/test/offline/manifest_convert_unit.js +2 -0
  102. package/test/offline/storage_integration.js +9 -19
  103. package/test/player_integration.js +85 -0
  104. package/test/player_src_equals_integration.js +85 -0
  105. package/test/player_unit.js +25 -37
  106. package/test/test/assets/chapters.srt +11 -0
  107. package/test/test/assets/chapters.vtt +10 -0
  108. package/test/test/assets/chapters2.vtt +10 -0
  109. package/test/test/util/cea_utils.js +12 -12
  110. package/test/test/util/fake_ad_manager.js +7 -0
  111. package/test/test/util/manifest_generator.js +2 -0
  112. package/test/test/util/manifest_parser_util.js +3 -1
  113. package/test/text/web_vtt_generator_unit.js +81 -7
  114. package/test/util/stream_utils_unit.js +118 -10
  115. package/ui/airplay_button.js +1 -1
  116. package/ui/audio_language_selection.js +2 -5
  117. package/ui/cast_button.js +4 -6
  118. package/ui/constants.js +0 -3
  119. package/ui/fast_forward_button.js +2 -3
  120. package/ui/fullscreen_button.js +1 -3
  121. package/ui/language_utils.js +1 -1
  122. package/ui/loop_button.js +1 -3
  123. package/ui/mute_button.js +1 -3
  124. package/ui/overflow_menu.js +2 -3
  125. package/ui/pip_button.js +5 -7
  126. package/ui/playback_rate_selection.js +3 -6
  127. package/ui/presentation_time.js +1 -3
  128. package/ui/resolution_selection.js +4 -7
  129. package/ui/rewind_button.js +2 -3
  130. package/ui/seek_bar.js +2 -4
  131. package/ui/spacer.js +1 -1
  132. package/ui/text_selection.js +8 -11
  133. package/ui/ui_utils.js +1 -1
  134. package/ui/volume_bar.js +1 -3
package/CHANGELOG.md CHANGED
@@ -1,4 +1,4 @@
1
- ## 3.1.5 (2022-01-28)
1
+ ## 3.2.3 (2022-01-28)
2
2
 
3
3
  Bugfixes:
4
4
  - Fix support for TTAF1 namespace (old version of TTML)
@@ -10,12 +10,17 @@ Bugfixes:
10
10
  - Fix caption overlap
11
11
  - https://github.com/google/shaka-player/issues/3850
12
12
  - https://github.com/google/shaka-player/issues/3741
13
+ - Support multiple chapter tracks with same language
14
+ - https://github.com/google/shaka-player/issues/3597
15
+ - https://github.com/google/shaka-player/pull/3868
13
16
  - Fix text UI not updating when text is disabled
14
17
  - https://github.com/google/shaka-player/issues/3728
15
18
  - https://github.com/google/shaka-player/pull/3867
16
19
  - Clear buffer on seek if mediaState is updating
17
20
  - https://github.com/google/shaka-player/issues/3299
18
21
  - https://github.com/google/shaka-player/pull/3795
22
+ - Fix thumbnails issues
23
+ - https://github.com/google/shaka-player/pull/3858
19
24
  - Made nested cues inherit region
20
25
  - https://github.com/google/shaka-player/issues/3743
21
26
  - https://github.com/google/shaka-player/pull/3837
@@ -26,6 +31,8 @@ Bugfixes:
26
31
  - https://github.com/google/shaka-player/issues/3843
27
32
  - Fix playback failure due to rounding errors
28
33
  - https://github.com/google/shaka-player/issues/3717
34
+ - Fix HLS image track issues
35
+ - https://github.com/google/shaka-player/issues/3840
29
36
  - Remove caption wrapper bgColor
30
37
  - https://github.com/google/shaka-player/issues/3745
31
38
  - https://github.com/google/shaka-player/pull/3838
@@ -37,7 +44,7 @@ Bugfixes:
37
44
  - https://github.com/google/shaka-player/pull/3809
38
45
 
39
46
 
40
- ## 3.1.4 (2022-01-06)
47
+ ## 3.2.2 (2022-01-06)
41
48
 
42
49
  Bugfixes:
43
50
  - Allow comments in the TTML parser
@@ -75,7 +82,7 @@ Bugfixes:
75
82
  - https://github.com/google/shaka-player/issues/3713
76
83
  - Fix seek range issues on transition from live to VOD
77
84
  - https://github.com/google/shaka-player/issues/3675
78
- - Enforce string-format of event data keys.
85
+ - Enforce string-format of event data keys
79
86
  - https://github.com/google/shaka-player/issues/3710
80
87
  - Fix vp09 playback on webOS
81
88
  - https://github.com/google/shaka-player/pull/3566
@@ -83,6 +90,7 @@ Bugfixes:
83
90
  - https://github.com/google/shaka-player/pull/3695
84
91
  - Failover in geo-redundant streams
85
92
  - https://github.com/google/shaka-player/pull/3587
93
+ - Update Cast receiver ID for v3.2
86
94
 
87
95
  Demo App:
88
96
  - Fix 'Tears of Steel (live, DASH, Server Side ads)'
@@ -93,14 +101,12 @@ Docs:
93
101
  - https://github.com/google/shaka-player/pull/3714
94
102
 
95
103
 
96
- ## 3.1.3 (2021-10-13)
104
+ ## 3.2.1 (2021-10-13)
97
105
 
98
106
  Bugfixes:
99
107
  - Work around override of MediaCapabilities polyfill in Apple browsers
100
108
  - https://github.com/google/shaka-player/issues/3530
101
109
  - https://github.com/google/shaka-player/pull/3668
102
- - Add support to file type in MediaCapabilities implementation
103
- - https://github.com/google/shaka-player/pull/3570
104
110
  - Fix video poster when autoplay is disabled
105
111
  - https://github.com/google/shaka-player/pull/3645
106
112
  - Fix tracking of active variant track in live streams
@@ -122,6 +128,8 @@ Bugfixes:
122
128
  - https://github.com/google/shaka-player/pull/3644
123
129
  - Tolerate misaligned TS files
124
130
  - https://github.com/google/shaka-player/issues/3580
131
+ - Account for server-side ad cue points in external text tracks
132
+ - https://github.com/google/shaka-player/pull/3617
125
133
  - Fix stopping of Server Side Ad manager
126
134
  - https://github.com/google/shaka-player/pull/3611
127
135
  - Fix DRM workaround for Tizen and Xbox with ac-3 boxes
@@ -141,12 +149,16 @@ Bugfixes:
141
149
  - https://github.com/google/shaka-player/pull/3588
142
150
  - Add Support to iOS 12 in MediaCapabilities polyfill
143
151
  - https://github.com/google/shaka-player/pull/3573
152
+ - Add support to file type in MediaCapabilities implementation
153
+ - https://github.com/google/shaka-player/pull/3570
144
154
  - Display captions with forward slashes
145
155
  - https://github.com/google/shaka-player/issues/3555
146
156
  - https://github.com/google/shaka-player/pull/3556
147
157
  - Add support to file type in MediaCapabilities polyfill
148
158
  - https://github.com/google/shaka-player/pull/3569
149
159
  - Use "undetermined" for missing CC language
160
+ - Fix FairPlay playback
161
+ - https://github.com/google/shaka-player/pull/3531
150
162
  - Exit PiP when destroying UI
151
163
  - https://github.com/google/shaka-player/issues/3553
152
164
 
@@ -155,6 +167,37 @@ Docs:
155
167
  - https://github.com/google/shaka-player/issues/3155
156
168
 
157
169
 
170
+ ## 3.2.0 (2021-07-14)
171
+
172
+ New Features:
173
+ - MediaCapabilities support: configs for preferred codecs, decoding
174
+ attributes, and key systems
175
+ - https://github.com/google/shaka-player/pull/3424
176
+ - https://github.com/google/shaka-player/issues/1391
177
+ - https://github.com/google/shaka-player/issues/3002
178
+ - Support more frequent segment updates during streaming
179
+ - https://github.com/google/shaka-player/pull/3483
180
+ - Add callback for apps to pre-process DASH manifests
181
+ - https://github.com/google/shaka-player/issues/3339
182
+ - https://github.com/google/shaka-player/pull/3480
183
+ - Add chapters support
184
+ - https://github.com/google/shaka-player/pull/2972
185
+ - Add support for HLS Image Media Playlists
186
+ - https://github.com/google/shaka-player/pull/3365
187
+ - Add align and vertical settings to WebVttGenerator
188
+ - https://github.com/google/shaka-player/pull/3413
189
+ - Add a buffer fullness method
190
+ - https://github.com/google/shaka-player/issues/3389
191
+ - https://github.com/google/shaka-player/pull/3392
192
+ - Progress toward FairPlay DRM w/ MSE
193
+ - https://github.com/google/shaka-player/pull/3347
194
+ - Add serverCertificateUri in DRM advanced config
195
+ - https://github.com/google/shaka-player/issues/1906
196
+ - https://github.com/google/shaka-player/pull/3358
197
+ - Add goToLive method
198
+ - https://github.com/google/shaka-player/pull/3527
199
+
200
+
158
201
  ## 3.1.2 (2021-07-14)
159
202
 
160
203
  Bugfixes:
@@ -197,6 +240,29 @@ Docs:
197
240
  - https://github.com/google/shaka-player/issues/3487
198
241
 
199
242
 
243
+ ## 3.0.13 (2021-07-14)
244
+
245
+ Bugfixes:
246
+ - Fix choosing tracks from streaming event
247
+ - https://github.com/google/shaka-player/issues/3448
248
+ - https://github.com/google/shaka-player/pull/3459
249
+ - Update Play icon after seeking from end
250
+ - https://github.com/google/shaka-player/pull/3515
251
+ - Fix DASH transition from dynamic to static
252
+ - https://github.com/google/shaka-player/pull/3497
253
+ - Fix ARIA label on replay button
254
+ - https://github.com/google/shaka-player/pull/3513
255
+ - Fix audio language switching while using AirPlay
256
+ - https://github.com/google/shaka-player/issues/3125
257
+ - https://github.com/google/shaka-player/pull/3472
258
+ - Show captions with rapid seek when ignoreTextStreamFailures is true
259
+ - https://github.com/google/shaka-player/pull/3476
260
+ - Fix clearing buffer when requested for already-selected variant
261
+ - https://github.com/google/shaka-player/pull/3477
262
+ - Fix hung playback on rapid seek
263
+ - https://github.com/google/shaka-player/pull/3479
264
+
265
+
200
266
  ## 3.1.1 (2021-06-17)
201
267
 
202
268
  Bugfixes:
@@ -246,6 +312,63 @@ Demo App:
246
312
  - Add MIME type and extra config to custom assets
247
313
 
248
314
 
315
+ ## 3.0.12 (2021-06-17)
316
+
317
+ Bugfixes:
318
+ - Fix buffering due to re-fetch in multi-period DASH
319
+ - https://github.com/google/shaka-player/pull/3419
320
+ - https://github.com/google/shaka-player/issues/3354
321
+ - Prioritize AVERAGE-BANDWIDTH over BANDWIDTH in HLS
322
+ - https://github.com/google/shaka-player/pull/3428
323
+ - Fix EC-3 box support in DRM workaround on smart TVs
324
+ - https://github.com/google/shaka-player/pull/3427
325
+ - Fix exception in UI on devices that do not support fullscreen
326
+ - https://github.com/google/shaka-player/issues/3441
327
+ - Fix caption positioning and sizing when the container resizes
328
+ - https://github.com/google/shaka-player/pull/3426
329
+ - https://github.com/google/shaka-player/pull/3425
330
+ - https://github.com/google/shaka-player/pull/3414
331
+ - Fix exceptions thrown in content with trick-mode tracks
332
+ - https://github.com/google/shaka-player/issues/3423
333
+ - Filter unsupported H.264 streams in Xbox
334
+ - https://github.com/google/shaka-player/pull/3411
335
+ - Choose the configured preferred text role at start
336
+ - https://github.com/google/shaka-player/pull/3399
337
+ - Fix ClearKey+WebM+src= playback failure
338
+ - https://github.com/google/shaka-player/issues/3366
339
+ - Fix double-display of embedded and non-embedded captions
340
+ - https://github.com/google/shaka-player/issues/3199
341
+
342
+ Docs:
343
+ - Document disabling Range header requests in HLS
344
+ - https://github.com/google/shaka-player/pull/3442
345
+ - Add Angular integration link
346
+ - https://github.com/google/shaka-player/pull/3409
347
+
348
+
349
+ ## 2.5.23 (2021-06-17)
350
+
351
+ Bugfixes:
352
+ - Prioritize AVERAGE-BANDWIDTH over BANDWIDTH in HLS
353
+ - https://github.com/google/shaka-player/pull/3428
354
+ - Fix exception in UI on devices that do not support fullscreen
355
+ - https://github.com/google/shaka-player/issues/3441
356
+ - Fix caption positioning and sizing when the container resizes
357
+ - https://github.com/google/shaka-player/pull/3426
358
+ - https://github.com/google/shaka-player/pull/3425
359
+ - https://github.com/google/shaka-player/pull/3414
360
+ - Filter unsupported H.264 streams in Xbox
361
+ - https://github.com/google/shaka-player/pull/3411
362
+ - Choose the configured preferred text role at start
363
+ - https://github.com/google/shaka-player/pull/3399
364
+ - Fix ClearKey+WebM+src= playback failure
365
+ - https://github.com/google/shaka-player/issues/3366
366
+
367
+ Docs:
368
+ - Add Angular integration link
369
+ - https://github.com/google/shaka-player/pull/3409
370
+
371
+
249
372
  ## 3.1.0 (2021-04-29)
250
373
 
251
374
  New Features:
package/README.md CHANGED
@@ -60,10 +60,10 @@ So we are dependent on the browser supporting the manifests.
60
60
 
61
61
  ### Shaka Player Embedded (for native iOS)
62
62
 
63
- We have another project called [Shaka Player Embedded][] that offers the same
64
- features and similar APIs for native apps on iOS. This project uses its own
63
+ We have another project called [Shaka Player Embedded][] which offers the same
64
+ features and similar APIs for native apps on iOS. This project uses its own
65
65
  media stack, which allows it to play content that would otherwise not be
66
- supported. This supports both DASH and HLS manifests.
66
+ supported. This supports both DASH and HLS manifests.
67
67
 
68
68
  [Shaka Player Embedded]: https://github.com/google/shaka-player-embedded
69
69
 
@@ -210,7 +210,7 @@ Shaka Player supports:
210
210
  - SubViewer (SBV)
211
211
  - UTF-8 encoding only
212
212
 
213
- Subtitles are rendered by the browser by default. Applications can create a
213
+ Subtitles are rendered by the browser by default. Applications can create a
214
214
  [text display plugin][] for customer rendering to go beyond browser-supported
215
215
  attributes.
216
216
 
@@ -1,6 +1,7 @@
1
1
  # Polyfills used to emulate missing browsers features.
2
2
 
3
3
  +../../node_modules/eme-encryption-scheme-polyfill/index.js
4
+ +../../lib/polyfill/aria.js
4
5
  +../../lib/polyfill/encryption_scheme.js
5
6
  +../../lib/polyfill/fullscreen.js
6
7
  +../../lib/polyfill/mathround.js
@@ -369,24 +369,26 @@ const ShakaDemoAssetInfo = class {
369
369
  getConfiguration() {
370
370
  const config = /** @type {shaka.extern.PlayerConfiguration} */(
371
371
  {drm: {advanced: {}}, manifest: {dash: {}}});
372
+
373
+ if (this.extraConfig) {
374
+ for (const key in this.extraConfig) {
375
+ config[key] = this.extraConfig[key];
376
+ }
377
+ }
378
+
372
379
  if (this.licenseServers.size) {
373
- config.drm.servers = {};
380
+ config.drm.servers = config.drm.servers || {};
374
381
  this.licenseServers.forEach((value, key) => {
375
382
  config.drm.servers[key] = value;
376
383
  });
377
384
  }
378
385
 
379
386
  if (this.clearKeys.size) {
380
- config.drm.clearKeys = {};
387
+ config.drm.clearKeys = config.drm.clearKeys || {};
381
388
  this.clearKeys.forEach((value, key) => {
382
389
  config.drm.clearKeys[key] = value;
383
390
  });
384
391
  }
385
- if (this.extraConfig) {
386
- for (const key in this.extraConfig) {
387
- config[key] = this.extraConfig[key];
388
- }
389
- }
390
392
  return config;
391
393
  }
392
394
 
@@ -370,7 +370,16 @@ shakaAssets.testAssets = [
370
370
  .addFeature(shakaAssets.Feature.SUBTITLES)
371
371
  .addFeature(shakaAssets.Feature.WEBM)
372
372
  .addFeature(shakaAssets.Feature.OFFLINE)
373
- .addLicenseServer('com.widevine.alpha', 'https://cwip-shaka-proxy.appspot.com/no_auth'),
373
+ .addLicenseServer('com.widevine.alpha', 'https://cwip-shaka-proxy.appspot.com/no_auth')
374
+ .setExtraConfig({
375
+ drm: {
376
+ advanced: {
377
+ 'com.widevine.alpha': {
378
+ serverCertificateUri: 'https://cwip-shaka-proxy.appspot.com/service-cert',
379
+ },
380
+ },
381
+ },
382
+ }),
374
383
  new ShakaDemoAssetInfo(
375
384
  /* name= */ 'Sintel 4k (multicodec, Widevine, ads)',
376
385
  /* iconUri= */ 'https://storage.googleapis.com/shaka-asset-icons/sintel.png',
@@ -178,6 +178,7 @@ shakaDemo.MessageIds = {
178
178
  IGNORE_DASH_DRM: 'DEMO_IGNORE_DASH_DRM',
179
179
  IGNORE_DASH_MAX_SEGMENT_DURATION: 'DEMO_IGNORE_DASH_MAX_SEGMENT_DURATION',
180
180
  IGNORE_DASH_SUGGESTED_PRESENTATION_DELAY: 'DEMO_IGNORE_DASH_SUGGESTED_PRESENTATION_DELAY',
181
+ IGNORE_HLS_IMAGE_FAILURES: 'DEMO_IGNORE_HLS_IMAGE_FAILURES',
181
182
  IGNORE_HLS_TEXT_FAILURES: 'DEMO_IGNORE_HLS_TEXT_FAILURES',
182
183
  USE_FULL_SEGMENTS_FOR_START_TIME: 'DEMO_USE_FULL_SEGMENTS_FOR_START_TIME',
183
184
  IGNORE_MIN_BUFFER_TIME: 'DEMO_IGNORE_MIN_BUFFER_TIME',
@@ -234,7 +235,7 @@ shakaDemo.MessageIds = {
234
235
  TRICK_PLAY_CONTROLS_WARNING: 'DEMO_TRICK_PLAY_CONTROLS_WARNING',
235
236
  UI_LOCALE: 'DEMO_UI_LOCALE',
236
237
  UPDATE_EXPIRATION_TIME: 'DEMO_UPDATE_EXPIRATION_TIME',
237
- USE_MEDIA_CAPABILITIES: 'DEMO_USE_MEDIA_CAPABILITIES',
238
+ UPDATE_INTERVAL_SECONDS: 'DEMO_UPDATE_INTERVAL_SECONDS',
238
239
  USE_NATIVE_HLS_SAFARI: 'DEMO_USE_NATIVE_HLS_SAFARI',
239
240
  USE_PERSISTENT_LICENSES: 'DEMO_USE_PERSISTENT_LICENSES',
240
241
  VIDEO_ROBUSTNESS: 'DEMO_VIDEO_ROBUSTNESS',
package/demo/config.js CHANGED
@@ -206,6 +206,8 @@ shakaDemo.Config = class {
206
206
  'manifest.dash.ignoreMaxSegmentDuration')
207
207
  .addBoolInput_(MessageIds.IGNORE_HLS_TEXT_FAILURES,
208
208
  'manifest.hls.ignoreTextStreamFailures')
209
+ .addBoolInput_(MessageIds.IGNORE_HLS_IMAGE_FAILURES,
210
+ 'manifest.hls.ignoreImageStreamFailures')
209
211
  .addBoolInput_(MessageIds.USE_FULL_SEGMENTS_FOR_START_TIME,
210
212
  'manifest.hls.useFullSegmentsForStartTime')
211
213
  .addNumberInput_(MessageIds.AVAILABILITY_WINDOW_OVERRIDE,
@@ -358,8 +360,9 @@ shakaDemo.Config = class {
358
360
  'streaming.forceHTTPS')
359
361
  .addBoolInput_(MessageIds.PREFER_NATIVE_HLS,
360
362
  'streaming.preferNativeHls')
361
- .addBoolInput_(MessageIds.USE_MEDIA_CAPABILITIES,
362
- 'useMediaCapabilities');
363
+ .addNumberInput_(MessageIds.UPDATE_INTERVAL_SECONDS,
364
+ 'streaming.updateIntervalSeconds',
365
+ /* canBeDecimal= */ true);
363
366
 
364
367
  if (!shakaDemoMain.getNativeControlsEnabled()) {
365
368
  this.addBoolInput_(MessageIds.ALWAYS_STREAM_TEXT,
package/demo/index.html CHANGED
@@ -128,7 +128,7 @@ UNCOMPILED_JS = [
128
128
  </div>
129
129
  <main class="mdl-layout__content" id="main-div">
130
130
  <div id="video-bar" class="hidden">
131
- <div data-shaka-player-container data-shaka-player-cast-receiver-id="1BA79154" class="video-container">
131
+ <div data-shaka-player-container data-shaka-player-cast-receiver-id="E7271BEC" class="video-container">
132
132
  <video data-shaka-player autoplay playsinline id="video"></video>
133
133
  </div>
134
134
  </div>
@@ -87,6 +87,7 @@
87
87
  "DEMO_IGNORE_DASH_EMPTY_ADAPTATION_SET": "Ignore empty DASH AdaptationSets",
88
88
  "DEMO_IGNORE_DASH_MAX_SEGMENT_DURATION": "Ignore DASH maxSegmentDuration",
89
89
  "DEMO_IGNORE_DASH_SUGGESTED_PRESENTATION_DELAY": "Ignore DASH suggestedPresentationDelay",
90
+ "DEMO_IGNORE_HLS_IMAGE_FAILURES": "Ignore HLS Image Stream Failures",
90
91
  "DEMO_IGNORE_HLS_TEXT_FAILURES": "Ignore HLS Text Stream Failures",
91
92
  "DEMO_IMA_ASSET_KEY": "Asset key (for LIVE DAI Content)",
92
93
  "DEMO_IMA_CONTENT_SRC_ID": "Content source ID (for VOD DAI Content)",
@@ -129,7 +130,6 @@
129
130
  "DEMO_MAX_PIXELS": "Max Pixels",
130
131
  "DEMO_MAX_SMALL_GAP_SIZE": "Maximum Small Gap Size",
131
132
  "DEMO_MAX_WIDTH": "Max Width",
132
- "DEMO_USE_MEDIA_CAPABILITIES": "Use MediaCapabilities",
133
133
  "DEMO_METACDN": "MetaCDN",
134
134
  "DEMO_MICROSOFT": "Microsoft",
135
135
  "DEMO_MIME_TYPE": "MIME Type",
@@ -208,6 +208,7 @@
208
208
  "DEMO_UNSUPPORTED_NO_LICENSE_SUPPORT": "Your browser does not support offline licenses for the required key systems.",
209
209
  "DEMO_UNSUPPORTED_NO_OFFLINE": "Your browser does not support offline storage.",
210
210
  "DEMO_UPDATE_EXPIRATION_TIME": "Update expiration time",
211
+ "DEMO_UPDATE_INTERVAL_SECONDS": "Update interval seconds",
211
212
  "DEMO_UPLYNK": "Verizon Digital Media Services",
212
213
  "DEMO_USE_FULL_SEGMENTS_FOR_START_TIME": "Use Full Segments For Start Time",
213
214
  "DEMO_USE_NATIVE_HLS_SAFARI": "Use native HLS on Safari",
@@ -355,6 +355,10 @@
355
355
  "description": "The name of a configuration value.",
356
356
  "message": "Ignore [PROPER_NAME:HLS] Text Stream Failures"
357
357
  },
358
+ "DEMO_IGNORE_HLS_IMAGE_FAILURES": {
359
+ "description": "The name of a configuration value.",
360
+ "message": "Ignore [PROPER_NAME:HLS] Image Stream Failures"
361
+ },
358
362
  "DEMO_IMA_ASSET_KEY": {
359
363
  "description": "The label on a field that allows users to provide an asset key for a custom asset.",
360
364
  "message": "Asset key (for LIVE DAI Content)"
@@ -523,10 +527,6 @@
523
527
  "description": "The name of a configuration value.",
524
528
  "message": "Max Width"
525
529
  },
526
- "DEMO_USE_MEDIA_CAPABILITIES": {
527
- "description": "The name of a configuration value.",
528
- "message": "Use [JARGON:MediaCapabilities]"
529
- },
530
530
  "DEMO_METACDN": {
531
531
  "description": "Text that describes an asset that comes from the MetaCDN asset library.",
532
532
  "message": "[PROPER_NAME:MetaCDN]"
@@ -839,6 +839,10 @@
839
839
  "description": "The name of a configuration value.",
840
840
  "message": "Update expiration time"
841
841
  },
842
+ "DEMO_UPDATE_INTERVAL_SECONDS": {
843
+ "description": "The name of a configuration value.",
844
+ "message": "Update interval seconds"
845
+ },
842
846
  "DEMO_UPLYNK": {
843
847
  "description": "Text that describes an asset that comes from the Verizon Digital Media Services asset library.",
844
848
  "message": "[PROPER_NAME:Verizon Digital Media Services]"
package/demo/main.js CHANGED
@@ -1732,6 +1732,7 @@ shakaDemo.Main = class {
1732
1732
  audioRobustness: '',
1733
1733
  sessionType: '',
1734
1734
  serverCertificate: new Uint8Array(0),
1735
+ serverCertificateUri: '',
1735
1736
  individualizationServer: '',
1736
1737
  };
1737
1738
  }
@@ -1742,7 +1743,7 @@ shakaDemo.Main = class {
1742
1743
  shakaDemo.Main.commonDrmSystems = [
1743
1744
  'com.widevine.alpha',
1744
1745
  'com.microsoft.playready',
1745
- 'com.apple.fps.1_0',
1746
+ 'com.apple.fps',
1746
1747
  'com.adobe.primetime',
1747
1748
  'org.w3.clearkey',
1748
1749
  ];
@@ -142,12 +142,12 @@ DRM_SEARCH:"DEMO_DRM_SEARCH",HIGH_DEFINITION_SEARCH:"DEMO_HIGH_DEFINITION_SEARCH
142
142
  ALWAYS_STREAM_TEXT:"DEMO_ALWAYS_STREAM_TEXT",ALWAYS_STREAM_TEXT_WARNING:"DEMO_ALWAYS_STREAM_TEXT_WARNING",AUDIO_CHANNEL_COUNT:"DEMO_AUDIO_CHANNEL_COUNT",AUDIO_LANGUAGE:"DEMO_AUDIO_LANGUAGE",AUDIO_ROBUSTNESS:"DEMO_AUDIO_ROBUSTNESS",AUTO_CORRECT_DASH_DRIFT:"DEMO_AUTO_CORRECT_DASH_DRIFT",AUTO_LOW_LATENCY:"DEMO_AUTO_LOW_LATENCY",AVAILABILITY_WINDOW_OVERRIDE:"DEMO_AVAILABILITY_WINDOW_OVERRIDE",BACKOFF_FACTOR:"DEMO_BACKOFF_FACTOR",BASE_DELAY:"DEMO_BASE_DELAY",BANDWIDTH_DOWNGRADE:"DEMO_BANDWIDTH_DOWNGRADE",
143
143
  BANDWIDTH_ESTIMATE:"DEMO_BANDWIDTH_ESTIMATE",BANDWIDTH_UPGRADE:"DEMO_BANDWIDTH_UPGRADE",BUFFER_BEHIND:"DEMO_BUFFER_BEHIND",BUFFERING_GOAL:"DEMO_BUFFERING_GOAL",CLOCK_SYNC_URI:"DEMO_CLOCK_SYNC_URI",CONNECTION_TIMEOUT:"DEMO_CONNECTION_TIMEOUT",DEFAULT_PRESENTATION_DELAY:"DEMO_DEFAULT_PRESENTATION_DELAY",DELAY_LICENSE:"DEMO_DELAY_LICENSE",DISABLE_AUDIO:"DEMO_DISABLE_AUDIO",DISABLE_TEXT:"DEMO_DISABLE_TEXT",DISABLE_THUMBNAILS:"DEMO_DISABLE_THUMBNAILS",DISABLE_VIDEO:"DEMO_DISABLE_VIDEO",DISABLE_XLINK_PROCESSING:"DEMO_DISABLE_XLINK_PROCESSING",
144
144
  DRM_RETRY_SECTION_HEADER:"DEMO_DRM_RETRY_SECTION_HEADER",DRM_SECTION_HEADER:"DEMO_DRM_SECTION_HEADER",DRM_SESSION_TYPE:"DEMO_DRM_SESSION_TYPE",DURATION_BACKOFF:"DEMO_DURATION_BACKOFF",ENABLED:"DEMO_ENABLED",FORCE_HTTPS:"DEMO_FORCE_HTTPS",FORCE_TRANSMUX_TS:"DEMO_FORCE_TRANSMUX_TS",FUZZ_FACTOR:"DEMO_FUZZ_FACTOR",GAP_DETECTION_THRESHOLD:"DEMO_GAP_DETECTION_THRESHOLD",IGNORE_DASH_EMPTY_ADAPTATION_SET:"DEMO_IGNORE_DASH_EMPTY_ADAPTATION_SET",IGNORE_DASH_DRM:"DEMO_IGNORE_DASH_DRM",IGNORE_DASH_MAX_SEGMENT_DURATION:"DEMO_IGNORE_DASH_MAX_SEGMENT_DURATION",
145
- IGNORE_DASH_SUGGESTED_PRESENTATION_DELAY:"DEMO_IGNORE_DASH_SUGGESTED_PRESENTATION_DELAY",IGNORE_HLS_TEXT_FAILURES:"DEMO_IGNORE_HLS_TEXT_FAILURES",USE_FULL_SEGMENTS_FOR_START_TIME:"DEMO_USE_FULL_SEGMENTS_FOR_START_TIME",IGNORE_MIN_BUFFER_TIME:"DEMO_IGNORE_MIN_BUFFER_TIME",IGNORE_TEXT_FAILURES:"DEMO_IGNORE_TEXT_FAILURES",INACCURATE_MANIFEST_TOLERANCE:"DEMO_INACCURATE_MANIFEST_TOLERANCE",INITIAL_SEGMENT_LIMIT:"DEMO_INITIAL_SEGMENT_LIMIT",JUMP_LARGE_GAPS:"DEMO_JUMP_LARGE_GAPS",LANGUAGE_SECTION_HEADER:"DEMO_LANGUAGE_SECTION_HEADER",
146
- LOG_LEVEL:"DEMO_LOG_LEVEL",LOG_LEVEL_DEBUG:"DEMO_LOG_LEVEL_DEBUG",LOG_LEVEL_INFO:"DEMO_LOG_LEVEL_INFO",LOG_LEVEL_V:"DEMO_LOG_LEVEL_V",LOG_LEVEL_VV:"DEMO_LOG_LEVEL_VV",LOG_LICENSE_EXCHANGE:"DEMO_LOG_LICENSE_EXCHANGE",LOW_LATENCY:"DEMO_LOW_LATENCY",MANIFEST_RETRY_SECTION_HEADER:"DEMO_MANIFEST_RETRY_SECTION_HEADER",MANIFEST_SECTION_HEADER:"DEMO_MANIFEST_SECTION_HEADER",MAX_ATTEMPTS:"DEMO_MAX_ATTEMPTS",MAX_BANDWIDTH:"DEMO_MAX_BANDWIDTH",MAX_FRAMERATE:"DEMO_MAX_FRAMERATE",MAX_HEIGHT:"DEMO_MAX_HEIGHT",
147
- MAX_PIXELS:"DEMO_MAX_PIXELS",MAX_SMALL_GAP_SIZE:"DEMO_MAX_SMALL_GAP_SIZE",MAX_WIDTH:"DEMO_MAX_WIDTH",MIN_FRAMERATE:"DEMO_MIN_FRAMERATE",MIN_HEIGHT:"DEMO_MIN_HEIGHT",MIN_PIXELS:"DEMO_MIN_PIXELS",MIN_WIDTH:"DEMO_MIN_WIDTH",MIN_BANDWIDTH:"DEMO_MIN_BANDWIDTH",NETWORK_INFORMATION:"DEMO_NETWORK_INFORMATION",NUMBER_DECIMAL_WARNING:"DEMO_NUMBER_DECIMAL_WARNING",NUMBER_INTEGER_WARNING:"DEMO_NUMBER_INTEGER_WARNING",NUMBER_NONZERO_DECIMAL_WARNING:"DEMO_NUMBER_NONZERO_DECIMAL_WARNING",NUMBER_NONZERO_INTEGER_WARNING:"DEMO_NUMBER_NONZERO_INTEGER_WARNING",
148
- OFFLINE_SECTION_HEADER:"DEMO_OFFLINE_SECTION_HEADER",PREFER_FORCED_SUBS:"DEMO_PREFER_FORCED_SUBS",PREFER_NATIVE_HLS:"DEMO_PREFER_NATIVE_HLS",REBUFFERING_GOAL:"DEMO_REBUFFERING_GOAL",RESTRICTIONS_SECTION_HEADER:"DEMO_RESTRICTIONS_SECTION_HEADER",SAFE_SEEK_OFFSET:"DEMO_SAFE_SEEK_OFFSET",SAFE_SKIP_DISTANCE:"DEMO_SAFE_SKIP_DISTANCE",SHAKA_CONTROLS:"DEMO_SHAKA_CONTROLS",STALL_DETECTOR_ENABLED:"DEMO_STALL_DETECTOR_ENABLED",STALL_THRESHOLD:"DEMO_STALL_THRESHOLD",STALL_TIMEOUT:"DEMO_STALL_TIMEOUT",START_AT_SEGMENT_BOUNDARY:"DEMO_START_AT_SEGMENT_BOUNDARY",
149
- STREAMING_RETRY_SECTION_HEADER:"DEMO_STREAMING_RETRY_SECTION_HEADER",STREAMING_SECTION_HEADER:"DEMO_STREAMING_SECTION_HEADER",SWITCH_INTERVAL:"DEMO_SWITCH_INTERVAL",TEXT_LANGUAGE:"DEMO_TEXT_LANGUAGE",TEXT_ROLE:"DEMO_TEXT_ROLE",TIMEOUT:"DEMO_TIMEOUT",TRICK_PLAY_CONTROLS:"DEMO_TRICK_PLAY_CONTROLS",TRICK_PLAY_CONTROLS_WARNING:"DEMO_TRICK_PLAY_CONTROLS_WARNING",UI_LOCALE:"DEMO_UI_LOCALE",UPDATE_EXPIRATION_TIME:"DEMO_UPDATE_EXPIRATION_TIME",USE_MEDIA_CAPABILITIES:"DEMO_USE_MEDIA_CAPABILITIES",USE_NATIVE_HLS_SAFARI:"DEMO_USE_NATIVE_HLS_SAFARI",
150
- USE_PERSISTENT_LICENSES:"DEMO_USE_PERSISTENT_LICENSES",VIDEO_ROBUSTNESS:"DEMO_VIDEO_ROBUSTNESS",XLINK_FAIL_GRACEFULLY:"DEMO_XLINK_FAIL_GRACEFULLY"}};shakaDemo.Tooltips=function(){};shakaDemo.Tooltips.make=function(a,b){tippy(a,{content:shakaDemoMain.getLocalizedString(b),placement:"bottom",arrow:!0,animation:"scale",size:"large"})};shakaDemo.AssetCard=function(a,b,c,d){this.card_=document.createElement("div");this.asset_=b;this.actions_=document.createElement("div");this.featureIconsContainer_=document.createElement("div");this.progressCircle_=document.createElement("div");this.progressCircleSvg_=document.createElementNS("http://www.w3.org/2000/svg","svg");this.progressCircleBack_=document.createElementNS("http://www.w3.org/2000/svg","circle");this.progressCircleBar_=document.createElementNS("http://www.w3.org/2000/svg","circle");
145
+ IGNORE_DASH_SUGGESTED_PRESENTATION_DELAY:"DEMO_IGNORE_DASH_SUGGESTED_PRESENTATION_DELAY",IGNORE_HLS_IMAGE_FAILURES:"DEMO_IGNORE_HLS_IMAGE_FAILURES",IGNORE_HLS_TEXT_FAILURES:"DEMO_IGNORE_HLS_TEXT_FAILURES",USE_FULL_SEGMENTS_FOR_START_TIME:"DEMO_USE_FULL_SEGMENTS_FOR_START_TIME",IGNORE_MIN_BUFFER_TIME:"DEMO_IGNORE_MIN_BUFFER_TIME",IGNORE_TEXT_FAILURES:"DEMO_IGNORE_TEXT_FAILURES",INACCURATE_MANIFEST_TOLERANCE:"DEMO_INACCURATE_MANIFEST_TOLERANCE",INITIAL_SEGMENT_LIMIT:"DEMO_INITIAL_SEGMENT_LIMIT",JUMP_LARGE_GAPS:"DEMO_JUMP_LARGE_GAPS",
146
+ LANGUAGE_SECTION_HEADER:"DEMO_LANGUAGE_SECTION_HEADER",LOG_LEVEL:"DEMO_LOG_LEVEL",LOG_LEVEL_DEBUG:"DEMO_LOG_LEVEL_DEBUG",LOG_LEVEL_INFO:"DEMO_LOG_LEVEL_INFO",LOG_LEVEL_V:"DEMO_LOG_LEVEL_V",LOG_LEVEL_VV:"DEMO_LOG_LEVEL_VV",LOG_LICENSE_EXCHANGE:"DEMO_LOG_LICENSE_EXCHANGE",LOW_LATENCY:"DEMO_LOW_LATENCY",MANIFEST_RETRY_SECTION_HEADER:"DEMO_MANIFEST_RETRY_SECTION_HEADER",MANIFEST_SECTION_HEADER:"DEMO_MANIFEST_SECTION_HEADER",MAX_ATTEMPTS:"DEMO_MAX_ATTEMPTS",MAX_BANDWIDTH:"DEMO_MAX_BANDWIDTH",MAX_FRAMERATE:"DEMO_MAX_FRAMERATE",
147
+ MAX_HEIGHT:"DEMO_MAX_HEIGHT",MAX_PIXELS:"DEMO_MAX_PIXELS",MAX_SMALL_GAP_SIZE:"DEMO_MAX_SMALL_GAP_SIZE",MAX_WIDTH:"DEMO_MAX_WIDTH",MIN_FRAMERATE:"DEMO_MIN_FRAMERATE",MIN_HEIGHT:"DEMO_MIN_HEIGHT",MIN_PIXELS:"DEMO_MIN_PIXELS",MIN_WIDTH:"DEMO_MIN_WIDTH",MIN_BANDWIDTH:"DEMO_MIN_BANDWIDTH",NETWORK_INFORMATION:"DEMO_NETWORK_INFORMATION",NUMBER_DECIMAL_WARNING:"DEMO_NUMBER_DECIMAL_WARNING",NUMBER_INTEGER_WARNING:"DEMO_NUMBER_INTEGER_WARNING",NUMBER_NONZERO_DECIMAL_WARNING:"DEMO_NUMBER_NONZERO_DECIMAL_WARNING",
148
+ NUMBER_NONZERO_INTEGER_WARNING:"DEMO_NUMBER_NONZERO_INTEGER_WARNING",OFFLINE_SECTION_HEADER:"DEMO_OFFLINE_SECTION_HEADER",PREFER_FORCED_SUBS:"DEMO_PREFER_FORCED_SUBS",PREFER_NATIVE_HLS:"DEMO_PREFER_NATIVE_HLS",REBUFFERING_GOAL:"DEMO_REBUFFERING_GOAL",RESTRICTIONS_SECTION_HEADER:"DEMO_RESTRICTIONS_SECTION_HEADER",SAFE_SEEK_OFFSET:"DEMO_SAFE_SEEK_OFFSET",SAFE_SKIP_DISTANCE:"DEMO_SAFE_SKIP_DISTANCE",SHAKA_CONTROLS:"DEMO_SHAKA_CONTROLS",STALL_DETECTOR_ENABLED:"DEMO_STALL_DETECTOR_ENABLED",STALL_THRESHOLD:"DEMO_STALL_THRESHOLD",
149
+ STALL_TIMEOUT:"DEMO_STALL_TIMEOUT",START_AT_SEGMENT_BOUNDARY:"DEMO_START_AT_SEGMENT_BOUNDARY",STREAMING_RETRY_SECTION_HEADER:"DEMO_STREAMING_RETRY_SECTION_HEADER",STREAMING_SECTION_HEADER:"DEMO_STREAMING_SECTION_HEADER",SWITCH_INTERVAL:"DEMO_SWITCH_INTERVAL",TEXT_LANGUAGE:"DEMO_TEXT_LANGUAGE",TEXT_ROLE:"DEMO_TEXT_ROLE",TIMEOUT:"DEMO_TIMEOUT",TRICK_PLAY_CONTROLS:"DEMO_TRICK_PLAY_CONTROLS",TRICK_PLAY_CONTROLS_WARNING:"DEMO_TRICK_PLAY_CONTROLS_WARNING",UI_LOCALE:"DEMO_UI_LOCALE",UPDATE_EXPIRATION_TIME:"DEMO_UPDATE_EXPIRATION_TIME",
150
+ UPDATE_INTERVAL_SECONDS:"DEMO_UPDATE_INTERVAL_SECONDS",USE_NATIVE_HLS_SAFARI:"DEMO_USE_NATIVE_HLS_SAFARI",USE_PERSISTENT_LICENSES:"DEMO_USE_PERSISTENT_LICENSES",VIDEO_ROBUSTNESS:"DEMO_VIDEO_ROBUSTNESS",XLINK_FAIL_GRACEFULLY:"DEMO_XLINK_FAIL_GRACEFULLY"}};shakaDemo.Tooltips=function(){};shakaDemo.Tooltips.make=function(a,b){tippy(a,{content:shakaDemoMain.getLocalizedString(b),placement:"bottom",arrow:!0,animation:"scale",size:"large"})};shakaDemo.AssetCard=function(a,b,c,d){this.card_=document.createElement("div");this.asset_=b;this.actions_=document.createElement("div");this.featureIconsContainer_=document.createElement("div");this.progressCircle_=document.createElement("div");this.progressCircleSvg_=document.createElementNS("http://www.w3.org/2000/svg","svg");this.progressCircleBack_=document.createElementNS("http://www.w3.org/2000/svg","circle");this.progressCircleBar_=document.createElementNS("http://www.w3.org/2000/svg","circle");
151
151
  this.remakeButtonsFn_=d;this.card_.classList.add("mdl-card-wide");this.card_.classList.add("mdl-card");this.card_.classList.add("mdl-shadow--2dp");this.card_.classList.add("asset-card");d=document.createElement("div");d.classList.add("mdl-card__title");this.card_.appendChild(d);var e=document.createElement("h2");e.classList.add("mdl-card__title-text");e.textContent=c?b.shortName||b.name:b.name;d.appendChild(e);if(b.iconUri){d=document.createElement("picture");e=document.createElement("source");e.srcset=
152
152
  b.iconUri.replace(/.png$/,".webp");e.type="image/webp";var g=document.createElement("source");g.srcset=b.iconUri;g.type="image/png";var f=document.createElement("img");f.src=b.iconUri;f.alt="";d.appendChild(e);d.appendChild(g);d.appendChild(f);this.card_.appendChild(d)}b.description&&c&&(c=document.createElement("div"),c.classList.add("mdl-card__supporting-text"),c.textContent=b.description,this.card_.appendChild(c));this.card_.appendChild(this.featureIconsContainer_);this.addFeatureIcons_(b);this.actions_.classList.add("mdl-card__actions");
153
153
  this.actions_.classList.add("mdl-card--border");this.card_.appendChild(this.actions_);this.progressCircle_.classList.add("hidden");this.progressCircle_.classList.add("progress-circle");this.card_.appendChild(this.progressCircle_);this.progressCircleSvg_.appendChild(this.progressCircleBack_);this.progressCircleSvg_.appendChild(this.progressCircleBar_);this.progressCircle_.appendChild(this.progressCircleSvg_);this.progressCircleSvg_.classList.add("progress-circle-svg");this.progressCircleBack_.classList.add("progress-circle-back");
@@ -173,7 +173,7 @@ ShakaDemoAssetInfo.prototype.setIMAVideoId=function(a){this.imaVideoId=a;this.fe
173
173
  ShakaDemoAssetInfo.prototype.addExtraText=function(a){this.extraText.push(a);return this};ShakaDemoAssetInfo.prototype.markAsFocused=function(){this.focus=!0;return this};ShakaDemoAssetInfo.prototype.markAsFeatured=function(a){this.isFeatured=!0;this.shortName=a||this.shortName;return this};ShakaDemoAssetInfo.prototype.markAsDisabled=function(){this.disabled=!0;return this};
174
174
  ShakaDemoAssetInfo.prototype.toJSON=function(){var a={},b;for(b in this){var c=this[b];if(c instanceof Map){var d={__type__:"map"};c=$jscomp.makeIterator(c.entries());for(var e=c.next();!e.done;e=c.next())e=e.value,d[e[0]]=e[1];a[b]=d}else a[b]=c}return a};
175
175
  ShakaDemoAssetInfo.prototype.applyFilters=function(a){var b=this;a.clearAllRequestFilters();a.clearAllResponseFilters();this.licenseRequestHeaders.size&&a.registerRequestFilter(function(c,d){return b.addLicenseRequestHeaders_(b.licenseRequestHeaders,c,d)});this.requestFilter&&a.registerRequestFilter(this.requestFilter);this.responseFilter&&a.registerResponseFilter(this.responseFilter)};
176
- ShakaDemoAssetInfo.prototype.getConfiguration=function(){var a={drm:{advanced:{}},manifest:{dash:{}}};this.licenseServers.size&&(a.drm.servers={},this.licenseServers.forEach(function(c,d){a.drm.servers[d]=c}));this.clearKeys.size&&(a.drm.clearKeys={},this.clearKeys.forEach(function(c,d){a.drm.clearKeys[d]=c}));if(this.extraConfig)for(var b in this.extraConfig)a[b]=this.extraConfig[b];return a};
176
+ ShakaDemoAssetInfo.prototype.getConfiguration=function(){var a={drm:{advanced:{}},manifest:{dash:{}}};if(this.extraConfig)for(var b in this.extraConfig)a[b]=this.extraConfig[b];this.licenseServers.size&&(a.drm.servers=a.drm.servers||{},this.licenseServers.forEach(function(c,d){a.drm.servers[d]=c}));this.clearKeys.size&&(a.drm.clearKeys=a.drm.clearKeys||{},this.clearKeys.forEach(function(c,d){a.drm.clearKeys[d]=c}));return a};
177
177
  ShakaDemoAssetInfo.prototype.addLicenseRequestHeaders_=function(a,b,c){b==shaka.net.NetworkingEngine.RequestType.LICENSE&&a.forEach(function(d,e){c.headers[e]=d})};ShakaDemoAssetInfo.prototype.isStored=function(){return null!=this.storedContent};ShakaDemoAssetInfo.makeBlankAsset=function(){return new ShakaDemoAssetInfo("","","",shakaAssets.Source.CUSTOM)};
178
178
  ShakaDemoAssetInfo.fromJSON=function(a){var b={},c;for(c in a){var d=a[c];if(d&&"object"==typeof d&&"map"==d.__type__){var e=new Map,g;for(g in d)"__type__"!=g&&e.set(g,d[g]);b[c]=e}else b[c]=d}a=ShakaDemoAssetInfo.makeBlankAsset();Object.assign(a,b);return a};var shakaAssets={};
179
179
  shakaAssets.Source={CUSTOM:shakaDemo.MessageIds.CUSTOM,SHAKA:shakaDemo.MessageIds.SHAKA,AXINOM:shakaDemo.MessageIds.AXINOM,UNIFIED_STREAMING:shakaDemo.MessageIds.UNIFIED_STREAMING,DASH_IF:shakaDemo.MessageIds.DASH_IF,BITCODIN:shakaDemo.MessageIds.BITCODIN,METACDN:shakaDemo.MessageIds.METACDN,NIMBLE_STREAMER:shakaDemo.MessageIds.NIMBLE_STREAMER,AZURE_MEDIA_SERVICES:shakaDemo.MessageIds.AZURE_MEDIA_SERVICES,GPAC:shakaDemo.MessageIds.GPAC,UPLYNK:shakaDemo.MessageIds.UPLYNK,APPLE:shakaDemo.MessageIds.APPLE,IRT:shakaDemo.MessageIds.IRT,
@@ -196,7 +196,7 @@ shakaAssets.testAssets=[(new ShakaDemoAssetInfo("Big Buck Bunny: the Dark Truths
196
196
  "https://storage.googleapis.com/shaka-asset-icons/sintel.png","https://storage.googleapis.com/shaka-demo-assets/sintel-trickplay/dash.mpd",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.TRICK_MODE).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Sintel 4k (WebM only)","https://storage.googleapis.com/shaka-asset-icons/sintel.png","https://storage.googleapis.com/shaka-demo-assets/sintel-webm-only/dash.mpd",
197
197
  shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.WEBM).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Sintel 4k (MP4 only)","https://storage.googleapis.com/shaka-asset-icons/sintel.png","https://storage.googleapis.com/shaka-demo-assets/sintel-mp4-only/dash.mpd",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.OFFLINE),
198
198
  (new ShakaDemoAssetInfo("Sintel 4k (multicodec, Widevine)","https://storage.googleapis.com/shaka-asset-icons/sintel.png","https://storage.googleapis.com/shaka-demo-assets/sintel-widevine/dash.mpd",shakaAssets.Source.SHAKA)).addKeySystem(shakaAssets.KeySystem.WIDEVINE).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.WEBM).addFeature(shakaAssets.Feature.OFFLINE).addLicenseServer("com.widevine.alpha",
199
- "https://cwip-shaka-proxy.appspot.com/no_auth"),(new ShakaDemoAssetInfo("Sintel 4k (multicodec, Widevine, ads)","https://storage.googleapis.com/shaka-asset-icons/sintel.png","https://storage.googleapis.com/shaka-demo-assets/sintel-widevine/dash.mpd",shakaAssets.Source.SHAKA)).addDescription("A Blender Foundation short film, protected by Widevine encryption with pre-roll, mid-roll, and post-roll ads.").markAsFeatured("Sintel").setAdTagUri(shakaAssets.AdTag.AD_POD_PREROLL_MIDROLL_POSTROLL).addKeySystem(shakaAssets.KeySystem.WIDEVINE).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.WEBM).addFeature(shakaAssets.Feature.OFFLINE).addLicenseServer("com.widevine.alpha",
199
+ "https://cwip-shaka-proxy.appspot.com/no_auth").setExtraConfig({drm:{advanced:{"com.widevine.alpha":{serverCertificateUri:"https://cwip-shaka-proxy.appspot.com/service-cert"}}}}),(new ShakaDemoAssetInfo("Sintel 4k (multicodec, Widevine, ads)","https://storage.googleapis.com/shaka-asset-icons/sintel.png","https://storage.googleapis.com/shaka-demo-assets/sintel-widevine/dash.mpd",shakaAssets.Source.SHAKA)).addDescription("A Blender Foundation short film, protected by Widevine encryption with pre-roll, mid-roll, and post-roll ads.").markAsFeatured("Sintel").setAdTagUri(shakaAssets.AdTag.AD_POD_PREROLL_MIDROLL_POSTROLL).addKeySystem(shakaAssets.KeySystem.WIDEVINE).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.WEBM).addFeature(shakaAssets.Feature.OFFLINE).addLicenseServer("com.widevine.alpha",
200
200
  "https://cwip-shaka-proxy.appspot.com/no_auth"),(new ShakaDemoAssetInfo("Sintel 4k (MP4, VTT in MP4)","https://storage.googleapis.com/shaka-asset-icons/sintel.png","https://storage.googleapis.com/shaka-demo-assets/sintel-mp4-wvtt/dash.mpd",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.HIGH_DEFINITION).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Sintel w/ 44 subtitle languages",
201
201
  "https://storage.googleapis.com/shaka-asset-icons/sintel.png","https://storage.googleapis.com/shaka-demo-assets/sintel-many-subs/dash.mpd",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.SUBTITLES).addFeature(shakaAssets.Feature.SURROUND).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Heliocentrism (multicodec, multiperiod)","https://storage.googleapis.com/shaka-asset-icons/heliocentricism.png","https://storage.googleapis.com/shaka-demo-assets/heliocentrism/heliocentrism.mpd",
202
202
  shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.WEBM).addFeature(shakaAssets.Feature.OFFLINE),(new ShakaDemoAssetInfo("Heliocentrism (multicodec, multiperiod, xlink)","https://storage.googleapis.com/shaka-asset-icons/heliocentricism.png","https://storage.googleapis.com/shaka-demo-assets/heliocentrism-xlink/heliocentrism.mpd",shakaAssets.Source.SHAKA)).addFeature(shakaAssets.Feature.DASH).addFeature(shakaAssets.Feature.MP4).addFeature(shakaAssets.Feature.WEBM).addFeature(shakaAssets.Feature.XLINK).addFeature(shakaAssets.Feature.OFFLINE),
@@ -343,8 +343,8 @@ shakaDemo.Main.prototype.setUpVersionStrings_=function(){for(var a=shaka.Player.
343
343
  c=$jscomp.makeIterator(c);for(d=c.next();!d.done;d=c.next())d=d.value,d.textContent=a.join("-"),0<b.length&&(d.textContent+=" ("+b.join(", ")+")")};shakaDemo.Main.prototype.closeError_=function(){document.getElementById("error-display").classList.add("hidden");this.errorDisplayLink_.href="";this.errorDisplayLink_.textContent="";this.currentErrorSeverity_=null};shakaDemo.Main.prototype.onErrorEvent_=function(a){this.onError_(a.detail)};
344
344
  shakaDemo.Main.prototype.onError_=function(a){var b=a.severity;if(null==b||void 0==a.severity)b=shaka.util.Error.Severity.CRITICAL;var c=a.message||"Error code "+a.code,d="";a.code&&(d="../docs/api/shaka.util.Error.html#value:"+a.code);console.error(a);this.handleError_(b,c,d)};
345
345
  shakaDemo.Main.prototype.handleError_=function(a,b,c){if(null==this.currentErrorSeverity_||a>this.currentErrorSeverity_)this.errorDisplayLink_.href=c,void 0===this.errorDisplayLink_.textContent?this.errorDisplayLink_.innerText=b:this.errorDisplayLink_.textContent=b,this.currentErrorSeverity_=a,this.errorDisplayLink_.href?this.errorDisplayLink_.classList.remove("input-disabled"):this.errorDisplayLink_.classList.add("input-disabled"),document.getElementById("error-display").classList.remove("hidden")};
346
- shakaDemo.Main.prototype.onCastStatusChange_=function(a){a&&!this.selectedAsset&&(this.selectedAsset=ShakaDemoAssetInfo.makeBlankAsset(),this.showPlayer_())};shakaDemo.Main.defaultAdvancedDrmConfig=function(){return{distinctiveIdentifierRequired:!1,persistentStateRequired:!1,videoRobustness:"",audioRobustness:"",sessionType:"",serverCertificate:new Uint8Array(0),individualizationServer:""}};
347
- shakaDemo.Main.commonDrmSystems=["com.widevine.alpha","com.microsoft.playready","com.apple.fps.1_0","com.adobe.primetime","org.w3.clearkey"];var shakaDemoMain=new shakaDemo.Main;shakaDemo.Main.mainPoster_="https://shaka-player-demo.appspot.com/assets/poster.jpg";shakaDemo.Main.audioOnlyPoster_="https://shaka-player-demo.appspot.com/assets/audioOnly.gif";
346
+ shakaDemo.Main.prototype.onCastStatusChange_=function(a){a&&!this.selectedAsset&&(this.selectedAsset=ShakaDemoAssetInfo.makeBlankAsset(),this.showPlayer_())};shakaDemo.Main.defaultAdvancedDrmConfig=function(){return{distinctiveIdentifierRequired:!1,persistentStateRequired:!1,videoRobustness:"",audioRobustness:"",sessionType:"",serverCertificate:new Uint8Array(0),serverCertificateUri:"",individualizationServer:""}};
347
+ shakaDemo.Main.commonDrmSystems=["com.widevine.alpha","com.microsoft.playready","com.apple.fps","com.adobe.primetime","org.w3.clearkey"];var shakaDemoMain=new shakaDemo.Main;shakaDemo.Main.mainPoster_="https://shaka-player-demo.appspot.com/assets/poster.jpg";shakaDemo.Main.audioOnlyPoster_="https://shaka-player-demo.appspot.com/assets/audioOnly.gif";
348
348
  shakaDemo.Main.initWrapper=function(a){var b;return $jscomp.asyncExecutePromiseGeneratorProgram(function(c){if(1==c.nextAddress)return c.setCatchFinallyBlocks(2),c.yield(a(),4);if(2!=c.nextAddress)return c.leaveTryBlock(0);b=c.enterCatchBlock();shakaDemoMain.onError_(b);console.error(b);c.jumpToEnd()})};document.addEventListener("shaka-ui-loaded",function(){shakaDemo.Main.initWrapper(function(){return shakaDemoMain.init()})});document.addEventListener("shaka-ui-load-failed",function(a){shakaDemo.Main.initWrapper(function(){shakaDemoMain.initFailed(a.detail.reasonCode)})});var shakaDemoConfig;shakaDemo.Config=function(a){var b=this;this.container_=a;this.sections_=[];this.latestInput_=null;this.reload_();document.addEventListener("shaka-main-config-change",function(){b.reloadAndSaveState_()});document.addEventListener("shaka-main-locale-changed",function(){b.reloadAndSaveState_()});document.addEventListener("shaka-main-drawer-state-change",function(){b.setContentAvailability_(shakaDemoMain.getIsDrawerOpen())});this.setContentAvailability_(shakaDemoMain.getIsDrawerOpen())};
349
349
  shakaDemo.Config.init=function(){var a=shakaDemoMain.getHamburgerMenu();shakaDemoConfig=new shakaDemo.Config(a)};shakaDemo.Config.prototype.setContentAvailability_=function(a){a?this.container_.classList.remove("hidden"):this.container_.classList.add("hidden")};
350
350
  shakaDemo.Config.prototype.reload_=function(){shaka.util.Dom.removeAllChildren(this.container_);this.sections_=[];this.addMetaSection_();this.addLanguageSection_();this.addAbrSection_();this.addOfflineSection_();this.addDrmSection_();this.addStreamingSection_();this.addManifestSection_();this.addRetrictionsSection_("",shakaDemo.MessageIds.RESTRICTIONS_SECTION_HEADER)};
@@ -353,9 +353,9 @@ shakaDemo.Config.prototype.addDrmSection_=function(){var a=this,b=shakaDemo.Mess
353
353
  $jscomp.makeIterator(shakaDemo.Main.commonDrmSystems),m=l.next();!m.done;m=l.next())m=m.value,m in d||(d[m]=shakaDemo.Main.defaultAdvancedDrmConfig());for(var n in d)d[n][f]=k.value;shakaDemoMain.configure("drm.advanced",d);shakaDemoMain.remakeHash()});if(g=Object.keys(d)[0])g=d[g][f],a.latestInput_.input().value=g};var e="SW_SECURE_CRYPTO SW_SECURE_DECODE HW_SECURE_CRYPTO HW_SECURE_DECODE HW_SECURE_ALL 150 2000 3000".split(" ");c(b.VIDEO_ROBUSTNESS,"videoRobustness",e);c(b.AUDIO_ROBUSTNESS,"audioRobustness",
354
354
  e);c(b.DRM_SESSION_TYPE,"sessionType",["temporary","persistent-license"]);this.addRetrySection_("drm",b.DRM_RETRY_SECTION_HEADER)};
355
355
  shakaDemo.Config.prototype.addManifestSection_=function(){var a=shakaDemo.MessageIds,b=this.resolveExternLink_(".ManifestConfiguration");this.addSection_(a.MANIFEST_SECTION_HEADER,b).addBoolInput_(a.IGNORE_DASH_DRM,"manifest.dash.ignoreDrmInfo").addBoolInput_(a.AUTO_CORRECT_DASH_DRIFT,"manifest.dash.autoCorrectDrift").addBoolInput_(a.DISABLE_XLINK_PROCESSING,"manifest.dash.disableXlinkProcessing").addBoolInput_(a.XLINK_FAIL_GRACEFULLY,"manifest.dash.xlinkFailGracefully").addBoolInput_(a.IGNORE_DASH_SUGGESTED_PRESENTATION_DELAY,
356
- "manifest.dash.ignoreSuggestedPresentationDelay").addBoolInput_(a.IGNORE_DASH_EMPTY_ADAPTATION_SET,"manifest.dash.ignoreEmptyAdaptationSet").addBoolInput_(a.IGNORE_DASH_MAX_SEGMENT_DURATION,"manifest.dash.ignoreMaxSegmentDuration").addBoolInput_(a.IGNORE_HLS_TEXT_FAILURES,"manifest.hls.ignoreTextStreamFailures").addBoolInput_(a.USE_FULL_SEGMENTS_FOR_START_TIME,"manifest.hls.useFullSegmentsForStartTime").addNumberInput_(a.AVAILABILITY_WINDOW_OVERRIDE,"manifest.availabilityWindowOverride",!0,!1,!0).addTextInput_(a.CLOCK_SYNC_URI,
357
- "manifest.dash.clockSyncUri").addNumberInput_(a.DEFAULT_PRESENTATION_DELAY,"manifest.defaultPresentationDelay").addBoolInput_(a.IGNORE_MIN_BUFFER_TIME,"manifest.dash.ignoreMinBufferTime").addNumberInput_(a.INITIAL_SEGMENT_LIMIT,"manifest.dash.initialSegmentLimit",!1,!1,!0).addBoolInput_(a.DISABLE_AUDIO,"manifest.disableAudio").addBoolInput_(a.DISABLE_VIDEO,"manifest.disableVideo").addBoolInput_(a.DISABLE_TEXT,"manifest.disableText").addBoolInput_(a.DISABLE_THUMBNAILS,"manifest.disableThumbnails");
358
- this.addRetrySection_("manifest",a.MANIFEST_RETRY_SECTION_HEADER)};
356
+ "manifest.dash.ignoreSuggestedPresentationDelay").addBoolInput_(a.IGNORE_DASH_EMPTY_ADAPTATION_SET,"manifest.dash.ignoreEmptyAdaptationSet").addBoolInput_(a.IGNORE_DASH_MAX_SEGMENT_DURATION,"manifest.dash.ignoreMaxSegmentDuration").addBoolInput_(a.IGNORE_HLS_TEXT_FAILURES,"manifest.hls.ignoreTextStreamFailures").addBoolInput_(a.IGNORE_HLS_IMAGE_FAILURES,"manifest.hls.ignoreImageStreamFailures").addBoolInput_(a.USE_FULL_SEGMENTS_FOR_START_TIME,"manifest.hls.useFullSegmentsForStartTime").addNumberInput_(a.AVAILABILITY_WINDOW_OVERRIDE,
357
+ "manifest.availabilityWindowOverride",!0,!1,!0).addTextInput_(a.CLOCK_SYNC_URI,"manifest.dash.clockSyncUri").addNumberInput_(a.DEFAULT_PRESENTATION_DELAY,"manifest.defaultPresentationDelay").addBoolInput_(a.IGNORE_MIN_BUFFER_TIME,"manifest.dash.ignoreMinBufferTime").addNumberInput_(a.INITIAL_SEGMENT_LIMIT,"manifest.dash.initialSegmentLimit",!1,!1,!0).addBoolInput_(a.DISABLE_AUDIO,"manifest.disableAudio").addBoolInput_(a.DISABLE_VIDEO,"manifest.disableVideo").addBoolInput_(a.DISABLE_TEXT,"manifest.disableText").addBoolInput_(a.DISABLE_THUMBNAILS,
358
+ "manifest.disableThumbnails");this.addRetrySection_("manifest",a.MANIFEST_RETRY_SECTION_HEADER)};
359
359
  shakaDemo.Config.prototype.addAbrSection_=function(){var a=shakaDemo.MessageIds,b=this.resolveExternLink_(".AbrConfiguration");this.addSection_(a.ADAPTATION_SECTION_HEADER,b).addBoolInput_(a.ENABLED,"abr.enabled").addBoolInput_(a.NETWORK_INFORMATION,"abr.useNetworkInformation").addNumberInput_(a.BANDWIDTH_ESTIMATE,"abr.defaultBandwidthEstimate").addNumberInput_(a.BANDWIDTH_DOWNGRADE,"abr.bandwidthDowngradeTarget",!0).addNumberInput_(a.BANDWIDTH_UPGRADE,"abr.bandwidthUpgradeTarget",!0).addNumberInput_(a.SWITCH_INTERVAL,
360
360
  "abr.switchInterval",!0);this.addRetrictionsSection_("abr",a.ADAPTATION_RESTRICTIONS_SECTION_HEADER)};
361
361
  shakaDemo.Config.prototype.addRetrictionsSection_=function(a,b){var c=shakaDemo.MessageIds,d=(a?a+".":"")+"restrictions.",e=this.resolveExternLink_(".Restrictions");this.addSection_(b,e).addNumberInput_(c.MIN_WIDTH,d+"minWidth").addNumberInput_(c.MAX_WIDTH,d+"maxWidth").addNumberInput_(c.MIN_HEIGHT,d+"minHeight").addNumberInput_(c.MAX_HEIGHT,d+"maxHeight").addNumberInput_(c.MIN_PIXELS,d+"minPixels").addNumberInput_(c.MAX_PIXELS,d+"maxPixels").addNumberInput_(c.MIN_FRAMERATE,d+"minFrameRate").addNumberInput_(c.MAX_FRAMERATE,
@@ -364,7 +364,7 @@ shakaDemo.Config.prototype.addRetrySection_=function(a,b){var c=shakaDemo.Messag
364
364
  d+"connectionTimeout",!0)};shakaDemo.Config.prototype.addOfflineSection_=function(){var a=shakaDemo.MessageIds,b=this.resolveExternLink_(".OfflineConfiguration");this.addSection_(a.OFFLINE_SECTION_HEADER,b).addBoolInput_(a.USE_PERSISTENT_LICENSES,"offline.usePersistentLicense")};
365
365
  shakaDemo.Config.prototype.addStreamingSection_=function(){var a=shakaDemo.MessageIds,b=this.resolveExternLink_(".StreamingConfiguration");this.addSection_(a.STREAMING_SECTION_HEADER,b).addNumberInput_(a.GAP_DETECTION_THRESHOLD,"streaming.gapDetectionThreshold",!0).addNumberInput_(a.MAX_SMALL_GAP_SIZE,"streaming.smallGapLimit",!0).addNumberInput_(a.BUFFERING_GOAL,"streaming.bufferingGoal",!0).addNumberInput_(a.DURATION_BACKOFF,"streaming.durationBackoff",!0).addNumberInput_(a.REBUFFERING_GOAL,"streaming.rebufferingGoal",
366
366
  !0).addNumberInput_(a.BUFFER_BEHIND,"streaming.bufferBehind",!0).addNumberInput_(a.SAFE_SEEK_OFFSET,"streaming.safeSeekOffset",!0).addNumberInput_(a.STALL_THRESHOLD,"streaming.stallThreshold",!0).addNumberInput_(a.SAFE_SKIP_DISTANCE,"streaming.stallSkip",!0).addNumberInput_(a.INACCURATE_MANIFEST_TOLERANCE,"streaming.inaccurateManifestTolerance",!0).addBoolInput_(a.LOW_LATENCY,"streaming.lowLatencyMode").addBoolInput_(a.AUTO_LOW_LATENCY,"streaming.autoLowLatencyMode").addBoolInput_(a.FORCE_HTTPS,"streaming.forceHTTPS").addBoolInput_(a.PREFER_NATIVE_HLS,
367
- "streaming.preferNativeHls").addBoolInput_(a.USE_MEDIA_CAPABILITIES,"useMediaCapabilities");shakaDemoMain.getNativeControlsEnabled()?(this.addCustomBoolInput_(a.ALWAYS_STREAM_TEXT,function(c){},a.ALWAYS_STREAM_TEXT_WARNING),this.latestInput_.input().disabled=!0,this.latestInput_.input().checked=!0):this.addBoolInput_(a.ALWAYS_STREAM_TEXT,"streaming.alwaysStreamText");this.addBoolInput_(a.JUMP_LARGE_GAPS,"streaming.jumpLargeGaps").addBoolInput_(a.FORCE_TRANSMUX_TS,"streaming.forceTransmuxTS").addBoolInput_(a.START_AT_SEGMENT_BOUNDARY,
367
+ "streaming.preferNativeHls").addNumberInput_(a.UPDATE_INTERVAL_SECONDS,"streaming.updateIntervalSeconds",!0);shakaDemoMain.getNativeControlsEnabled()?(this.addCustomBoolInput_(a.ALWAYS_STREAM_TEXT,function(c){},a.ALWAYS_STREAM_TEXT_WARNING),this.latestInput_.input().disabled=!0,this.latestInput_.input().checked=!0):this.addBoolInput_(a.ALWAYS_STREAM_TEXT,"streaming.alwaysStreamText");this.addBoolInput_(a.JUMP_LARGE_GAPS,"streaming.jumpLargeGaps").addBoolInput_(a.FORCE_TRANSMUX_TS,"streaming.forceTransmuxTS").addBoolInput_(a.START_AT_SEGMENT_BOUNDARY,
368
368
  "streaming.startAtSegmentBoundary").addBoolInput_(a.IGNORE_TEXT_FAILURES,"streaming.ignoreTextStreamFailures").addBoolInput_(a.STALL_DETECTOR_ENABLED,"streaming.stallEnabled").addBoolInput_(a.USE_NATIVE_HLS_SAFARI,"streaming.useNativeHlsOnSafari");this.addRetrySection_("streaming",a.STREAMING_RETRY_SECTION_HEADER)};
369
369
  shakaDemo.Config.prototype.addLanguageSection_=function(){var a=shakaDemo.MessageIds,b=this.resolveExternLink_(".PlayerConfiguration");this.addSection_(a.LANGUAGE_SECTION_HEADER,b).addTextInput_(a.AUDIO_LANGUAGE,"preferredAudioLanguage").addTextInput_(a.TEXT_LANGUAGE,"preferredTextLanguage").addTextInput_(a.TEXT_ROLE,"preferredTextRole");this.addCustomTextInput_(a.UI_LOCALE,function(c){shakaDemoMain.setUILocale(c.value);shakaDemoMain.remakeHash()});this.latestInput_.input().value=shakaDemoMain.getUILocale();
370
370
  this.addNumberInput_(a.AUDIO_CHANNEL_COUNT,"preferredAudioChannelCount");this.addBoolInput_(a.PREFER_FORCED_SUBS,"preferForcedSubs")};