shaka-player 4.2.5 → 4.3.1

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 (143) hide show
  1. package/.github/workflows/build-and-test.yaml +7 -0
  2. package/.github/workflows/sync-labels.yaml +1 -1
  3. package/.github/workflows/update-issues.yaml +1 -1
  4. package/AUTHORS +4 -0
  5. package/CHANGELOG.md +114 -74
  6. package/CONTRIBUTORS +4 -0
  7. package/README.md +14 -0
  8. package/conditional/dummy_cast_proxy.js +120 -0
  9. package/demo/common/assets.js +58 -0
  10. package/demo/common/message_ids.js +22 -1
  11. package/demo/config.js +89 -5
  12. package/demo/demo.less +7 -1
  13. package/demo/index.html +8 -1
  14. package/demo/locales/en.json +21 -1
  15. package/demo/locales/source.json +82 -2
  16. package/demo/main.js +57 -1
  17. package/demo/search.js +2 -0
  18. package/demo/visualizer.js +337 -0
  19. package/demo/visualizer_button.js +103 -0
  20. package/dist/controls.css +1 -1
  21. package/dist/controls.css.map +1 -1
  22. package/dist/demo.compiled.debug.js +107 -88
  23. package/dist/demo.compiled.debug.map +4 -4
  24. package/dist/demo.compiled.js +107 -88
  25. package/dist/demo.compiled.map +4 -4
  26. package/dist/demo.css +1 -1
  27. package/dist/demo.css.map +1 -1
  28. package/dist/deps.js +21 -13
  29. package/dist/locales.js +31 -31
  30. package/dist/receiver.compiled.debug.js +75 -77
  31. package/dist/receiver.compiled.debug.map +3 -3
  32. package/dist/receiver.compiled.js +75 -77
  33. package/dist/receiver.compiled.map +3 -3
  34. package/dist/shaka-player.compiled.d.ts +181 -27
  35. package/dist/shaka-player.compiled.debug.d.ts +181 -27
  36. package/dist/shaka-player.compiled.debug.externs.js +169 -31
  37. package/dist/shaka-player.compiled.debug.js +510 -450
  38. package/dist/shaka-player.compiled.debug.map +4 -4
  39. package/dist/shaka-player.compiled.externs.js +169 -31
  40. package/dist/shaka-player.compiled.js +912 -874
  41. package/dist/shaka-player.compiled.map +4 -4
  42. package/dist/shaka-player.ui.d.ts +181 -27
  43. package/dist/shaka-player.ui.debug.d.ts +181 -27
  44. package/dist/shaka-player.ui.debug.externs.js +169 -31
  45. package/dist/shaka-player.ui.debug.js +533 -471
  46. package/dist/shaka-player.ui.debug.map +4 -4
  47. package/dist/shaka-player.ui.externs.js +169 -31
  48. package/dist/shaka-player.ui.js +1073 -1036
  49. package/dist/shaka-player.ui.map +4 -4
  50. package/docs/design/lcevc-architecture.png +0 -0
  51. package/docs/design/lcevc-demo.png +0 -0
  52. package/docs/design/lcevc-integration.md +72 -0
  53. package/docs/tutorials/fairplay.md +7 -0
  54. package/docs/tutorials/faq.md +1 -1
  55. package/docs/tutorials/ui.md +7 -7
  56. package/docs/tutorials/upgrade.md +6 -0
  57. package/externs/ima.js +13 -1
  58. package/externs/lcevc.js +81 -0
  59. package/externs/mux.js +1 -42
  60. package/externs/shaka/ads.js +11 -1
  61. package/externs/shaka/manifest_parser.js +5 -1
  62. package/externs/shaka/mp4_parser.js +3 -0
  63. package/externs/shaka/player.js +178 -15
  64. package/lib/abr/simple_abr_manager.js +7 -0
  65. package/lib/ads/ad_manager.js +0 -8
  66. package/lib/ads/client_side_ad.js +15 -0
  67. package/lib/ads/client_side_ad_manager.js +21 -8
  68. package/lib/ads/server_side_ad.js +15 -0
  69. package/lib/ads/server_side_ad_manager.js +3 -3
  70. package/lib/cast/cast_utils.js +2 -0
  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 +108 -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 +808 -384
  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_capabilities.js +36 -0
  81. package/lib/media/media_source_engine.js +113 -28
  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 +142 -12
  85. package/lib/media/transmuxer.js +78 -21
  86. package/lib/offline/storage.js +1 -0
  87. package/lib/player.js +456 -77
  88. package/lib/polyfill/media_capabilities.js +9 -5
  89. package/lib/polyfill/patchedmediakeys_apple.js +63 -4
  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/mime_utils.js +3 -6
  96. package/lib/util/mp4_box_parsers.js +39 -5
  97. package/lib/util/mp4_parser.js +35 -0
  98. package/lib/util/player_configuration.js +23 -1
  99. package/lib/util/stream_utils.js +5 -3
  100. package/lib/util/ts_parser.js +499 -0
  101. package/maintained-branches.md +2 -2
  102. package/package.json +7 -4
  103. package/roadmap.md +5 -3
  104. package/test/ads/ad_manager_unit.js +182 -29
  105. package/test/cast/cast_utils_unit.js +3 -1
  106. package/test/dash/dash_parser_content_protection_unit.js +1 -0
  107. package/test/dash/dash_parser_live_unit.js +1 -0
  108. package/test/dash/dash_parser_manifest_unit.js +93 -1
  109. package/test/dash/dash_parser_segment_base_unit.js +1 -0
  110. package/test/dash/dash_parser_segment_list_unit.js +1 -0
  111. package/test/dash/dash_parser_segment_template_unit.js +1 -0
  112. package/test/demo/demo_unit.js +2 -1
  113. package/test/hls/hls_live_unit.js +253 -19
  114. package/test/hls/hls_parser_unit.js +631 -12
  115. package/test/media/closed_caption_parser_unit.js +2 -1
  116. package/test/media/drm_engine_integration.js +3 -1
  117. package/test/media/media_source_engine_integration.js +71 -6
  118. package/test/media/media_source_engine_unit.js +10 -5
  119. package/test/media/streaming_engine_integration.js +4 -1
  120. package/test/media/streaming_engine_unit.js +144 -1
  121. package/test/media/transmuxer_integration.js +21 -10
  122. package/test/player_integration.js +224 -82
  123. package/test/player_unit.js +5 -2
  124. package/test/polyfill/media_capabilities_unit.js +21 -23
  125. package/test/polyfill/patchedmediakeys_apple_unit.js +130 -0
  126. package/test/test/assets/id3-metadata.aac +0 -0
  127. package/test/test/assets/id3-metadata.ts +0 -0
  128. package/test/test/assets/thumbnails-sprites.vtt +10 -0
  129. package/test/test/assets/thumbnails.vtt +10 -0
  130. package/test/test/util/dash_parser_util.js +2 -0
  131. package/test/test/util/fake_ad.js +21 -0
  132. package/test/test/util/fake_media_source_engine.js +7 -0
  133. package/test/test/util/id3_generator.js +100 -0
  134. package/test/test/util/manifest_generator.js +3 -6
  135. package/test/test/util/simple_fakes.js +4 -0
  136. package/test/test/util/stream_generator.js +38 -0
  137. package/test/test/util/test_scheme.js +43 -14
  138. package/test/text/vtt_text_parser_unit.js +11 -0
  139. package/test/util/id3_utils_unit.js +116 -0
  140. package/test/util/ts_parser_unit.js +77 -0
  141. package/third_party/closure-uri/uri.js +1 -1
  142. package/ui/less/containers.less +7 -0
  143. 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.
@@ -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.ui.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.ui.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.ui.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.ui.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.ui.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.ui.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.ui.debug.externs.js
1178
1232
  declare namespace shaka.net {
1179
1233
  class DataUriPlugin {
1180
1234
  private noStructuralTyping_shaka_net_DataUriPlugin : any;
@@ -1550,8 +1604,13 @@ declare namespace shaka.polyfill {
1550
1604
  private noStructuralTyping_shaka_polyfill_PatchedMediaKeysApple : any;
1551
1605
  /**
1552
1606
  * Installs the polyfill if needed.
1607
+ * @param enableUninstall enables uninstalling the polyfill
1553
1608
  */
1554
- static install ( ) : any ;
1609
+ static install (enableUninstall ? : boolean ) : any ;
1610
+ /**
1611
+ * Uninstalls the polyfill if needed and enabled.
1612
+ */
1613
+ static uninstall ( ) : any ;
1555
1614
  }
1556
1615
  }
1557
1616
  // Generated from /home/runner/work/shaka-player/shaka-player/dist/shaka-player.ui.debug.externs.js
@@ -2677,6 +2736,8 @@ declare namespace shaka.util.Error {
2677
2736
  BUFFER_READ_OUT_OF_BOUNDS = 3000.0 ,
2678
2737
  CANNOT_ADD_EXTERNAL_TEXT_TO_LIVE_STREAM = 4033.0 ,
2679
2738
  CANNOT_ADD_EXTERNAL_TEXT_TO_SRC_EQUALS = 2012.0 ,
2739
+ CANNOT_ADD_EXTERNAL_THUMBNAILS_TO_LIVE_STREAM = 4045.0 ,
2740
+ CANNOT_ADD_EXTERNAL_THUMBNAILS_TO_SRC_EQUALS = 2016.0 ,
2680
2741
  CANNOT_STORE_LIVE_OFFLINE = 9005.0 ,
2681
2742
  CAST_API_UNAVAILABLE = 8000.0 ,
2682
2743
  CAST_CANCELED_BY_USER = 8004.0 ,
@@ -2789,6 +2850,7 @@ declare namespace shaka.util.Error {
2789
2850
  UNABLE_TO_GUESS_MANIFEST_TYPE = 4000.0 ,
2790
2851
  UNEXPECTED_CAST_ERROR = 8003.0 ,
2791
2852
  UNEXPECTED_TEST_REQUEST = 1009.0 ,
2853
+ UNSUPPORTED_EXTERNAL_THUMBNAILS_URI = 2017.0 ,
2792
2854
  UNSUPPORTED_SCHEME = 1000.0 ,
2793
2855
  VIDEO_ERROR = 3016.0 ,
2794
2856
  WEBM_CUES_ELEMENT_MISSING = 3007.0 ,
@@ -2980,6 +3042,17 @@ declare namespace shaka.util {
2980
3042
  }
2981
3043
  }
2982
3044
  // Generated from /home/runner/work/shaka-player/shaka-player/dist/shaka-player.ui.debug.externs.js
3045
+ declare namespace shaka.util {
3046
+ class Id3Utils {
3047
+ private noStructuralTyping_shaka_util_Id3Utils : any;
3048
+ /**
3049
+ * Returns an array of ID3 frames found in all the ID3 tags in the id3Data
3050
+ * @param id3Data - The ID3 data containing one or more ID3 tags
3051
+ */
3052
+ static getID3Frames (id3Data : Uint8Array | null ) : shaka.extern.MetadataFrame [] ;
3053
+ }
3054
+ }
3055
+ // Generated from /home/runner/work/shaka-player/shaka-player/dist/shaka-player.ui.debug.externs.js
2983
3056
  declare namespace shaka.util {
2984
3057
  class LanguageUtils {
2985
3058
  private noStructuralTyping_shaka_util_LanguageUtils : any;
@@ -3162,6 +3235,13 @@ declare namespace shaka.util {
3162
3235
  * @param type The type of the box, a uint32.
3163
3236
  */
3164
3237
  static typeToString (type : number ) : string ;
3238
+ /**
3239
+ * A callback that tells the Mp4 parser to treat the body of a box as a visual
3240
+ * sample entry. A visual sample entry has some fixed-sized fields
3241
+ * describing the video codec parameters, followed by an arbitrary number of
3242
+ * appended children. Each child is a box.
3243
+ */
3244
+ static visualSampleEntry (box : shaka.extern.ParsedBox ) : any ;
3165
3245
  }
3166
3246
  }
3167
3247
  // Generated from /home/runner/work/shaka-player/shaka-player/dist/shaka-player.ui.debug.externs.js
@@ -3244,6 +3324,12 @@ declare namespace shaka.util {
3244
3324
  }
3245
3325
  }
3246
3326
  // Generated from /home/runner/work/shaka-player/shaka-player/dist/shaka-player.ui.debug.externs.js
3327
+ declare namespace shaka.util {
3328
+ class TsParser {
3329
+ private noStructuralTyping_shaka_util_TsParser : any;
3330
+ }
3331
+ }
3332
+ // Generated from /home/runner/work/shaka-player/shaka-player/dist/shaka-player.ui.debug.externs.js
3247
3333
  declare namespace shaka.util {
3248
3334
  class Uint8ArrayUtils {
3249
3335
  private noStructuralTyping_shaka_util_Uint8ArrayUtils : any;
@@ -3598,6 +3684,60 @@ declare namespace ಠ_ಠ.clutz {
3598
3684
  keys : ( JWK | null ) [] | null ;
3599
3685
  }
3600
3686
  }
3687
+ // Generated from /home/runner/work/shaka-player/shaka-player/externs/lcevc.js
3688
+ declare namespace LcevcDil {
3689
+ /**
3690
+ * LCEVC DIL constructor
3691
+ */
3692
+ class LcevcDIL {
3693
+ private noStructuralTyping_LcevcDil_LcevcDIL : any;
3694
+ constructor (media : HTMLVideoElement | null , canvas : HTMLCanvasElement | null , dilConfig : shaka.extern.LcevcConfiguration ) ;
3695
+ /**
3696
+ * Append the video buffers before they are appended to
3697
+ * Media Source Extensions SourceBuffer. Here the lcevc data
3698
+ * will be parsed and managed to enhance frames based on timestamps.
3699
+ * @param data Video Buffer Data.
3700
+ * @param type Type of Video Buffer Data.
3701
+ * @param variantId Variant that the fragment belongs to.
3702
+ */
3703
+ appendBuffer (data : ArrayBuffer | ArrayBufferView , type : string , variantId : number ) : any ;
3704
+ /**
3705
+ * Close LCEVC DIL
3706
+ */
3707
+ close ( ) : any ;
3708
+ /**
3709
+ * Set container Format for LCEVC Data Parsing.
3710
+ * @param containerFormat container type of the stream.
3711
+ */
3712
+ setContainerFormat (containerFormat : number ) : any ;
3713
+ /**
3714
+ * Set current variant as variantId to the LCEVC decoder
3715
+ * @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.
3716
+ */
3717
+ setLevelSwitching (variantId : number , autoBufferSwitch : boolean ) : any ;
3718
+ }
3719
+ }
3720
+ // Generated from /home/runner/work/shaka-player/shaka-player/externs/lcevc.js
3721
+ declare namespace LcevcDil.SupportObject {
3722
+ /**
3723
+ * LCEVC Support CheckList Error if any.
3724
+ */
3725
+ let SupportError : string ;
3726
+ }
3727
+ // Generated from /home/runner/work/shaka-player/shaka-player/externs/lcevc.js
3728
+ declare namespace LcevcDil.SupportObject {
3729
+ /**
3730
+ * LCEVC Support Checklist Result
3731
+ */
3732
+ let SupportStatus : boolean ;
3733
+ }
3734
+ // Generated from /home/runner/work/shaka-player/shaka-player/externs/lcevc.js
3735
+ declare namespace LcevcDil.SupportObject {
3736
+ /**
3737
+ * Check if canvas has WebGL support
3738
+ */
3739
+ function webGLSupport (canvas : HTMLCanvasElement | null ) : boolean ;
3740
+ }
3601
3741
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/mdl.js
3602
3742
  declare namespace ಠ_ಠ.clutz {
3603
3743
  class MaterialLayout {
@@ -3661,14 +3801,6 @@ declare namespace muxjs.mp4 {
3661
3801
  type ClosedCaption = { endPts : number , endTime : number , startPts : number , startTime : number , stream : string , text : string } ;
3662
3802
  }
3663
3803
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/mux.js
3664
- declare namespace muxjs.mp4 {
3665
- type Metadata = { cueTime : number , data : Uint8Array , dispatchType : string , dts : number , frames : muxjs.mp4.MetadataFrame [] , pts : number } ;
3666
- }
3667
- // Generated from /home/runner/work/shaka-player/shaka-player/externs/mux.js
3668
- declare namespace muxjs.mp4 {
3669
- type MetadataFrame = { data : string , description : string , id : string , key : string , value : string } ;
3670
- }
3671
- // Generated from /home/runner/work/shaka-player/shaka-player/externs/mux.js
3672
3804
  declare namespace muxjs.mp4 {
3673
3805
  type ParsedClosedCaptions = { captionStreams : { [ key: string ]: boolean } | null , captions : muxjs.mp4.ClosedCaption [] } ;
3674
3806
  }
@@ -3704,7 +3836,7 @@ declare namespace muxjs.mp4 {
3704
3836
  }
3705
3837
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/mux.js
3706
3838
  declare namespace muxjs.mp4.Transmuxer {
3707
- type Segment = { captions : any [] , data : Uint8Array , initSegment : Uint8Array , metadata : any [] } ;
3839
+ type Segment = { captions : any [] , data : Uint8Array , initSegment : Uint8Array } ;
3708
3840
  }
3709
3841
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/polyfill.js
3710
3842
  declare namespace window {
@@ -3871,6 +4003,7 @@ declare namespace shaka.extern {
3871
4003
  */
3872
4004
  interface IAd extends shaka.util.IReleasable {
3873
4005
  canSkipNow ( ) : boolean ;
4006
+ getDescription ( ) : string ;
3874
4007
  getDuration ( ) : number ;
3875
4008
  /**
3876
4009
  * Gets the minimum suggested duration. Defaults to being equivalent to
@@ -3881,6 +4014,7 @@ declare namespace shaka.extern {
3881
4014
  getRemainingTime ( ) : number ;
3882
4015
  getSequenceLength ( ) : number ;
3883
4016
  getTimeUntilSkippable ( ) : number ;
4017
+ getTitle ( ) : string ;
3884
4018
  getVolume ( ) : number ;
3885
4019
  isLinear ( ) : boolean ;
3886
4020
  isMuted ( ) : boolean ;
@@ -3910,7 +4044,7 @@ declare namespace shaka.extern {
3910
4044
  initClientSide (adContainer : HTMLElement , video : HTMLMediaElement ) : any ;
3911
4045
  initServerSide (adContainer : HTMLElement , video : HTMLMediaElement ) : any ;
3912
4046
  onAssetUnload ( ) : any ;
3913
- onCueMetadataChange (value : shaka.extern.ID3Metadata ) : any ;
4047
+ onCueMetadataChange (value : shaka.extern.MetadataFrame ) : any ;
3914
4048
  onDashTimedMetadata (region : shaka.extern.TimelineRegionInfo ) : any ;
3915
4049
  onHlsTimedMetadata (metadata : shaka.extern.ID3Metadata , timestampOffset : number ) : any ;
3916
4050
  release ( ) : any ;
@@ -4054,11 +4188,11 @@ declare namespace shaka.extern.ManifestParser {
4054
4188
  }
4055
4189
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/manifest_parser.js
4056
4190
  declare namespace shaka.extern.ManifestParser {
4057
- 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 } ;
4191
+ 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 } ;
4058
4192
  }
4059
4193
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/mp4_parser.js
4060
4194
  declare namespace shaka.extern {
4061
- type ParsedBox = { flags : number | null , has64BitSize : boolean , parser : shaka.util.Mp4Parser , partialOkay : boolean , reader : shaka.util.DataViewReader , size : number , start : number , version : number | null } ;
4195
+ type ParsedBox = { flags : number | null , has64BitSize : boolean , name : string , parser : shaka.util.Mp4Parser , partialOkay : boolean , reader : shaka.util.DataViewReader , size : number , start : number , version : number | null } ;
4062
4196
  }
4063
4197
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/net.js
4064
4198
  declare namespace shaka.extern {
@@ -4319,7 +4453,7 @@ declare namespace shaka.extern {
4319
4453
  }
4320
4454
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4321
4455
  declare namespace shaka.extern {
4322
- 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 } ;
4456
+ 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 } ;
4323
4457
  }
4324
4458
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4325
4459
  declare namespace shaka.extern {
@@ -4347,7 +4481,7 @@ declare namespace shaka.extern {
4347
4481
  }
4348
4482
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4349
4483
  declare namespace shaka.extern {
4350
- 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 } ;
4484
+ 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 } ;
4351
4485
  }
4352
4486
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4353
4487
  declare namespace shaka.extern {
@@ -4363,17 +4497,21 @@ declare namespace shaka.extern {
4363
4497
  }
4364
4498
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4365
4499
  declare namespace shaka.extern {
4366
- type HlsManifestConfiguration = { defaultAudioCodec : string , defaultVideoCodec : string , ignoreImageStreamFailures : boolean , ignoreManifestProgramDateTime : boolean , ignoreTextStreamFailures : boolean , mediaPlaylistFullMimeType : string } ;
4500
+ type HlsManifestConfiguration = { defaultAudioCodec : string , defaultVideoCodec : string , ignoreImageStreamFailures : boolean , ignoreManifestProgramDateTime : boolean , ignoreTextStreamFailures : boolean , liveSegmentsDelay : number , mediaPlaylistFullMimeType : string , useSafariBehaviorForLive : boolean } ;
4367
4501
  }
4368
4502
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4369
4503
  declare namespace shaka.extern {
4370
- type ID3Metadata = { [ key: string ]: any } ;
4504
+ type ID3Metadata = { cueTime : number | null , data : Uint8Array , dts : number | null , frames : shaka.extern.MetadataFrame [] , pts : number | null } ;
4371
4505
  }
4372
4506
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4373
4507
  declare namespace shaka.extern {
4374
4508
  type LanguageRole = { label : string | null , language : string , role : string } ;
4375
4509
  }
4376
4510
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4511
+ declare namespace shaka.extern {
4512
+ type LcevcConfiguration = { drawLogo : boolean , dynamicPerformanceScaling : boolean , enabled : boolean , logLevel : number } ;
4513
+ }
4514
+ // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4377
4515
  declare namespace shaka.extern {
4378
4516
  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 } ;
4379
4517
  }
@@ -4382,12 +4520,28 @@ declare namespace shaka.extern {
4382
4520
  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 } ;
4383
4521
  }
4384
4522
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4523
+ declare namespace shaka.extern {
4524
+ type MediaSourceConfiguration = { sourceBufferExtraFeatures : string } ;
4525
+ }
4526
+ // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4527
+ declare namespace shaka.extern {
4528
+ type MetadataFrame = { data : ArrayBuffer | null | string , description : string , key : string } ;
4529
+ }
4530
+ // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4531
+ declare namespace shaka.extern {
4532
+ type MetadataRawFrame = { data : Uint8Array | null , size : number , type : string } ;
4533
+ }
4534
+ // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4385
4535
  declare namespace shaka.extern {
4386
4536
  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 } ;
4387
4537
  }
4388
4538
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4389
4539
  declare namespace shaka.extern {
4390
- 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 } ;
4540
+ 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 } ;
4541
+ }
4542
+ // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4543
+ declare namespace shaka.extern {
4544
+ type ProducerReferenceTime = { programStartDate : Date | null , wallClockTime : number } ;
4391
4545
  }
4392
4546
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4393
4547
  declare namespace shaka.extern {
@@ -4403,7 +4557,7 @@ declare namespace shaka.extern {
4403
4557
  }
4404
4558
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4405
4559
  declare namespace shaka.extern {
4406
- 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 } ;
4560
+ 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 } ;
4407
4561
  }
4408
4562
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4409
4563
  declare namespace shaka.extern {
@@ -4411,7 +4565,7 @@ declare namespace shaka.extern {
4411
4565
  }
4412
4566
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4413
4567
  declare namespace shaka.extern {
4414
- type Thumbnail = { duration : number , height : number , imageHeight : number , imageWidth : number , positionX : number , positionY : number , startTime : number , uris : string [] , width : number } ;
4568
+ type Thumbnail = { duration : number , height : number , imageHeight : number , imageWidth : number , positionX : number , positionY : number , sprite : boolean , startTime : number , uris : string [] , width : number } ;
4415
4569
  }
4416
4570
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4417
4571
  declare namespace shaka.extern {