shaka-player 4.2.3 → 4.3.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 (147) hide show
  1. package/.github/workflows/sync-labels.yaml +1 -1
  2. package/.github/workflows/update-issues.yaml +1 -1
  3. package/AUTHORS +5 -0
  4. package/CHANGELOG.md +85 -39
  5. package/CONTRIBUTORS +5 -0
  6. package/README.md +14 -0
  7. package/demo/common/assets.js +58 -0
  8. package/demo/common/message_ids.js +22 -1
  9. package/demo/config.js +89 -5
  10. package/demo/demo.less +7 -1
  11. package/demo/index.html +8 -1
  12. package/demo/locales/en.json +21 -1
  13. package/demo/locales/source.json +82 -2
  14. package/demo/main.js +57 -1
  15. package/demo/search.js +2 -0
  16. package/demo/visualizer.js +337 -0
  17. package/demo/visualizer_button.js +103 -0
  18. package/dist/controls.css +1 -1
  19. package/dist/controls.css.map +1 -1
  20. package/dist/demo.compiled.debug.js +83 -58
  21. package/dist/demo.compiled.debug.map +4 -4
  22. package/dist/demo.compiled.js +83 -58
  23. package/dist/demo.compiled.map +4 -4
  24. package/dist/demo.css +1 -1
  25. package/dist/demo.css.map +1 -1
  26. package/dist/deps.js +18 -11
  27. package/dist/locales.js +32 -32
  28. package/dist/receiver.compiled.debug.js +23 -19
  29. package/dist/receiver.compiled.debug.map +3 -3
  30. package/dist/receiver.compiled.js +23 -19
  31. package/dist/receiver.compiled.map +3 -3
  32. package/dist/shaka-player.compiled.d.ts +178 -27
  33. package/dist/shaka-player.compiled.debug.d.ts +178 -27
  34. package/dist/shaka-player.compiled.debug.externs.js +163 -32
  35. package/dist/shaka-player.compiled.debug.js +488 -422
  36. package/dist/shaka-player.compiled.debug.map +4 -4
  37. package/dist/shaka-player.compiled.externs.js +163 -32
  38. package/dist/shaka-player.compiled.js +895 -857
  39. package/dist/shaka-player.compiled.map +4 -4
  40. package/dist/shaka-player.ui.d.ts +178 -27
  41. package/dist/shaka-player.ui.debug.d.ts +178 -27
  42. package/dist/shaka-player.ui.debug.externs.js +163 -32
  43. package/dist/shaka-player.ui.debug.js +519 -450
  44. package/dist/shaka-player.ui.debug.map +4 -4
  45. package/dist/shaka-player.ui.externs.js +163 -32
  46. package/dist/shaka-player.ui.js +1053 -1015
  47. package/dist/shaka-player.ui.map +4 -4
  48. package/docs/design/lcevc-architecture.png +0 -0
  49. package/docs/design/lcevc-demo.png +0 -0
  50. package/docs/design/lcevc-integration.md +72 -0
  51. package/docs/tutorials/fairplay.md +7 -0
  52. package/docs/tutorials/faq.md +1 -1
  53. package/docs/tutorials/ui.md +7 -7
  54. package/docs/tutorials/upgrade.md +6 -0
  55. package/externs/ima.js +13 -1
  56. package/externs/lcevc.js +81 -0
  57. package/externs/mux.js +4 -42
  58. package/externs/shaka/ads.js +11 -1
  59. package/externs/shaka/manifest_parser.js +5 -1
  60. package/externs/shaka/player.js +178 -15
  61. package/lib/abr/simple_abr_manager.js +7 -0
  62. package/lib/ads/ad_manager.js +0 -8
  63. package/lib/ads/client_side_ad.js +15 -0
  64. package/lib/ads/client_side_ad_manager.js +21 -8
  65. package/lib/ads/server_side_ad.js +15 -0
  66. package/lib/ads/server_side_ad_manager.js +3 -3
  67. package/lib/cast/cast_proxy.js +2 -1
  68. package/lib/cast/cast_receiver.js +19 -5
  69. package/lib/cast/cast_sender.js +2 -1
  70. package/lib/cast/cast_utils.js +18 -6
  71. package/lib/cea/dummy_cea_parser.js +28 -0
  72. package/lib/cea/i_cea_parser.js +14 -2
  73. package/lib/cea/mp4_cea_parser.js +87 -5
  74. package/lib/config/auto_show_text.js +33 -0
  75. package/lib/dash/dash_parser.js +1 -1
  76. package/lib/hls/hls_parser.js +799 -376
  77. package/lib/lcevc/lcevc_dil.js +152 -0
  78. package/lib/media/closed_caption_parser.js +9 -6
  79. package/lib/media/drm_engine.js +14 -6
  80. package/lib/media/media_source_engine.js +112 -26
  81. package/lib/media/playhead.js +23 -1
  82. package/lib/media/presentation_timeline.js +26 -11
  83. package/lib/media/segment_reference.js +49 -1
  84. package/lib/media/streaming_engine.js +145 -24
  85. package/lib/media/transmuxer.js +79 -18
  86. package/lib/offline/storage.js +1 -0
  87. package/lib/player.js +477 -85
  88. package/lib/polyfill/patchedmediakeys_apple.js +55 -1
  89. package/lib/text/ui_text_displayer.js +5 -5
  90. package/lib/text/vtt_text_parser.js +35 -1
  91. package/lib/util/dom_utils.js +0 -1
  92. package/lib/util/error.js +17 -0
  93. package/lib/util/fake_event.js +2 -0
  94. package/lib/util/id3_utils.js +300 -0
  95. package/lib/util/manifest_parser_utils.js +4 -0
  96. package/lib/util/mime_utils.js +3 -6
  97. package/lib/util/mp4_box_parsers.js +15 -5
  98. package/lib/util/platform.js +9 -1
  99. package/lib/util/player_configuration.js +23 -1
  100. package/lib/util/ts_parser.js +499 -0
  101. package/maintained-branches.md +2 -2
  102. package/package.json +4 -1
  103. package/roadmap.md +27 -7
  104. package/test/ads/ad_manager_unit.js +180 -29
  105. package/test/cast/cast_receiver_integration.js +97 -16
  106. package/test/cast/cast_receiver_unit.js +17 -12
  107. package/test/cast/cast_utils_unit.js +4 -1
  108. package/test/dash/dash_parser_content_protection_unit.js +1 -0
  109. package/test/dash/dash_parser_live_unit.js +1 -0
  110. package/test/dash/dash_parser_manifest_unit.js +93 -1
  111. package/test/dash/dash_parser_segment_base_unit.js +1 -0
  112. package/test/dash/dash_parser_segment_list_unit.js +1 -0
  113. package/test/dash/dash_parser_segment_template_unit.js +1 -0
  114. package/test/demo/demo_unit.js +2 -1
  115. package/test/hls/hls_live_unit.js +253 -19
  116. package/test/hls/hls_parser_unit.js +500 -12
  117. package/test/media/closed_caption_parser_unit.js +2 -1
  118. package/test/media/drm_engine_integration.js +3 -1
  119. package/test/media/media_source_engine_integration.js +102 -6
  120. package/test/media/media_source_engine_unit.js +10 -5
  121. package/test/media/playhead_unit.js +41 -0
  122. package/test/media/streaming_engine_integration.js +17 -1
  123. package/test/media/streaming_engine_unit.js +180 -24
  124. package/test/media/transmuxer_integration.js +21 -10
  125. package/test/player_integration.js +224 -82
  126. package/test/player_unit.js +92 -2
  127. package/test/polyfill/patchedmediakeys_apple_unit.js +124 -0
  128. package/test/test/assets/id3-metadata.aac +0 -0
  129. package/test/test/assets/id3-metadata.ts +0 -0
  130. package/test/test/assets/thumbnails-sprites.vtt +10 -0
  131. package/test/test/assets/thumbnails.vtt +10 -0
  132. package/test/test/util/dash_parser_util.js +2 -0
  133. package/test/test/util/fake_ad.js +21 -0
  134. package/test/test/util/fake_media_source_engine.js +7 -0
  135. package/test/test/util/id3_generator.js +100 -0
  136. package/test/test/util/manifest_generator.js +3 -6
  137. package/test/test/util/simple_fakes.js +7 -0
  138. package/test/test/util/stream_generator.js +38 -0
  139. package/test/test/util/test_scheme.js +43 -14
  140. package/test/text/vtt_text_parser_unit.js +11 -0
  141. package/test/ui/text_displayer_layout_unit.js +14 -0
  142. package/test/util/id3_utils_unit.js +116 -0
  143. package/test/util/ts_parser_unit.js +77 -0
  144. package/ui/controls.js +4 -1
  145. package/ui/less/containers.less +7 -0
  146. package/ui/settings_menu.js +11 -2
  147. package/ui/ui.js +43 -4
@@ -25,6 +25,14 @@ declare namespace shaka {
25
25
  * application. The track will not be automatically selected.
26
26
  */
27
27
  addTextTrackAsync (uri : string , language : string , kind : string , mimeType ? : string , codec ? : string , label ? : string , forced ? : boolean ) : Promise < shaka.extern.Track > ;
28
+ /**
29
+ * Adds the given thumbnails track to the loaded manifest.
30
+ * <code>load()</code> must resolve before calling. The presentation must
31
+ * have a duration.
32
+ * This returns the created track, which can immediately be used by the
33
+ * application.
34
+ */
35
+ addThumbnailsTrack (uri : string , mimeType ? : string ) : Promise < shaka.extern.Track > ;
28
36
  /**
29
37
  * Tell the player to use <code>mediaElement</code> for all <code>load</code>
30
38
  * requests until <code>detach</code> or <code>destroy</code> are called.
@@ -38,6 +46,11 @@ declare namespace shaka {
38
46
  * <code>detach</code>, or <code>unload</code>.
39
47
  */
40
48
  attach (mediaElement : HTMLMediaElement , initializeMediaSource ? : boolean ) : Promise < any > ;
49
+ /**
50
+ * Calling <code>attachCanvas</code> will tell the player to set canvas
51
+ * element for LCEVC decoding.
52
+ */
53
+ attachCanvas (canvas : HTMLCanvasElement | null ) : any ;
41
54
  /**
42
55
  * Cancel trick-play. If the player has not loaded content or is still loading
43
56
  * content this will be a no-op.
@@ -294,7 +307,7 @@ declare namespace shaka {
294
307
  * If the player has loaded content, and streaming seen an error, but the
295
308
  * could not resume streaming, this will return <code>false</code>.
296
309
  */
297
- retryStreaming ( ) : boolean ;
310
+ retryStreaming (retryDelaySeconds ? : number ) : boolean ;
298
311
  /**
299
312
  * Get the range of time (in seconds) that seeking is allowed. If the player
300
313
  * has not loaded content, this will return a range from 0 to 0.
@@ -302,10 +315,10 @@ declare namespace shaka {
302
315
  seekRange ( ) : shaka.extern.BufferedRange ;
303
316
  /**
304
317
  * Sets the current audio language and current variant role to the selected
305
- * language and role, and chooses a new variant if need be. If the player has
306
- * not loaded any content, this will be a no-op.
318
+ * language, role and channel count, and chooses a new variant if need be.
319
+ * If the player has not loaded any content, this will be a no-op.
307
320
  */
308
- selectAudioLanguage (language : string , role ? : string ) : any ;
321
+ selectAudioLanguage (language : string , role ? : string , channelsCount ? : number ) : any ;
309
322
  /**
310
323
  * Sets the current text language and current text role to the selected
311
324
  * language and role, and chooses a new variant if need be. If the player has
@@ -622,12 +635,14 @@ declare namespace shaka.ads {
622
635
  private noStructuralTyping_shaka_ads_ClientSideAd : any;
623
636
  constructor (imaAd : google.ima.Ad , imaAdManager : google.ima.AdsManager , video : HTMLMediaElement | null ) ;
624
637
  canSkipNow ( ) : any ;
638
+ getDescription ( ) : any ;
625
639
  getDuration ( ) : any ;
626
640
  getMinSuggestedDuration ( ) : any ;
627
641
  getPositionInSequence ( ) : any ;
628
642
  getRemainingTime ( ) : any ;
629
643
  getSequenceLength ( ) : any ;
630
644
  getTimeUntilSkippable ( ) : any ;
645
+ getTitle ( ) : any ;
631
646
  getVolume ( ) : any ;
632
647
  isLinear ( ) : any ;
633
648
  isMuted ( ) : any ;
@@ -648,12 +663,14 @@ declare namespace shaka.ads {
648
663
  private noStructuralTyping_shaka_ads_ServerSideAd : any;
649
664
  constructor (imaAd : google.ima.dai.api.Ad | null , video : HTMLMediaElement | null ) ;
650
665
  canSkipNow ( ) : any ;
666
+ getDescription ( ) : any ;
651
667
  getDuration ( ) : any ;
652
668
  getMinSuggestedDuration ( ) : any ;
653
669
  getPositionInSequence ( ) : any ;
654
670
  getRemainingTime ( ) : any ;
655
671
  getSequenceLength ( ) : any ;
656
672
  getTimeUntilSkippable ( ) : any ;
673
+ getTitle ( ) : any ;
657
674
  getVolume ( ) : any ;
658
675
  isLinear ( ) : any ;
659
676
  isMuted ( ) : any ;
@@ -761,6 +778,15 @@ declare namespace shaka.cast {
761
778
  }
762
779
  }
763
780
  // Generated from /home/runner/work/shaka-player/shaka-player/dist/shaka-player.compiled.debug.externs.js
781
+ declare namespace shaka.config {
782
+ enum AutoShowText {
783
+ ALWAYS = 1.0 ,
784
+ IF_PREFERRED_TEXT_LANGUAGE = 2.0 ,
785
+ IF_SUBTITLES_MAY_BE_NEEDED = 3.0 ,
786
+ NEVER = 0.0 ,
787
+ }
788
+ }
789
+ // Generated from /home/runner/work/shaka-player/shaka-player/dist/shaka-player.compiled.debug.externs.js
764
790
  declare namespace shaka.dash {
765
791
  /**
766
792
  * Creates a new DASH parser.
@@ -812,6 +838,17 @@ declare namespace shaka.hls {
812
838
  }
813
839
  }
814
840
  // Generated from /home/runner/work/shaka-player/shaka-player/dist/shaka-player.compiled.debug.externs.js
841
+ declare namespace shaka.lcevc {
842
+ class Dil implements shaka.util.IReleasable {
843
+ private noStructuralTyping_shaka_lcevc_Dil : any;
844
+ constructor (media : HTMLVideoElement | null , canvas : HTMLCanvasElement | null , dilConfig : shaka.extern.LcevcConfiguration ) ;
845
+ /**
846
+ * Close LCEVC Dil.
847
+ */
848
+ release ( ) : any ;
849
+ }
850
+ }
851
+ // Generated from /home/runner/work/shaka-player/shaka-player/dist/shaka-player.compiled.debug.externs.js
815
852
  declare namespace shaka.media {
816
853
  /**
817
854
  * Creates an InitSegmentReference, which provides the location to an
@@ -819,7 +856,7 @@ declare namespace shaka.media {
819
856
  */
820
857
  class InitSegmentReference {
821
858
  private noStructuralTyping_shaka_media_InitSegmentReference : any;
822
- constructor (uris : ( ) => string [] , startByte : number , endByte : number | null , mediaQuality ? : null | shaka.extern.MediaQualityInfo ) ;
859
+ constructor (uris : ( ) => string [] , startByte : number , endByte : number | null , mediaQuality ? : null | shaka.extern.MediaQualityInfo , timescale ? : number ) ;
823
860
  /**
824
861
  * Returns the offset from the start of the resource to the end of the
825
862
  * segment, inclusive. A value of null indicates that the segment extends
@@ -948,10 +985,10 @@ declare namespace shaka.media {
948
985
  */
949
986
  notifyMinSegmentStartTime (startTime : number ) : any ;
950
987
  /**
951
- * Gives PresentationTimeline a Stream's segments so it can size and position
988
+ * Gives PresentationTimeline an array of segments so it can size and position
952
989
  * the segment availability window, and account for missing segment
953
- * information. This function should be called once for each Stream (no more,
954
- * no less).
990
+ * information. These segments do not necessarily need to all be from the
991
+ * same stream.
955
992
  */
956
993
  notifySegments (references : shaka.media.SegmentReference [] ) : any ;
957
994
  /**
@@ -982,6 +1019,11 @@ declare namespace shaka.media {
982
1019
  * @param duration The presentation's duration in seconds. Infinity indicates that the presentation continues indefinitely.
983
1020
  */
984
1021
  setDuration (duration : number ) : any ;
1022
+ /**
1023
+ * Sets the presentation's start time.
1024
+ * @param presentationStartTime The wall-clock time, in seconds, when the presentation started or will start. Only required for live.
1025
+ */
1026
+ setPresentationStartTime (presentationStartTime : number ) : any ;
985
1027
  /**
986
1028
  * Sets the presentation's segment availability duration. The segment
987
1029
  * availability duration should only be set for live.
@@ -1139,6 +1181,10 @@ declare namespace shaka.media {
1139
1181
  * Returns the segment's status.
1140
1182
  */
1141
1183
  getStatus ( ) : shaka.media.SegmentReference.Status ;
1184
+ /**
1185
+ * Returns the segment's thumbnail sprite.
1186
+ */
1187
+ getThumbnailSprite ( ) : shaka.media.SegmentReference.ThumbnailSprite | null ;
1142
1188
  /**
1143
1189
  * Returns the segment's explicit tile duration.
1144
1190
  * Only defined in image segments.
@@ -1156,6 +1202,10 @@ declare namespace shaka.media {
1156
1202
  * Mark the reference as unavailable.
1157
1203
  */
1158
1204
  markAsUnavailable ( ) : any ;
1205
+ /**
1206
+ * Set the segment's thumbnail sprite.
1207
+ */
1208
+ setThumbnailSprite (thumbnailSprite : shaka.media.SegmentReference.ThumbnailSprite ) : any ;
1159
1209
  }
1160
1210
  }
1161
1211
  // Generated from /home/runner/work/shaka-player/shaka-player/dist/shaka-player.compiled.debug.externs.js
@@ -1175,6 +1225,10 @@ declare namespace shaka.media.SegmentReference {
1175
1225
  }
1176
1226
  }
1177
1227
  // Generated from /home/runner/work/shaka-player/shaka-player/dist/shaka-player.compiled.debug.externs.js
1228
+ declare namespace shaka.media.SegmentReference {
1229
+ type ThumbnailSprite = { height : number , positionX : number , positionY : number , width : number } ;
1230
+ }
1231
+ // Generated from /home/runner/work/shaka-player/shaka-player/dist/shaka-player.compiled.debug.externs.js
1178
1232
  declare namespace shaka.net {
1179
1233
  class DataUriPlugin {
1180
1234
  private noStructuralTyping_shaka_net_DataUriPlugin : any;
@@ -1540,8 +1594,13 @@ declare namespace shaka.polyfill {
1540
1594
  private noStructuralTyping_shaka_polyfill_PatchedMediaKeysApple : any;
1541
1595
  /**
1542
1596
  * Installs the polyfill if needed.
1597
+ * @param enableUninstall enables uninstalling the polyfill
1543
1598
  */
1544
- static install ( ) : any ;
1599
+ static install (enableUninstall : boolean ) : any ;
1600
+ /**
1601
+ * Uninstalls the polyfill if needed and enabled.
1602
+ */
1603
+ static uninstall ( ) : any ;
1545
1604
  }
1546
1605
  }
1547
1606
  // Generated from /home/runner/work/shaka-player/shaka-player/dist/shaka-player.compiled.debug.externs.js
@@ -2200,6 +2259,8 @@ declare namespace shaka.util.Error {
2200
2259
  BUFFER_READ_OUT_OF_BOUNDS = 3000.0 ,
2201
2260
  CANNOT_ADD_EXTERNAL_TEXT_TO_LIVE_STREAM = 4033.0 ,
2202
2261
  CANNOT_ADD_EXTERNAL_TEXT_TO_SRC_EQUALS = 2012.0 ,
2262
+ CANNOT_ADD_EXTERNAL_THUMBNAILS_TO_LIVE_STREAM = 4045.0 ,
2263
+ CANNOT_ADD_EXTERNAL_THUMBNAILS_TO_SRC_EQUALS = 2016.0 ,
2203
2264
  CANNOT_STORE_LIVE_OFFLINE = 9005.0 ,
2204
2265
  CAST_API_UNAVAILABLE = 8000.0 ,
2205
2266
  CAST_CANCELED_BY_USER = 8004.0 ,
@@ -2312,6 +2373,7 @@ declare namespace shaka.util.Error {
2312
2373
  UNABLE_TO_GUESS_MANIFEST_TYPE = 4000.0 ,
2313
2374
  UNEXPECTED_CAST_ERROR = 8003.0 ,
2314
2375
  UNEXPECTED_TEST_REQUEST = 1009.0 ,
2376
+ UNSUPPORTED_EXTERNAL_THUMBNAILS_URI = 2017.0 ,
2315
2377
  UNSUPPORTED_SCHEME = 1000.0 ,
2316
2378
  VIDEO_ERROR = 3016.0 ,
2317
2379
  WEBM_CUES_ELEMENT_MISSING = 3007.0 ,
@@ -2503,6 +2565,17 @@ declare namespace shaka.util {
2503
2565
  }
2504
2566
  }
2505
2567
  // Generated from /home/runner/work/shaka-player/shaka-player/dist/shaka-player.compiled.debug.externs.js
2568
+ declare namespace shaka.util {
2569
+ class Id3Utils {
2570
+ private noStructuralTyping_shaka_util_Id3Utils : any;
2571
+ /**
2572
+ * Returns an array of ID3 frames found in all the ID3 tags in the id3Data
2573
+ * @param id3Data - The ID3 data containing one or more ID3 tags
2574
+ */
2575
+ static getID3Frames (id3Data : Uint8Array | null ) : shaka.extern.MetadataFrame [] ;
2576
+ }
2577
+ }
2578
+ // Generated from /home/runner/work/shaka-player/shaka-player/dist/shaka-player.compiled.debug.externs.js
2506
2579
  declare namespace shaka.util {
2507
2580
  class LanguageUtils {
2508
2581
  private noStructuralTyping_shaka_util_LanguageUtils : any;
@@ -2767,6 +2840,12 @@ declare namespace shaka.util {
2767
2840
  }
2768
2841
  }
2769
2842
  // Generated from /home/runner/work/shaka-player/shaka-player/dist/shaka-player.compiled.debug.externs.js
2843
+ declare namespace shaka.util {
2844
+ class TsParser {
2845
+ private noStructuralTyping_shaka_util_TsParser : any;
2846
+ }
2847
+ }
2848
+ // Generated from /home/runner/work/shaka-player/shaka-player/dist/shaka-player.compiled.debug.externs.js
2770
2849
  declare namespace shaka.util {
2771
2850
  class Uint8ArrayUtils {
2772
2851
  private noStructuralTyping_shaka_util_Uint8ArrayUtils : any;
@@ -3121,6 +3200,60 @@ declare namespace ಠ_ಠ.clutz {
3121
3200
  keys : ( JWK | null ) [] | null ;
3122
3201
  }
3123
3202
  }
3203
+ // Generated from /home/runner/work/shaka-player/shaka-player/externs/lcevc.js
3204
+ declare namespace LcevcDil {
3205
+ /**
3206
+ * LCEVC DIL constructor
3207
+ */
3208
+ class LcevcDIL {
3209
+ private noStructuralTyping_LcevcDil_LcevcDIL : any;
3210
+ constructor (media : HTMLVideoElement | null , canvas : HTMLCanvasElement | null , dilConfig : shaka.extern.LcevcConfiguration ) ;
3211
+ /**
3212
+ * Append the video buffers before they are appended to
3213
+ * Media Source Extensions SourceBuffer. Here the lcevc data
3214
+ * will be parsed and managed to enhance frames based on timestamps.
3215
+ * @param data Video Buffer Data.
3216
+ * @param type Type of Video Buffer Data.
3217
+ * @param variantId Variant that the fragment belongs to.
3218
+ */
3219
+ appendBuffer (data : ArrayBuffer | ArrayBufferView , type : string , variantId : number ) : any ;
3220
+ /**
3221
+ * Close LCEVC DIL
3222
+ */
3223
+ close ( ) : any ;
3224
+ /**
3225
+ * Set container Format for LCEVC Data Parsing.
3226
+ * @param containerFormat container type of the stream.
3227
+ */
3228
+ setContainerFormat (containerFormat : number ) : any ;
3229
+ /**
3230
+ * Set current variant as variantId to the LCEVC decoder
3231
+ * @param autoBufferSwitch is lcevcDil mode that switches variant when the downloaded buffer from last variant has finished playing and buffers from the new variant starts to play.
3232
+ */
3233
+ setLevelSwitching (variantId : number , autoBufferSwitch : boolean ) : any ;
3234
+ }
3235
+ }
3236
+ // Generated from /home/runner/work/shaka-player/shaka-player/externs/lcevc.js
3237
+ declare namespace LcevcDil.SupportObject {
3238
+ /**
3239
+ * LCEVC Support CheckList Error if any.
3240
+ */
3241
+ let SupportError : string ;
3242
+ }
3243
+ // Generated from /home/runner/work/shaka-player/shaka-player/externs/lcevc.js
3244
+ declare namespace LcevcDil.SupportObject {
3245
+ /**
3246
+ * LCEVC Support Checklist Result
3247
+ */
3248
+ let SupportStatus : boolean ;
3249
+ }
3250
+ // Generated from /home/runner/work/shaka-player/shaka-player/externs/lcevc.js
3251
+ declare namespace LcevcDil.SupportObject {
3252
+ /**
3253
+ * Check if canvas has WebGL support
3254
+ */
3255
+ function webGLSupport (canvas : HTMLCanvasElement | null ) : boolean ;
3256
+ }
3124
3257
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/mdl.js
3125
3258
  declare namespace ಠ_ಠ.clutz {
3126
3259
  class MaterialLayout {
@@ -3184,14 +3317,6 @@ declare namespace muxjs.mp4 {
3184
3317
  type ClosedCaption = { endPts : number , endTime : number , startPts : number , startTime : number , stream : string , text : string } ;
3185
3318
  }
3186
3319
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/mux.js
3187
- declare namespace muxjs.mp4 {
3188
- type Metadata = { cueTime : number , data : Uint8Array , dispatchType : string , dts : number , frames : muxjs.mp4.MetadataFrame [] , pts : number } ;
3189
- }
3190
- // Generated from /home/runner/work/shaka-player/shaka-player/externs/mux.js
3191
- declare namespace muxjs.mp4 {
3192
- type MetadataFrame = { data : string , description : string , id : string , key : string , value : string } ;
3193
- }
3194
- // Generated from /home/runner/work/shaka-player/shaka-player/externs/mux.js
3195
3320
  declare namespace muxjs.mp4 {
3196
3321
  type ParsedClosedCaptions = { captionStreams : { [ key: string ]: boolean } | null , captions : muxjs.mp4.ClosedCaption [] } ;
3197
3322
  }
@@ -3218,12 +3343,16 @@ declare namespace muxjs.mp4 {
3218
3343
  */
3219
3344
  on (type : string , listener : Function | null ) : any ;
3220
3345
  push (data : Uint8Array ) : any ;
3346
+ /**
3347
+ * Reset captions.
3348
+ */
3349
+ resetCaptions ( ) : any ;
3221
3350
  setBaseMediaDecodeTime (time : number ) : any ;
3222
3351
  }
3223
3352
  }
3224
3353
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/mux.js
3225
3354
  declare namespace muxjs.mp4.Transmuxer {
3226
- type Segment = { captions : any [] , data : Uint8Array , initSegment : Uint8Array , metadata : any [] } ;
3355
+ type Segment = { captions : any [] , data : Uint8Array , initSegment : Uint8Array } ;
3227
3356
  }
3228
3357
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/polyfill.js
3229
3358
  declare namespace window {
@@ -3390,6 +3519,7 @@ declare namespace shaka.extern {
3390
3519
  */
3391
3520
  interface IAd extends shaka.util.IReleasable {
3392
3521
  canSkipNow ( ) : boolean ;
3522
+ getDescription ( ) : string ;
3393
3523
  getDuration ( ) : number ;
3394
3524
  /**
3395
3525
  * Gets the minimum suggested duration. Defaults to being equivalent to
@@ -3400,6 +3530,7 @@ declare namespace shaka.extern {
3400
3530
  getRemainingTime ( ) : number ;
3401
3531
  getSequenceLength ( ) : number ;
3402
3532
  getTimeUntilSkippable ( ) : number ;
3533
+ getTitle ( ) : string ;
3403
3534
  getVolume ( ) : number ;
3404
3535
  isLinear ( ) : boolean ;
3405
3536
  isMuted ( ) : boolean ;
@@ -3429,7 +3560,7 @@ declare namespace shaka.extern {
3429
3560
  initClientSide (adContainer : HTMLElement , video : HTMLMediaElement ) : any ;
3430
3561
  initServerSide (adContainer : HTMLElement , video : HTMLMediaElement ) : any ;
3431
3562
  onAssetUnload ( ) : any ;
3432
- onCueMetadataChange (value : shaka.extern.ID3Metadata ) : any ;
3563
+ onCueMetadataChange (value : shaka.extern.MetadataFrame ) : any ;
3433
3564
  onDashTimedMetadata (region : shaka.extern.TimelineRegionInfo ) : any ;
3434
3565
  onHlsTimedMetadata (metadata : shaka.extern.ID3Metadata , timestampOffset : number ) : any ;
3435
3566
  release ( ) : any ;
@@ -3573,7 +3704,7 @@ declare namespace shaka.extern.ManifestParser {
3573
3704
  }
3574
3705
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/manifest_parser.js
3575
3706
  declare namespace shaka.extern.ManifestParser {
3576
- type PlayerInterface = { enableLowLatencyMode : ( ) => any , filter : (a : shaka.extern.Manifest ) => Promise < any > , isAutoLowLatencyMode : ( ) => boolean , isLowLatencyMode : ( ) => boolean , makeTextStreamsForClosedCaptions : (a : shaka.extern.Manifest ) => any , modifyManifestRequest : (a : shaka.extern.Request , b : shaka.util.CmcdManager.ManifestInfo ) => any , modifySegmentRequest : (a : shaka.extern.Request , b : shaka.util.CmcdManager.SegmentInfo ) => any , networkingEngine : shaka.net.NetworkingEngine , onError : (a : shaka.util.Error ) => any , onEvent : shaka.util.EventManager.ListenerType , onTimelineRegionAdded : (a : shaka.extern.TimelineRegionInfo ) => any , updateDuration : ( ) => any } ;
3707
+ type PlayerInterface = { enableLowLatencyMode : ( ) => any , filter : (a : shaka.extern.Manifest ) => Promise < any > , isAutoLowLatencyMode : ( ) => boolean , isLowLatencyMode : ( ) => boolean , makeTextStreamsForClosedCaptions : (a : shaka.extern.Manifest ) => any , modifyManifestRequest : (a : shaka.extern.Request , b : shaka.util.CmcdManager.ManifestInfo ) => any , modifySegmentRequest : (a : shaka.extern.Request , b : shaka.util.CmcdManager.SegmentInfo ) => any , networkingEngine : shaka.net.NetworkingEngine , newDrmInfo : (a : shaka.extern.Stream ) => any , onError : (a : shaka.util.Error ) => any , onEvent : shaka.util.EventManager.ListenerType , onTimelineRegionAdded : (a : shaka.extern.TimelineRegionInfo ) => any , updateDuration : ( ) => any } ;
3577
3708
  }
3578
3709
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/mp4_parser.js
3579
3710
  declare namespace shaka.extern {
@@ -3838,7 +3969,7 @@ declare namespace shaka.extern {
3838
3969
  }
3839
3970
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3840
3971
  declare namespace shaka.extern {
3841
- type AbrConfiguration = { advanced : shaka.extern.AdvancedAbrConfiguration , bandwidthDowngradeTarget : number , bandwidthUpgradeTarget : number , defaultBandwidthEstimate : number , enabled : boolean , ignoreDevicePixelRatio : boolean , restrictToElementSize : boolean , restrictions : shaka.extern.Restrictions , switchInterval : number , useNetworkInformation : boolean } ;
3972
+ type AbrConfiguration = { advanced : shaka.extern.AdvancedAbrConfiguration , bandwidthDowngradeTarget : number , bandwidthUpgradeTarget : number , defaultBandwidthEstimate : number , enabled : boolean , ignoreDevicePixelRatio : boolean , restrictToElementSize : boolean , restrictToScreenSize : boolean , restrictions : shaka.extern.Restrictions , switchInterval : number , useNetworkInformation : boolean } ;
3842
3973
  }
3843
3974
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3844
3975
  declare namespace shaka.extern {
@@ -3866,7 +3997,7 @@ declare namespace shaka.extern {
3866
3997
  }
3867
3998
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3868
3999
  declare namespace shaka.extern {
3869
- type DashManifestConfiguration = { autoCorrectDrift : boolean , clockSyncUri : string , disableXlinkProcessing : boolean , ignoreDrmInfo : boolean , ignoreEmptyAdaptationSet : boolean , ignoreMaxSegmentDuration : boolean , ignoreMinBufferTime : boolean , ignoreSuggestedPresentationDelay : boolean , initialSegmentLimit : number , keySystemsByURI : { [ key: string ]: string } , manifestPreprocessor : (a : Element ) => any , xlinkFailGracefully : boolean } ;
4000
+ type DashManifestConfiguration = { autoCorrectDrift : boolean , clockSyncUri : string , disableXlinkProcessing : boolean , ignoreDrmInfo : boolean , ignoreEmptyAdaptationSet : boolean , ignoreMaxSegmentDuration : boolean , ignoreMinBufferTime : boolean , ignoreSuggestedPresentationDelay : boolean , initialSegmentLimit : number , keySystemsByURI : { [ key: string ]: string } , manifestPreprocessor : (a : Element ) => any , sequenceMode : boolean , xlinkFailGracefully : boolean } ;
3870
4001
  }
3871
4002
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3872
4003
  declare namespace shaka.extern {
@@ -3882,17 +4013,21 @@ declare namespace shaka.extern {
3882
4013
  }
3883
4014
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3884
4015
  declare namespace shaka.extern {
3885
- type HlsManifestConfiguration = { defaultAudioCodec : string , defaultVideoCodec : string , ignoreImageStreamFailures : boolean , ignoreManifestProgramDateTime : boolean , ignoreTextStreamFailures : boolean , mediaPlaylistFullMimeType : string } ;
4016
+ type HlsManifestConfiguration = { defaultAudioCodec : string , defaultVideoCodec : string , ignoreImageStreamFailures : boolean , ignoreManifestProgramDateTime : boolean , ignoreTextStreamFailures : boolean , liveSegmentsDelay : number , mediaPlaylistFullMimeType : string , useSafariBehaviorForLive : boolean } ;
3886
4017
  }
3887
4018
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3888
4019
  declare namespace shaka.extern {
3889
- type ID3Metadata = { [ key: string ]: any } ;
4020
+ type ID3Metadata = { cueTime : number | null , data : Uint8Array , dts : number | null , frames : shaka.extern.MetadataFrame [] , pts : number | null } ;
3890
4021
  }
3891
4022
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3892
4023
  declare namespace shaka.extern {
3893
4024
  type LanguageRole = { label : string | null , language : string , role : string } ;
3894
4025
  }
3895
4026
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4027
+ declare namespace shaka.extern {
4028
+ type LcevcConfiguration = { drawLogo : boolean , dynamicPerformanceScaling : boolean , enabled : boolean , logLevel : number } ;
4029
+ }
4030
+ // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3896
4031
  declare namespace shaka.extern {
3897
4032
  type ManifestConfiguration = { availabilityWindowOverride : number , dash : shaka.extern.DashManifestConfiguration , defaultPresentationDelay : number , disableAudio : boolean , disableText : boolean , disableThumbnails : boolean , disableVideo : boolean , hls : shaka.extern.HlsManifestConfiguration , retryParameters : shaka.extern.RetryParameters , segmentRelativeVttTiming : boolean } ;
3898
4033
  }
@@ -3901,12 +4036,28 @@ declare namespace shaka.extern {
3901
4036
  type MediaQualityInfo = { audioSamplingRate : number | null , bandwidth : number , channelsCount : number | null , codecs : string , contentType : string , frameRate : number | null , height : number | null , mimeType : string | null , pixelAspectRatio : string | null , width : number | null } ;
3902
4037
  }
3903
4038
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4039
+ declare namespace shaka.extern {
4040
+ type MediaSourceConfiguration = { sourceBufferExtraFeatures : string } ;
4041
+ }
4042
+ // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4043
+ declare namespace shaka.extern {
4044
+ type MetadataFrame = { data : ArrayBuffer | null | string , description : string , key : string } ;
4045
+ }
4046
+ // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4047
+ declare namespace shaka.extern {
4048
+ type MetadataRawFrame = { data : Uint8Array | null , size : number , type : string } ;
4049
+ }
4050
+ // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3904
4051
  declare namespace shaka.extern {
3905
4052
  type OfflineConfiguration = { downloadSizeCallback : (a : number ) => Promise < boolean > , numberOfParallelDownloads : number , progressCallback : (a : shaka.extern.StoredContent , b : number ) => any , trackSelectionCallback : (a : shaka.extern.TrackList ) => Promise < shaka.extern.TrackList > , usePersistentLicense : boolean } ;
3906
4053
  }
3907
4054
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3908
4055
  declare namespace shaka.extern {
3909
- type PlayerConfiguration = { abr : shaka.extern.AbrConfiguration , abrFactory : shaka.extern.AbrManager.Factory , cmcd : shaka.extern.CmcdConfiguration , drm : shaka.extern.DrmConfiguration , manifest : shaka.extern.ManifestConfiguration , offline : shaka.extern.OfflineConfiguration , playRangeEnd : number , playRangeStart : number , preferForcedSubs : boolean , preferredAudioChannelCount : number , preferredAudioCodecs : string [] , preferredAudioLanguage : string , preferredDecodingAttributes : string [] , preferredTextLanguage : string , preferredTextRole : string , preferredVariantRole : string , preferredVideoCodecs : string [] , restrictions : shaka.extern.Restrictions , streaming : shaka.extern.StreamingConfiguration , textDisplayFactory : shaka.extern.TextDisplayer.Factory } ;
4056
+ type PlayerConfiguration = { abr : shaka.extern.AbrConfiguration , abrFactory : shaka.extern.AbrManager.Factory , autoShowText : shaka.config.AutoShowText , cmcd : shaka.extern.CmcdConfiguration , drm : shaka.extern.DrmConfiguration , lcevc : shaka.extern.LcevcConfiguration , manifest : shaka.extern.ManifestConfiguration , mediaSource : shaka.extern.MediaSourceConfiguration , offline : shaka.extern.OfflineConfiguration , playRangeEnd : number , playRangeStart : number , preferForcedSubs : boolean , preferredAudioChannelCount : number , preferredAudioCodecs : string [] , preferredAudioLanguage : string , preferredDecodingAttributes : string [] , preferredTextLanguage : string , preferredTextRole : string , preferredVariantRole : string , preferredVideoCodecs : string [] , restrictions : shaka.extern.Restrictions , streaming : shaka.extern.StreamingConfiguration , textDisplayFactory : shaka.extern.TextDisplayer.Factory } ;
4057
+ }
4058
+ // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4059
+ declare namespace shaka.extern {
4060
+ type ProducerReferenceTime = { programStartDate : Date | null , wallClockTime : number } ;
3910
4061
  }
3911
4062
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3912
4063
  declare namespace shaka.extern {
@@ -3922,7 +4073,7 @@ declare namespace shaka.extern {
3922
4073
  }
3923
4074
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3924
4075
  declare namespace shaka.extern {
3925
- type StreamingConfiguration = { alwaysStreamText : boolean , autoLowLatencyMode : boolean , bufferBehind : number , bufferingGoal : number , dispatchAllEmsgBoxes : boolean , durationBackoff : number , failureCallback : (a : shaka.util.Error ) => any , forceHTTPS : boolean , forceTransmuxTS : boolean , gapDetectionThreshold : number , ignoreTextStreamFailures : boolean , inaccurateManifestTolerance : number , lowLatencyMode : boolean , maxDisabledTime : number , observeQualityChanges : boolean , preferNativeHls : boolean , rebufferingGoal : number , retryParameters : shaka.extern.RetryParameters , safeSeekOffset : number , stallEnabled : boolean , stallSkip : number , stallThreshold : number , startAtSegmentBoundary : boolean , updateIntervalSeconds : number , useNativeHlsOnSafari : boolean } ;
4076
+ type StreamingConfiguration = { alwaysStreamText : boolean , autoLowLatencyMode : boolean , bufferBehind : number , bufferingGoal : number , dispatchAllEmsgBoxes : boolean , durationBackoff : number , failureCallback : (a : shaka.util.Error ) => any , forceHTTPS : boolean , forceTransmux : boolean , gapDetectionThreshold : number , ignoreTextStreamFailures : boolean , inaccurateManifestTolerance : number , lowLatencyMode : boolean , maxDisabledTime : number , observeQualityChanges : boolean , parsePrftBox : boolean , preferNativeHls : boolean , rebufferingGoal : number , retryParameters : shaka.extern.RetryParameters , safeSeekOffset : number , stallEnabled : boolean , stallSkip : number , stallThreshold : number , startAtSegmentBoundary : boolean , updateIntervalSeconds : number , useNativeHlsOnSafari : boolean } ;
3926
4077
  }
3927
4078
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3928
4079
  declare namespace shaka.extern {
@@ -3930,7 +4081,7 @@ declare namespace shaka.extern {
3930
4081
  }
3931
4082
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3932
4083
  declare namespace shaka.extern {
3933
- type Thumbnail = { duration : number , height : number , imageHeight : number , imageWidth : number , positionX : number , positionY : number , startTime : number , uris : string [] , width : number } ;
4084
+ type Thumbnail = { duration : number , height : number , imageHeight : number , imageWidth : number , positionX : number , positionY : number , sprite : boolean , startTime : number , uris : string [] , width : number } ;
3934
4085
  }
3935
4086
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3936
4087
  declare namespace shaka.extern {