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.compiled.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.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.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.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.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.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.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.compiled.externs.js
@@ -2210,6 +2269,8 @@ declare namespace shaka.util.Error {
2210
2269
  BUFFER_READ_OUT_OF_BOUNDS = 3000.0 ,
2211
2270
  CANNOT_ADD_EXTERNAL_TEXT_TO_LIVE_STREAM = 4033.0 ,
2212
2271
  CANNOT_ADD_EXTERNAL_TEXT_TO_SRC_EQUALS = 2012.0 ,
2272
+ CANNOT_ADD_EXTERNAL_THUMBNAILS_TO_LIVE_STREAM = 4045.0 ,
2273
+ CANNOT_ADD_EXTERNAL_THUMBNAILS_TO_SRC_EQUALS = 2016.0 ,
2213
2274
  CANNOT_STORE_LIVE_OFFLINE = 9005.0 ,
2214
2275
  CAST_API_UNAVAILABLE = 8000.0 ,
2215
2276
  CAST_CANCELED_BY_USER = 8004.0 ,
@@ -2322,6 +2383,7 @@ declare namespace shaka.util.Error {
2322
2383
  UNABLE_TO_GUESS_MANIFEST_TYPE = 4000.0 ,
2323
2384
  UNEXPECTED_CAST_ERROR = 8003.0 ,
2324
2385
  UNEXPECTED_TEST_REQUEST = 1009.0 ,
2386
+ UNSUPPORTED_EXTERNAL_THUMBNAILS_URI = 2017.0 ,
2325
2387
  UNSUPPORTED_SCHEME = 1000.0 ,
2326
2388
  VIDEO_ERROR = 3016.0 ,
2327
2389
  WEBM_CUES_ELEMENT_MISSING = 3007.0 ,
@@ -2513,6 +2575,17 @@ declare namespace shaka.util {
2513
2575
  }
2514
2576
  }
2515
2577
  // Generated from /home/runner/work/shaka-player/shaka-player/dist/shaka-player.compiled.externs.js
2578
+ declare namespace shaka.util {
2579
+ class Id3Utils {
2580
+ private noStructuralTyping_shaka_util_Id3Utils : any;
2581
+ /**
2582
+ * Returns an array of ID3 frames found in all the ID3 tags in the id3Data
2583
+ * @param id3Data - The ID3 data containing one or more ID3 tags
2584
+ */
2585
+ static getID3Frames (id3Data : Uint8Array | null ) : shaka.extern.MetadataFrame [] ;
2586
+ }
2587
+ }
2588
+ // Generated from /home/runner/work/shaka-player/shaka-player/dist/shaka-player.compiled.externs.js
2516
2589
  declare namespace shaka.util {
2517
2590
  class LanguageUtils {
2518
2591
  private noStructuralTyping_shaka_util_LanguageUtils : any;
@@ -2695,6 +2768,13 @@ declare namespace shaka.util {
2695
2768
  * @param type The type of the box, a uint32.
2696
2769
  */
2697
2770
  static typeToString (type : number ) : string ;
2771
+ /**
2772
+ * A callback that tells the Mp4 parser to treat the body of a box as a visual
2773
+ * sample entry. A visual sample entry has some fixed-sized fields
2774
+ * describing the video codec parameters, followed by an arbitrary number of
2775
+ * appended children. Each child is a box.
2776
+ */
2777
+ static visualSampleEntry (box : shaka.extern.ParsedBox ) : any ;
2698
2778
  }
2699
2779
  }
2700
2780
  // Generated from /home/runner/work/shaka-player/shaka-player/dist/shaka-player.compiled.externs.js
@@ -2777,6 +2857,12 @@ declare namespace shaka.util {
2777
2857
  }
2778
2858
  }
2779
2859
  // Generated from /home/runner/work/shaka-player/shaka-player/dist/shaka-player.compiled.externs.js
2860
+ declare namespace shaka.util {
2861
+ class TsParser {
2862
+ private noStructuralTyping_shaka_util_TsParser : any;
2863
+ }
2864
+ }
2865
+ // Generated from /home/runner/work/shaka-player/shaka-player/dist/shaka-player.compiled.externs.js
2780
2866
  declare namespace shaka.util {
2781
2867
  class Uint8ArrayUtils {
2782
2868
  private noStructuralTyping_shaka_util_Uint8ArrayUtils : any;
@@ -3131,6 +3217,60 @@ declare namespace ಠ_ಠ.clutz {
3131
3217
  keys : ( JWK | null ) [] | null ;
3132
3218
  }
3133
3219
  }
3220
+ // Generated from /home/runner/work/shaka-player/shaka-player/externs/lcevc.js
3221
+ declare namespace LcevcDil {
3222
+ /**
3223
+ * LCEVC DIL constructor
3224
+ */
3225
+ class LcevcDIL {
3226
+ private noStructuralTyping_LcevcDil_LcevcDIL : any;
3227
+ constructor (media : HTMLVideoElement | null , canvas : HTMLCanvasElement | null , dilConfig : shaka.extern.LcevcConfiguration ) ;
3228
+ /**
3229
+ * Append the video buffers before they are appended to
3230
+ * Media Source Extensions SourceBuffer. Here the lcevc data
3231
+ * will be parsed and managed to enhance frames based on timestamps.
3232
+ * @param data Video Buffer Data.
3233
+ * @param type Type of Video Buffer Data.
3234
+ * @param variantId Variant that the fragment belongs to.
3235
+ */
3236
+ appendBuffer (data : ArrayBuffer | ArrayBufferView , type : string , variantId : number ) : any ;
3237
+ /**
3238
+ * Close LCEVC DIL
3239
+ */
3240
+ close ( ) : any ;
3241
+ /**
3242
+ * Set container Format for LCEVC Data Parsing.
3243
+ * @param containerFormat container type of the stream.
3244
+ */
3245
+ setContainerFormat (containerFormat : number ) : any ;
3246
+ /**
3247
+ * Set current variant as variantId to the LCEVC decoder
3248
+ * @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.
3249
+ */
3250
+ setLevelSwitching (variantId : number , autoBufferSwitch : boolean ) : any ;
3251
+ }
3252
+ }
3253
+ // Generated from /home/runner/work/shaka-player/shaka-player/externs/lcevc.js
3254
+ declare namespace LcevcDil.SupportObject {
3255
+ /**
3256
+ * LCEVC Support CheckList Error if any.
3257
+ */
3258
+ let SupportError : string ;
3259
+ }
3260
+ // Generated from /home/runner/work/shaka-player/shaka-player/externs/lcevc.js
3261
+ declare namespace LcevcDil.SupportObject {
3262
+ /**
3263
+ * LCEVC Support Checklist Result
3264
+ */
3265
+ let SupportStatus : boolean ;
3266
+ }
3267
+ // Generated from /home/runner/work/shaka-player/shaka-player/externs/lcevc.js
3268
+ declare namespace LcevcDil.SupportObject {
3269
+ /**
3270
+ * Check if canvas has WebGL support
3271
+ */
3272
+ function webGLSupport (canvas : HTMLCanvasElement | null ) : boolean ;
3273
+ }
3134
3274
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/mdl.js
3135
3275
  declare namespace ಠ_ಠ.clutz {
3136
3276
  class MaterialLayout {
@@ -3194,14 +3334,6 @@ declare namespace muxjs.mp4 {
3194
3334
  type ClosedCaption = { endPts : number , endTime : number , startPts : number , startTime : number , stream : string , text : string } ;
3195
3335
  }
3196
3336
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/mux.js
3197
- declare namespace muxjs.mp4 {
3198
- type Metadata = { cueTime : number , data : Uint8Array , dispatchType : string , dts : number , frames : muxjs.mp4.MetadataFrame [] , pts : number } ;
3199
- }
3200
- // Generated from /home/runner/work/shaka-player/shaka-player/externs/mux.js
3201
- declare namespace muxjs.mp4 {
3202
- type MetadataFrame = { data : string , description : string , id : string , key : string , value : string } ;
3203
- }
3204
- // Generated from /home/runner/work/shaka-player/shaka-player/externs/mux.js
3205
3337
  declare namespace muxjs.mp4 {
3206
3338
  type ParsedClosedCaptions = { captionStreams : { [ key: string ]: boolean } | null , captions : muxjs.mp4.ClosedCaption [] } ;
3207
3339
  }
@@ -3237,7 +3369,7 @@ declare namespace muxjs.mp4 {
3237
3369
  }
3238
3370
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/mux.js
3239
3371
  declare namespace muxjs.mp4.Transmuxer {
3240
- type Segment = { captions : any [] , data : Uint8Array , initSegment : Uint8Array , metadata : any [] } ;
3372
+ type Segment = { captions : any [] , data : Uint8Array , initSegment : Uint8Array } ;
3241
3373
  }
3242
3374
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/polyfill.js
3243
3375
  declare namespace window {
@@ -3404,6 +3536,7 @@ declare namespace shaka.extern {
3404
3536
  */
3405
3537
  interface IAd extends shaka.util.IReleasable {
3406
3538
  canSkipNow ( ) : boolean ;
3539
+ getDescription ( ) : string ;
3407
3540
  getDuration ( ) : number ;
3408
3541
  /**
3409
3542
  * Gets the minimum suggested duration. Defaults to being equivalent to
@@ -3414,6 +3547,7 @@ declare namespace shaka.extern {
3414
3547
  getRemainingTime ( ) : number ;
3415
3548
  getSequenceLength ( ) : number ;
3416
3549
  getTimeUntilSkippable ( ) : number ;
3550
+ getTitle ( ) : string ;
3417
3551
  getVolume ( ) : number ;
3418
3552
  isLinear ( ) : boolean ;
3419
3553
  isMuted ( ) : boolean ;
@@ -3443,7 +3577,7 @@ declare namespace shaka.extern {
3443
3577
  initClientSide (adContainer : HTMLElement , video : HTMLMediaElement ) : any ;
3444
3578
  initServerSide (adContainer : HTMLElement , video : HTMLMediaElement ) : any ;
3445
3579
  onAssetUnload ( ) : any ;
3446
- onCueMetadataChange (value : shaka.extern.ID3Metadata ) : any ;
3580
+ onCueMetadataChange (value : shaka.extern.MetadataFrame ) : any ;
3447
3581
  onDashTimedMetadata (region : shaka.extern.TimelineRegionInfo ) : any ;
3448
3582
  onHlsTimedMetadata (metadata : shaka.extern.ID3Metadata , timestampOffset : number ) : any ;
3449
3583
  release ( ) : any ;
@@ -3587,11 +3721,11 @@ declare namespace shaka.extern.ManifestParser {
3587
3721
  }
3588
3722
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/manifest_parser.js
3589
3723
  declare namespace shaka.extern.ManifestParser {
3590
- 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 } ;
3724
+ 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 } ;
3591
3725
  }
3592
3726
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/mp4_parser.js
3593
3727
  declare namespace shaka.extern {
3594
- type ParsedBox = { flags : number | null , has64BitSize : boolean , parser : shaka.util.Mp4Parser , partialOkay : boolean , reader : shaka.util.DataViewReader , size : number , start : number , version : number | null } ;
3728
+ 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 } ;
3595
3729
  }
3596
3730
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/net.js
3597
3731
  declare namespace shaka.extern {
@@ -3852,7 +3986,7 @@ declare namespace shaka.extern {
3852
3986
  }
3853
3987
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3854
3988
  declare namespace shaka.extern {
3855
- 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 } ;
3989
+ 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 } ;
3856
3990
  }
3857
3991
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3858
3992
  declare namespace shaka.extern {
@@ -3880,7 +4014,7 @@ declare namespace shaka.extern {
3880
4014
  }
3881
4015
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3882
4016
  declare namespace shaka.extern {
3883
- 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 } ;
4017
+ 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 } ;
3884
4018
  }
3885
4019
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3886
4020
  declare namespace shaka.extern {
@@ -3896,17 +4030,21 @@ declare namespace shaka.extern {
3896
4030
  }
3897
4031
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3898
4032
  declare namespace shaka.extern {
3899
- type HlsManifestConfiguration = { defaultAudioCodec : string , defaultVideoCodec : string , ignoreImageStreamFailures : boolean , ignoreManifestProgramDateTime : boolean , ignoreTextStreamFailures : boolean , mediaPlaylistFullMimeType : string } ;
4033
+ type HlsManifestConfiguration = { defaultAudioCodec : string , defaultVideoCodec : string , ignoreImageStreamFailures : boolean , ignoreManifestProgramDateTime : boolean , ignoreTextStreamFailures : boolean , liveSegmentsDelay : number , mediaPlaylistFullMimeType : string , useSafariBehaviorForLive : boolean } ;
3900
4034
  }
3901
4035
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3902
4036
  declare namespace shaka.extern {
3903
- type ID3Metadata = { [ key: string ]: any } ;
4037
+ type ID3Metadata = { cueTime : number | null , data : Uint8Array , dts : number | null , frames : shaka.extern.MetadataFrame [] , pts : number | null } ;
3904
4038
  }
3905
4039
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3906
4040
  declare namespace shaka.extern {
3907
4041
  type LanguageRole = { label : string | null , language : string , role : string } ;
3908
4042
  }
3909
4043
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4044
+ declare namespace shaka.extern {
4045
+ type LcevcConfiguration = { drawLogo : boolean , dynamicPerformanceScaling : boolean , enabled : boolean , logLevel : number } ;
4046
+ }
4047
+ // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3910
4048
  declare namespace shaka.extern {
3911
4049
  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 } ;
3912
4050
  }
@@ -3915,12 +4053,28 @@ declare namespace shaka.extern {
3915
4053
  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 } ;
3916
4054
  }
3917
4055
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4056
+ declare namespace shaka.extern {
4057
+ type MediaSourceConfiguration = { sourceBufferExtraFeatures : string } ;
4058
+ }
4059
+ // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4060
+ declare namespace shaka.extern {
4061
+ type MetadataFrame = { data : ArrayBuffer | null | string , description : string , key : string } ;
4062
+ }
4063
+ // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4064
+ declare namespace shaka.extern {
4065
+ type MetadataRawFrame = { data : Uint8Array | null , size : number , type : string } ;
4066
+ }
4067
+ // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3918
4068
  declare namespace shaka.extern {
3919
4069
  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 } ;
3920
4070
  }
3921
4071
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3922
4072
  declare namespace shaka.extern {
3923
- 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 } ;
4073
+ 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 } ;
4074
+ }
4075
+ // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
4076
+ declare namespace shaka.extern {
4077
+ type ProducerReferenceTime = { programStartDate : Date | null , wallClockTime : number } ;
3924
4078
  }
3925
4079
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3926
4080
  declare namespace shaka.extern {
@@ -3936,7 +4090,7 @@ declare namespace shaka.extern {
3936
4090
  }
3937
4091
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3938
4092
  declare namespace shaka.extern {
3939
- 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 } ;
4093
+ 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 } ;
3940
4094
  }
3941
4095
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3942
4096
  declare namespace shaka.extern {
@@ -3944,7 +4098,7 @@ declare namespace shaka.extern {
3944
4098
  }
3945
4099
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3946
4100
  declare namespace shaka.extern {
3947
- type Thumbnail = { duration : number , height : number , imageHeight : number , imageWidth : number , positionX : number , positionY : number , startTime : number , uris : string [] , width : number } ;
4101
+ type Thumbnail = { duration : number , height : number , imageHeight : number , imageWidth : number , positionX : number , positionY : number , sprite : boolean , startTime : number , uris : string [] , width : number } ;
3948
4102
  }
3949
4103
  // Generated from /home/runner/work/shaka-player/shaka-player/externs/shaka/player.js
3950
4104
  declare namespace shaka.extern {