shaka-player 4.4.3 → 4.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (198) hide show
  1. package/.github/workflows/release-please.yaml +2 -27
  2. package/CHANGELOG.md +64 -45
  3. package/README.md +16 -10
  4. package/demo/asset_card.js +18 -21
  5. package/demo/cast_receiver/index.html +0 -1
  6. package/demo/close_button.js +0 -3
  7. package/demo/common/asset.js +22 -5
  8. package/demo/common/assets.js +132 -49
  9. package/demo/config.js +192 -253
  10. package/demo/custom.js +39 -98
  11. package/demo/front.js +7 -10
  12. package/demo/index.html +19 -22
  13. package/demo/input.js +6 -11
  14. package/demo/input_container.js +8 -9
  15. package/demo/main.js +51 -123
  16. package/demo/search.js +22 -34
  17. package/demo/service_worker.js +0 -3
  18. package/demo/tooltip.js +3 -5
  19. package/demo/visualizer.js +3 -5
  20. package/demo/visualizer_button.js +1 -20
  21. package/dist/demo.compiled.debug.js +152 -178
  22. package/dist/demo.compiled.debug.map +4 -4
  23. package/dist/demo.compiled.js +152 -178
  24. package/dist/demo.compiled.map +4 -4
  25. package/dist/deps.js +27 -24
  26. package/dist/locales.js +31 -31
  27. package/dist/receiver.compiled.debug.js +22 -43
  28. package/dist/receiver.compiled.debug.map +4 -4
  29. package/dist/receiver.compiled.js +22 -43
  30. package/dist/receiver.compiled.map +4 -4
  31. package/dist/shaka-player.compiled.d.ts +507 -365
  32. package/dist/shaka-player.compiled.debug.d.ts +507 -365
  33. package/dist/shaka-player.compiled.debug.externs.js +205 -51
  34. package/dist/shaka-player.compiled.debug.js +541 -450
  35. package/dist/shaka-player.compiled.debug.map +4 -4
  36. package/dist/shaka-player.compiled.externs.js +205 -51
  37. package/dist/shaka-player.compiled.js +1120 -1066
  38. package/dist/shaka-player.compiled.map +4 -4
  39. package/dist/shaka-player.ui.d.ts +562 -410
  40. package/dist/shaka-player.ui.debug.d.ts +562 -410
  41. package/dist/shaka-player.ui.debug.externs.js +226 -51
  42. package/dist/shaka-player.ui.debug.js +606 -506
  43. package/dist/shaka-player.ui.debug.map +4 -4
  44. package/dist/shaka-player.ui.externs.js +226 -51
  45. package/dist/shaka-player.ui.js +1266 -1207
  46. package/dist/shaka-player.ui.map +4 -4
  47. package/docs/design/lcevc-integration.md +14 -14
  48. package/docs/tutorials/faq.md +27 -55
  49. package/docs/tutorials/index.json +2 -1
  50. package/docs/tutorials/lcevc.md +118 -0
  51. package/docs/tutorials/ui-customization.md +4 -0
  52. package/externs/css_style_declaration.js +19 -0
  53. package/externs/lcevc.js +37 -13
  54. package/externs/media_remote.js +68 -0
  55. package/externs/mediatailor.js +193 -0
  56. package/externs/pictureinpicture.js +11 -0
  57. package/externs/shaka/ads.js +27 -0
  58. package/externs/shaka/manifest.js +10 -5
  59. package/externs/shaka/manifest_parser.js +7 -1
  60. package/externs/shaka/offline.js +4 -0
  61. package/externs/shaka/player.js +12 -1
  62. package/karma.conf.js +7 -3
  63. package/lib/abr/simple_abr_manager.js +43 -3
  64. package/lib/ads/ad_manager.js +104 -50
  65. package/lib/ads/media_tailor_ad.js +297 -0
  66. package/lib/ads/media_tailor_ad_manager.js +828 -0
  67. package/lib/cea/ts_cea_parser.js +15 -2
  68. package/lib/config/codec_switching_strategy.js +24 -0
  69. package/lib/dash/content_protection.js +120 -2
  70. package/lib/dash/dash_parser.js +75 -12
  71. package/lib/dash/mpd_utils.js +10 -6
  72. package/lib/dash/segment_base.js +13 -5
  73. package/lib/dash/segment_list.js +13 -5
  74. package/lib/dash/segment_template.js +43 -85
  75. package/lib/dependencies/all.js +8 -7
  76. package/lib/hls/hls_parser.js +44 -16
  77. package/lib/lcevc/lcevc_dec.js +220 -0
  78. package/lib/media/adaptation_set.js +22 -11
  79. package/lib/media/adaptation_set_criteria.js +25 -7
  80. package/lib/media/media_source_engine.js +215 -27
  81. package/lib/media/segment_index.js +1 -1
  82. package/lib/media/segment_reference.js +7 -7
  83. package/lib/media/streaming_engine.js +33 -18
  84. package/lib/mss/mss_parser.js +1 -0
  85. package/lib/net/networking_engine.js +1 -0
  86. package/lib/offline/indexeddb/v1_storage_cell.js +1 -0
  87. package/lib/offline/indexeddb/v2_storage_cell.js +1 -0
  88. package/lib/offline/manifest_converter.js +1 -0
  89. package/lib/offline/storage.js +3 -0
  90. package/lib/player.js +142 -72
  91. package/lib/routing/payload.js +5 -1
  92. package/lib/text/cue.js +15 -0
  93. package/lib/text/ttml_text_parser.js +17 -0
  94. package/lib/text/ui_text_displayer.js +4 -0
  95. package/lib/text/vtt_text_parser.js +33 -20
  96. package/lib/transmuxer/h265.js +862 -0
  97. package/lib/transmuxer/mpeg_ts_transmuxer.js +3 -2
  98. package/lib/transmuxer/ts_transmuxer.js +160 -15
  99. package/lib/util/error.js +28 -9
  100. package/lib/util/exp_golomb.js +30 -2
  101. package/lib/util/fake_event.js +3 -0
  102. package/lib/util/mp4_generator.js +4 -4
  103. package/lib/util/periods.js +2 -0
  104. package/lib/util/platform.js +40 -0
  105. package/lib/util/player_configuration.js +8 -0
  106. package/lib/util/state_history.js +6 -2
  107. package/lib/util/stream_utils.js +133 -217
  108. package/lib/util/ts_parser.js +226 -40
  109. package/maintained-branches.md +3 -2
  110. package/package.json +4 -6
  111. package/roadmap.md +15 -5
  112. package/shaka-player.uncompiled.js +2 -1
  113. package/support.html +0 -1
  114. package/test/cast/cast_receiver_integration.js +47 -0
  115. package/test/codec_switching/codec_switching_integration.js +181 -0
  116. package/test/dash/dash_parser_content_protection_unit.js +2 -0
  117. package/test/dash/dash_parser_integration.js +73 -0
  118. package/test/dash/dash_parser_live_unit.js +2 -0
  119. package/test/dash/dash_parser_manifest_unit.js +42 -0
  120. package/test/dash/dash_parser_segment_base_unit.js +2 -0
  121. package/test/dash/dash_parser_segment_list_unit.js +2 -0
  122. package/test/dash/dash_parser_segment_template_unit.js +2 -0
  123. package/test/demo/demo_unit.js +0 -16
  124. package/test/hls/hls_live_unit.js +2 -0
  125. package/test/hls/hls_parser_unit.js +8 -6
  126. package/test/media/adaptation_set_criteria_unit.js +118 -0
  127. package/test/media/adaptation_set_unit.js +1 -0
  128. package/test/media/media_source_engine_unit.js +165 -1
  129. package/test/media/segment_index_unit.js +4 -4
  130. package/test/media/segment_prefetch_unit.js +1 -1
  131. package/test/media/streaming_engine_unit.js +17 -17
  132. package/test/mss/mss_parser_unit.js +2 -0
  133. package/test/offline/manifest_convert_unit.js +5 -0
  134. package/test/offline/storage_integration.js +1 -4
  135. package/test/player_unit.js +102 -131
  136. package/test/routing/walker_unit.js +1 -0
  137. package/test/test/assets/dash-aes-128/Fragments(video=0,format=mpd-time-csf) +0 -0
  138. package/test/test/assets/dash-aes-128/Fragments(video=20000000,format=mpd-time-csf) +0 -0
  139. package/test/test/assets/dash-aes-128/Fragments(video=40000000,format=mpd-time-csf) +0 -0
  140. package/test/test/assets/dash-aes-128/Fragments(video=60000000,format=mpd-time-csf) +0 -0
  141. package/test/test/assets/dash-aes-128/Fragments(video=i,format=mpd-time-csf) +0 -0
  142. package/test/test/assets/dash-aes-128/dash.mpd +18 -0
  143. package/test/test/assets/dash-aes-128/license +1 -0
  144. package/test/test/assets/dash-multi-codec/audio_en_2c_128k_aac.mp4 +0 -0
  145. package/test/test/assets/dash-multi-codec/audio_es_2c_64k_opus.webm +0 -0
  146. package/test/test/assets/dash-multi-codec/dash.mpd +32 -0
  147. package/test/test/assets/dash-multi-codec/video_144p_108k_h264.mp4 +0 -0
  148. package/test/test/assets/hls-ts-h265/0.ts +0 -0
  149. package/test/test/assets/hls-ts-h265/hevc.m3u8 +6 -0
  150. package/test/test/assets/hls-ts-h265/index.m3u8 +7 -0
  151. package/test/test/assets/hls-ts-muxed-aac-h265/0.ts +0 -0
  152. package/test/test/assets/hls-ts-muxed-aac-h265/1.ts +0 -0
  153. package/test/test/assets/hls-ts-muxed-aac-h265/media.m3u8 +9 -0
  154. package/test/test/assets/hls-ts-muxed-ac3-h264/media.m3u8 +24 -0
  155. package/test/test/assets/hls-ts-muxed-ac3-h264/s_00000.ts +0 -0
  156. package/test/test/assets/hls-ts-muxed-ac3-h264/s_00001.ts +0 -0
  157. package/test/test/assets/hls-ts-muxed-ac3-h264/s_00002.ts +0 -0
  158. package/test/test/assets/hls-ts-muxed-ac3-h264/s_00003.ts +0 -0
  159. package/test/test/assets/hls-ts-muxed-ac3-h264/s_00004.ts +0 -0
  160. package/test/test/assets/hls-ts-muxed-ac3-h264/s_00005.ts +0 -0
  161. package/test/test/assets/hls-ts-muxed-ec3-h264/ChID_voices_1280x720p_25fps_h264_6ch_256kbps_ddp_sub_0000.ts +0 -0
  162. package/test/test/assets/hls-ts-muxed-ec3-h264/ChID_voices_1280x720p_25fps_h264_6ch_256kbps_ddp_sub_0001.ts +0 -0
  163. package/test/test/assets/hls-ts-muxed-ec3-h264/ChID_voices_1280x720p_25fps_h264_6ch_256kbps_ddp_sub_0002.ts +0 -0
  164. package/test/test/assets/hls-ts-muxed-ec3-h264/ChID_voices_1280x720p_25fps_h264_6ch_256kbps_ddp_sub_0003.ts +0 -0
  165. package/test/test/assets/hls-ts-muxed-ec3-h264/prog_index.m3u8 +14 -0
  166. package/test/test/assets/hls-ts-muxed-mp3-h264/index.m3u8 +23 -0
  167. package/test/test/assets/hls-ts-muxed-mp3-h264/seg-1-v1-a1.ts +0 -0
  168. package/test/test/assets/hls-ts-muxed-mp3-h264/seg-2-v1-a1.ts +0 -0
  169. package/test/test/assets/hls-ts-muxed-mp3-h264/seg-3-v1-a1.ts +0 -0
  170. package/test/test/assets/hls-ts-muxed-mp3-h264/seg-4-v1-a1.ts +0 -0
  171. package/test/test/assets/hls-ts-muxed-mp3-h264/seg-5-v1-a1.ts +0 -0
  172. package/test/test/assets/hls-ts-muxed-mp3-h264/seg-6-v1-a1.ts +0 -0
  173. package/test/test/assets/hls-ts-muxed-mp3-h264/seg-7-v1-a1.ts +0 -0
  174. package/test/test/assets/hls-ts-muxed-mp3-h264/seg-8-v1-a1.ts +0 -0
  175. package/test/test/util/dash_parser_util.js +4 -0
  176. package/test/test/util/fake_ad_manager.js +20 -0
  177. package/test/test/util/fake_media_source_engine.js +8 -2
  178. package/test/test/util/manifest_generator.js +7 -3
  179. package/test/test/util/mss_parser_util.js +4 -0
  180. package/test/test/util/offline_utils.js +1 -0
  181. package/test/test/util/streaming_engine_util.js +7 -4
  182. package/test/text/ttml_text_parser_unit.js +52 -0
  183. package/test/text/vtt_text_parser_unit.js +103 -31
  184. package/test/transmuxer/transmuxer_integration.js +117 -0
  185. package/test/ui/ui_unit.js +3 -10
  186. package/test/util/stream_utils_unit.js +208 -74
  187. package/ui/controls.js +125 -0
  188. package/ui/externs/ui.js +8 -1
  189. package/ui/pip_button.js +22 -120
  190. package/ui/remote_button.js +201 -0
  191. package/ui/ui.js +5 -2
  192. package/demo/common/message_ids.js +0 -309
  193. package/demo/locales/en.json +0 -288
  194. package/demo/locales/source.json +0 -1146
  195. package/externs/mux.js +0 -69
  196. package/lib/lcevc/lcevc_dil.js +0 -152
  197. package/lib/transmuxer/muxjs_transmuxer.js +0 -242
  198. package/test/transmuxer/muxjs_transmuxer_integration.js +0 -177
@@ -282,11 +282,13 @@ shaka.util.Error.Code = {
282
282
  'HLS_MSE_ENCRYPTED_MP2T_NOT_SUPPORTED': 4040,
283
283
  'HLS_MSE_ENCRYPTED_LEGACY_APPLE_MEDIA_KEYS_NOT_SUPPORTED': 4041,
284
284
  'NO_WEB_CRYPTO_API': 4042,
285
- 'HLS_AES_128_INVALID_IV_LENGTH': 4043,
286
- 'HLS_AES_128_INVALID_KEY_LENGTH': 4044,
287
285
  'CANNOT_ADD_EXTERNAL_THUMBNAILS_TO_LIVE_STREAM': 4045,
288
286
  'MSS_INVALID_XML': 4046,
289
287
  'MSS_LIVE_CONTENT_NOT_SUPPORTED': 4047,
288
+ 'AES_128_INVALID_IV_LENGTH': 4048,
289
+ 'AES_128_INVALID_KEY_LENGTH': 4049,
290
+ 'DASH_CONFLICTING_AES_128': 4050,
291
+ 'DASH_UNSUPPORTED_AES_128': 4051,
290
292
  'STREAMING_ENGINE_STARTUP_INVALID_STATE': 5006,
291
293
  'NO_RECOGNIZED_KEY_SYSTEMS': 6000,
292
294
  'REQUESTED_KEY_SYSTEM_CONFIG_UNAVAILABLE': 6001,
@@ -337,7 +339,8 @@ shaka.util.Error.Code = {
337
339
  'CS_AD_MANAGER_NOT_INITIALIZED': 10001,
338
340
  'SS_IMA_SDK_MISSING': 10002,
339
341
  'SS_AD_MANAGER_NOT_INITIALIZED': 10003,
340
- 'CURRENT_DAI_REQUEST_NOT_FINISHED': 10004
342
+ 'CURRENT_DAI_REQUEST_NOT_FINISHED': 10004,
343
+ 'MT_AD_MANAGER_NOT_INITIALIZED': 10005
341
344
  };
342
345
  /**
343
346
  * @summary A set of language utility functions.
@@ -587,6 +590,13 @@ shaka.ui.Localization.LOCALE_CHANGED;
587
590
  * @const {string}
588
591
  */
589
592
  shaka.ui.Localization.LOCALE_UPDATED;
593
+ /**
594
+ * @enum {string}
595
+ */
596
+ shaka.config.CodecSwitchingStrategy = {
597
+ RELOAD: 'reload',
598
+ SMOOTH: 'smooth'
599
+ };
590
600
  /**
591
601
  * @summary A set of BufferSource utility functions.
592
602
  */
@@ -848,6 +858,11 @@ shaka.text.Cue.prototype.linePadding;
848
858
  * @type {number}
849
859
  */
850
860
  shaka.text.Cue.prototype.opacity;
861
+ /**
862
+ * Text combine upright as a CSS text-combine-upright value.
863
+ * @type {string}
864
+ */
865
+ shaka.text.Cue.prototype.textCombineUpright;
851
866
  /**
852
867
  * Text decoration. A combination of underline, overline
853
868
  * and line through. Empty array means no decoration.
@@ -900,6 +915,12 @@ shaka.text.Cue.prototype.isContainer;
900
915
  * @type {boolean}
901
916
  */
902
917
  shaka.text.Cue.prototype.lineBreak;
918
+ /**
919
+ * Used to indicate the type of ruby tag that should be used when rendering
920
+ * the cue. Valid values: ruby, rp, rt.
921
+ * @type {?string}
922
+ */
923
+ shaka.text.Cue.prototype.rubyTag;
903
924
  /**
904
925
  * The number of horizontal and vertical cells into which the Root Container
905
926
  * Region area is divided.
@@ -1568,7 +1589,8 @@ shaka.net.NetworkingEngine.RequestType = {
1568
1589
  'APP': 3,
1569
1590
  'TIMING': 4,
1570
1591
  'SERVER_CERTIFICATE': 5,
1571
- 'KEY': 6
1592
+ 'KEY': 6,
1593
+ 'ADS': 7
1572
1594
  };
1573
1595
  /**
1574
1596
  * A more advanced form of the RequestType structure, meant to describe
@@ -2000,7 +2022,7 @@ shaka.media.InitSegmentReference = class {
2000
2022
  * the quality of the media associated with this init segment.
2001
2023
  * @param {(null|number)=} timescale
2002
2024
  * @param {(null|BufferSource)=} segmentData
2003
- * @param {?shaka.extern.HlsAes128Key=} aes128Key
2025
+ * @param {?shaka.extern.aes128Key=} aes128Key
2004
2026
  * The segment's AES-128-CBC full segment encryption key and iv.
2005
2027
  */
2006
2028
  constructor(uris, startByte, endByte, mediaQuality, timescale, segmentData, aes128Key) {}
@@ -2076,10 +2098,10 @@ shaka.media.SegmentReference = class {
2076
2098
  * @param {shaka.media.SegmentReference.Status=} status
2077
2099
  * The segment status is used to indicate that a segment does not exist or is
2078
2100
  * not available.
2079
- * @param {?shaka.extern.HlsAes128Key=} hlsAes128Key
2101
+ * @param {?shaka.extern.aes128Key=} aes128Key
2080
2102
  * The segment's AES-128-CBC full segment encryption key and iv.
2081
2103
  */
2082
- constructor(startTime, endTime, uris, startByte, endByte, initSegmentReference, timestampOffset, appendWindowStart, appendWindowEnd, partialReferences, tilesLayout, tileDuration, syncTime, status, hlsAes128Key) {}
2104
+ constructor(startTime, endTime, uris, startByte, endByte, initSegmentReference, timestampOffset, appendWindowStart, appendWindowEnd, partialReferences, tilesLayout, tileDuration, syncTime, status, aes128Key) {}
2083
2105
  /**
2084
2106
  * Creates and returns the URIs of the resource containing the segment.
2085
2107
  * @return {!Array.<string>}
@@ -2235,8 +2257,9 @@ shaka.util.Id3Utils = class {
2235
2257
  shaka.util.ExpGolomb = class {
2236
2258
  /**
2237
2259
  * @param {!Uint8Array} data
2260
+ * @param {boolean=} convertEbsp2rbsp
2238
2261
  */
2239
- constructor(data) {}
2262
+ constructor(data, convertEbsp2rbsp) {}
2240
2263
  };
2241
2264
  /**
2242
2265
  * @see https://en.wikipedia.org/wiki/MPEG_transport_stream
@@ -2263,6 +2286,16 @@ shaka.util.TsParser = class {
2263
2286
  * @return {!Array.<shaka.extern.VideoNalu>}
2264
2287
  */
2265
2288
  parseAvcNalus(pes, nextPes) {}
2289
+ /**
2290
+ * Parse AVC and HVC Nalus
2291
+ * The code is based on hls.js
2292
+ * Credit to https://github.com/video-dev/hls.js/blob/master/src/demux/tsdemuxer.ts
2293
+ * @param {shaka.extern.MPEG_PES} pes
2294
+ * @param {?shaka.extern.MPEG_PES=} nextPes
2295
+ * @param {?shaka.extern.VideoNalu=} lastNalu
2296
+ * @return {!Array.<shaka.extern.VideoNalu>}
2297
+ */
2298
+ parseNalus(pes, nextPes, lastNalu) {}
2266
2299
  /**
2267
2300
  * Return the ID3 metadata
2268
2301
  * @return {!Array.<shaka.extern.ID3Metadata>}
@@ -2322,23 +2355,23 @@ shaka.util.TsParser = class {
2322
2355
  shaka.util.TsParser.Timescale;
2323
2356
  /**
2324
2357
  * @summary
2325
- * lcevcDil - (MPEG-5 Part 2 LCEVC - Decoder Integration Layer) provides
2358
+ * lcevcDec - (MPEG-5 Part 2 LCEVC - Decoder) provides
2326
2359
  * all the operations related to the enhancement and rendering
2327
2360
  * of LCEVC enabled streams and on to a canvas.
2328
2361
  * @implements {shaka.util.IReleasable}
2329
2362
  */
2330
- shaka.lcevc.Dil = class {
2363
+ shaka.lcevc.Dec = class {
2331
2364
  /**
2332
2365
  * @param {HTMLVideoElement} media The video element that will be attached to
2333
- * LCEVC Dil for input.
2366
+ * LCEVC Decoder for input.
2334
2367
  * @param {HTMLCanvasElement} canvas The canvas element that will be attached
2335
- * to LCEVC Dil to render the enhanced frames.
2336
- * @param {shaka.extern.LcevcConfiguration} dilConfig The LCEVC DIL
2337
- * config object to initialize the LCEVC DIL.
2368
+ * to LCEVC Decoder to render the enhanced frames.
2369
+ * @param {shaka.extern.LcevcConfiguration} lcevcConfig LCEVC configuration
2370
+ * object to initialize the LCEVC Decoder.
2338
2371
  */
2339
- constructor(media, canvas, dilConfig) {}
2372
+ constructor(media, canvas, lcevcConfig) {}
2340
2373
  /**
2341
- * Close LCEVC Dil.
2374
+ * Close LCEVC Decoder.
2342
2375
  * @override
2343
2376
  */
2344
2377
  release() {}
@@ -3062,9 +3095,10 @@ shaka.Player = class extends shaka.util.FakeEventTarget {
3062
3095
  * <code>load</code> but cannot interrupt calls to <code>attach</code>,
3063
3096
  * <code>detach</code>, or <code>unload</code>.
3064
3097
  * @param {boolean=} initializeMediaSource
3098
+ * @param {boolean=} keepAdManager
3065
3099
  * @return {!Promise}
3066
3100
  */
3067
- unload(initializeMediaSource) {}
3101
+ unload(initializeMediaSource, keepAdManager) {}
3068
3102
  /**
3069
3103
  * Provides a way to update the stream start position during the media loading
3070
3104
  * process. Can for example be called from the <code>manifestparsed</code>
@@ -3667,6 +3701,138 @@ shaka.ads.ClientSideAd = class {
3667
3701
  */
3668
3702
  release() {}
3669
3703
  };
3704
+ /**
3705
+ * @implements {shaka.extern.IAd}
3706
+ */
3707
+ shaka.ads.MediaTailorAd = class {
3708
+ /**
3709
+ * @param {mediaTailor.Ad} mediaTailorAd
3710
+ * @param {number} adPosition
3711
+ * @param {number} totalAds
3712
+ * @param {HTMLMediaElement} video
3713
+ */
3714
+ constructor(mediaTailorAd, adPosition, totalAds, isLinear, video) {}
3715
+ /**
3716
+ * @override
3717
+ */
3718
+ getDuration() {}
3719
+ /**
3720
+ * @override
3721
+ */
3722
+ getMinSuggestedDuration() {}
3723
+ /**
3724
+ * @override
3725
+ */
3726
+ getRemainingTime() {}
3727
+ /**
3728
+ * @override
3729
+ */
3730
+ isPaused() {}
3731
+ /**
3732
+ * @override
3733
+ */
3734
+ isSkippable() {}
3735
+ /**
3736
+ * @override
3737
+ */
3738
+ getTimeUntilSkippable() {}
3739
+ /**
3740
+ * @override
3741
+ */
3742
+ canSkipNow() {}
3743
+ /**
3744
+ * @override
3745
+ */
3746
+ skip() {}
3747
+ /**
3748
+ * @override
3749
+ */
3750
+ pause() {}
3751
+ /**
3752
+ * @override
3753
+ */
3754
+ play() {}
3755
+ /**
3756
+ * @override
3757
+ */
3758
+ getVolume() {}
3759
+ /**
3760
+ * @override
3761
+ */
3762
+ setVolume(volume) {}
3763
+ /**
3764
+ * @override
3765
+ */
3766
+ isMuted() {}
3767
+ /**
3768
+ * @override
3769
+ */
3770
+ isLinear() {}
3771
+ /**
3772
+ * @override
3773
+ */
3774
+ resize(width, height) {}
3775
+ /**
3776
+ * @override
3777
+ */
3778
+ setMuted(muted) {}
3779
+ /**
3780
+ * @override
3781
+ */
3782
+ getSequenceLength() {}
3783
+ /**
3784
+ * @override
3785
+ */
3786
+ getPositionInSequence() {}
3787
+ /**
3788
+ * @override
3789
+ */
3790
+ getTitle() {}
3791
+ /**
3792
+ * @override
3793
+ */
3794
+ getDescription() {}
3795
+ /**
3796
+ * @override
3797
+ */
3798
+ getVastMediaBitrate() {}
3799
+ /**
3800
+ * @override
3801
+ */
3802
+ getVastMediaHeight() {}
3803
+ /**
3804
+ * @override
3805
+ */
3806
+ getVastMediaWidth() {}
3807
+ /**
3808
+ * @override
3809
+ */
3810
+ getAdId() {}
3811
+ /**
3812
+ * @override
3813
+ */
3814
+ getCreativeAdId() {}
3815
+ /**
3816
+ * @override
3817
+ */
3818
+ getAdvertiserName() {}
3819
+ /**
3820
+ * @override
3821
+ */
3822
+ getMediaUrl() {}
3823
+ /**
3824
+ * @override
3825
+ */
3826
+ getTimeOffset() {}
3827
+ /**
3828
+ * @override
3829
+ */
3830
+ getPodIndex() {}
3831
+ /**
3832
+ * @override
3833
+ */
3834
+ release() {}
3835
+ };
3670
3836
  /**
3671
3837
  * @implements {shaka.extern.IAd}
3672
3838
  */
@@ -3833,6 +3999,18 @@ shaka.ads.AdManager = class extends shaka.util.FakeEventTarget {
3833
3999
  * @override
3834
4000
  */
3835
4001
  updateClientSideAdsRenderingSettings(adsRenderingSettings) {}
4002
+ /**
4003
+ * @override
4004
+ */
4005
+ initMediaTailor(adContainer, networkingEngine, video) {}
4006
+ /**
4007
+ * @param {string} url
4008
+ * @param {Object} adsParams
4009
+ * @param {string=} backupUrl
4010
+ * @return {!Promise.<string>}
4011
+ * @override
4012
+ */
4013
+ requestMediaTailorStream(url, adsParams, backupUrl) {}
3836
4014
  /**
3837
4015
  * @override
3838
4016
  */
@@ -3853,11 +4031,20 @@ shaka.ads.AdManager = class extends shaka.util.FakeEventTarget {
3853
4031
  * @override
3854
4032
  */
3855
4033
  getServerSideCuePoints() {}
4034
+ /**
4035
+ * @return {!Array.<!shaka.extern.AdCuePoint>}
4036
+ * @override
4037
+ */
4038
+ getCuePoints() {}
3856
4039
  /**
3857
4040
  * @return {shaka.extern.AdsStats}
3858
4041
  * @override
3859
4042
  */
3860
4043
  getStats() {}
4044
+ /**
4045
+ * @override
4046
+ */
4047
+ onManifestUpdated(isLive) {}
3861
4048
  /**
3862
4049
  * @override
3863
4050
  */
@@ -5133,7 +5320,7 @@ shaka.transmuxer.MpegTsTransmuxer = class {
5133
5320
  /**
5134
5321
  * @override
5135
5322
  */
5136
- transmux(data) {}
5323
+ transmux(data, stream, reference, duration, contentType) {}
5137
5324
  };
5138
5325
  /**
5139
5326
  * @implements {shaka.extern.Transmuxer}
@@ -5168,39 +5355,6 @@ shaka.transmuxer.MssTransmuxer = class {
5168
5355
  */
5169
5356
  transmux(data, stream, reference) {}
5170
5357
  };
5171
- /**
5172
- * @implements {shaka.extern.Transmuxer}
5173
- */
5174
- shaka.transmuxer.MuxjsTransmuxer = class {
5175
- /**
5176
- * @param {string} mimeType
5177
- */
5178
- constructor(mimeType) {}
5179
- /**
5180
- * @override
5181
- */
5182
- destroy() {}
5183
- /**
5184
- * Check if the mime type and the content type is supported.
5185
- * @param {string} mimeType
5186
- * @param {string=} contentType
5187
- * @return {boolean}
5188
- * @override
5189
- */
5190
- isSupported(mimeType, contentType) {}
5191
- /**
5192
- * @override
5193
- */
5194
- convertCodecs(contentType, mimeType) {}
5195
- /**
5196
- * @override
5197
- */
5198
- getOrginalMimeType() {}
5199
- /**
5200
- * @override
5201
- */
5202
- transmux(data) {}
5203
- };
5204
5358
  /**
5205
5359
  * @implements {shaka.extern.Transmuxer}
5206
5360
  */
@@ -5548,6 +5702,16 @@ shaka.ui.Controls = class extends shaka.util.FakeEventTarget {
5548
5702
  isFullScreenEnabled() {}
5549
5703
  /** */
5550
5704
  toggleFullScreen() {}
5705
+ /**
5706
+ * @return {boolean}
5707
+ */
5708
+ isPiPAllowed() {}
5709
+ /**
5710
+ * @return {boolean}
5711
+ */
5712
+ isPiPEnabled() {}
5713
+ /** */
5714
+ togglePiP() {}
5551
5715
  /** */
5552
5716
  showAdUI() {}
5553
5717
  /** */
@@ -5756,6 +5920,17 @@ shaka.ui.PresentationTimeTracker = class extends shaka.ui.Element {
5756
5920
  */
5757
5921
  constructor(parent, controls) {}
5758
5922
  };
5923
+ /**
5924
+ * @extends {shaka.ui.Element}
5925
+ * @final
5926
+ */
5927
+ shaka.ui.RemoteButton = class extends shaka.ui.Element {
5928
+ /**
5929
+ * @param {!HTMLElement} parent
5930
+ * @param {!shaka.ui.Controls} controls
5931
+ */
5932
+ constructor(parent, controls) {}
5933
+ };
5759
5934
  /**
5760
5935
  * @extends {shaka.ui.SettingsMenu}
5761
5936
  * @final