shaka-player 4.4.3 → 4.6.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 (307) hide show
  1. package/.github/ISSUE_TEMPLATE/bug_report.md +1 -1
  2. package/.github/workflows/release-please.yaml +2 -27
  3. package/AUTHORS +2 -0
  4. package/CHANGELOG.md +156 -39
  5. package/CODE_OF_CONDUCT.md +1 -1
  6. package/CONTRIBUTORS +2 -0
  7. package/README.md +54 -42
  8. package/demo/asset_card.js +18 -21
  9. package/demo/cast_receiver/index.html +0 -1
  10. package/demo/close_button.js +0 -3
  11. package/demo/common/asset.js +33 -22
  12. package/demo/common/assets.js +249 -60
  13. package/demo/config.js +219 -253
  14. package/demo/custom.js +88 -133
  15. package/demo/front.js +7 -10
  16. package/demo/index.html +19 -22
  17. package/demo/input.js +6 -11
  18. package/demo/input_container.js +8 -9
  19. package/demo/main.js +62 -126
  20. package/demo/search.js +29 -34
  21. package/demo/service_worker.js +0 -3
  22. package/demo/tooltip.js +3 -5
  23. package/demo/visualizer.js +3 -5
  24. package/demo/visualizer_button.js +1 -20
  25. package/dist/controls.css +1 -1
  26. package/dist/controls.css.map +1 -1
  27. package/dist/demo.compiled.debug.js +211 -228
  28. package/dist/demo.compiled.debug.map +4 -4
  29. package/dist/demo.compiled.js +211 -228
  30. package/dist/demo.compiled.map +4 -4
  31. package/dist/deps.js +42 -37
  32. package/dist/locales.js +34 -30
  33. package/dist/receiver.compiled.debug.js +64 -77
  34. package/dist/receiver.compiled.debug.map +4 -4
  35. package/dist/receiver.compiled.js +64 -77
  36. package/dist/receiver.compiled.map +4 -4
  37. package/dist/shaka-player.compiled.d.ts +343 -151
  38. package/dist/shaka-player.compiled.debug.d.ts +343 -151
  39. package/dist/shaka-player.compiled.debug.externs.js +356 -117
  40. package/dist/shaka-player.compiled.debug.js +952 -811
  41. package/dist/shaka-player.compiled.debug.map +4 -4
  42. package/dist/shaka-player.compiled.externs.js +356 -117
  43. package/dist/shaka-player.compiled.js +1165 -1078
  44. package/dist/shaka-player.compiled.map +4 -4
  45. package/dist/shaka-player.ui.d.ts +359 -153
  46. package/dist/shaka-player.ui.debug.d.ts +359 -153
  47. package/dist/shaka-player.ui.debug.externs.js +382 -117
  48. package/dist/shaka-player.ui.debug.js +1084 -918
  49. package/dist/shaka-player.ui.debug.map +4 -4
  50. package/dist/shaka-player.ui.externs.js +382 -117
  51. package/dist/shaka-player.ui.js +1377 -1274
  52. package/dist/shaka-player.ui.map +4 -4
  53. package/docs/design/lcevc-integration.md +14 -14
  54. package/docs/tutorials/ad_monetization.md +54 -0
  55. package/docs/tutorials/basic-usage.md +2 -1
  56. package/docs/tutorials/errors.md +2 -1
  57. package/docs/tutorials/faq.md +27 -55
  58. package/docs/tutorials/index.json +2 -1
  59. package/docs/tutorials/lcevc.md +118 -0
  60. package/docs/tutorials/offline.md +10 -8
  61. package/docs/tutorials/plugins.md +5 -0
  62. package/docs/tutorials/ui-customization.md +17 -0
  63. package/docs/tutorials/ui.md +2 -1
  64. package/docs/tutorials/upgrade.md +3 -0
  65. package/externs/css_style_declaration.js +19 -0
  66. package/externs/lcevc.js +37 -13
  67. package/externs/managedmediasource.js +24 -0
  68. package/externs/media_remote.js +68 -0
  69. package/externs/mediatailor.js +193 -0
  70. package/externs/pictureinpicture.js +11 -0
  71. package/externs/shaka/abr_manager.js +6 -2
  72. package/externs/shaka/ads.js +27 -0
  73. package/externs/shaka/cea.js +7 -0
  74. package/externs/shaka/codecs.js +5 -3
  75. package/externs/shaka/manifest.js +31 -10
  76. package/externs/shaka/manifest_parser.js +24 -1
  77. package/externs/shaka/net.js +2 -2
  78. package/externs/shaka/offline.js +13 -2
  79. package/externs/shaka/player.js +65 -8
  80. package/externs/shaka/text.js +3 -1
  81. package/externs/shaka/transmuxer.js +1 -1
  82. package/karma.conf.js +7 -3
  83. package/lib/abr/simple_abr_manager.js +66 -9
  84. package/lib/ads/ad_manager.js +104 -50
  85. package/lib/ads/media_tailor_ad.js +297 -0
  86. package/lib/ads/media_tailor_ad_manager.js +839 -0
  87. package/lib/cast/cast_receiver.js +1 -1
  88. package/lib/cea/cea_decoder.js +28 -0
  89. package/lib/cea/dummy_caption_decoder.js +5 -0
  90. package/lib/cea/ts_cea_parser.js +15 -2
  91. package/lib/config/codec_switching_strategy.js +24 -0
  92. package/lib/dash/content_protection.js +120 -2
  93. package/lib/dash/dash_parser.js +322 -93
  94. package/lib/dash/mpd_utils.js +62 -37
  95. package/lib/dash/segment_base.js +17 -10
  96. package/lib/dash/segment_list.js +18 -9
  97. package/lib/dash/segment_template.js +122 -107
  98. package/lib/dependencies/all.js +8 -7
  99. package/lib/hls/hls_classes.js +28 -43
  100. package/lib/hls/hls_parser.js +798 -658
  101. package/lib/hls/hls_utils.js +64 -5
  102. package/lib/hls/manifest_text_parser.js +7 -11
  103. package/lib/lcevc/lcevc_dec.js +220 -0
  104. package/lib/media/adaptation_set.js +32 -14
  105. package/lib/media/adaptation_set_criteria.js +86 -16
  106. package/lib/media/closed_caption_parser.js +13 -0
  107. package/lib/media/content_workarounds.js +6 -0
  108. package/lib/media/drm_engine.js +8 -13
  109. package/lib/media/manifest_parser.js +8 -113
  110. package/lib/media/media_source_capabilities.js +10 -3
  111. package/lib/media/media_source_engine.js +286 -44
  112. package/lib/media/play_rate_controller.js +8 -38
  113. package/lib/media/presentation_timeline.js +7 -1
  114. package/lib/media/quality_observer.js +1 -1
  115. package/lib/media/segment_index.js +6 -6
  116. package/lib/media/segment_prefetch.js +92 -24
  117. package/lib/media/segment_reference.js +73 -7
  118. package/lib/media/segment_utils.js +343 -0
  119. package/lib/media/stall_detector.js +0 -3
  120. package/lib/media/streaming_engine.js +73 -38
  121. package/lib/mss/mss_parser.js +19 -2
  122. package/lib/net/networking_engine.js +67 -12
  123. package/lib/net/networking_utils.js +95 -0
  124. package/lib/offline/indexeddb/v1_storage_cell.js +3 -0
  125. package/lib/offline/indexeddb/v2_storage_cell.js +3 -0
  126. package/lib/offline/manifest_converter.js +3 -0
  127. package/lib/offline/offline_manifest_parser.js +10 -0
  128. package/lib/offline/storage.js +14 -7
  129. package/lib/player.js +1098 -1537
  130. package/lib/polyfill/mediasource.js +22 -1
  131. package/lib/text/cue.js +15 -0
  132. package/lib/text/mp4_ttml_parser.js +2 -2
  133. package/lib/text/srt_text_parser.js +2 -2
  134. package/lib/text/stub_text_displayer.js +51 -0
  135. package/lib/text/text_engine.js +3 -2
  136. package/lib/text/ttml_text_parser.js +45 -5
  137. package/lib/text/ui_text_displayer.js +8 -0
  138. package/lib/text/vtt_text_parser.js +40 -22
  139. package/lib/transmuxer/aac_transmuxer.js +1 -1
  140. package/lib/transmuxer/ac3_transmuxer.js +1 -1
  141. package/lib/transmuxer/ec3_transmuxer.js +1 -1
  142. package/lib/transmuxer/h264.js +5 -4
  143. package/lib/transmuxer/h265.js +863 -0
  144. package/lib/transmuxer/mp3_transmuxer.js +1 -1
  145. package/lib/transmuxer/mpeg_ts_transmuxer.js +4 -3
  146. package/lib/transmuxer/mss_transmuxer.js +1 -1
  147. package/lib/transmuxer/ts_transmuxer.js +187 -22
  148. package/lib/util/buffer_utils.js +26 -4
  149. package/lib/util/content_steering_manager.js +358 -0
  150. package/lib/util/error.js +30 -15
  151. package/lib/util/exp_golomb.js +30 -2
  152. package/lib/util/fairplay_utils.js +1 -1
  153. package/lib/util/fake_event.js +8 -1
  154. package/lib/util/id3_utils.js +50 -1
  155. package/lib/util/manifest_parser_utils.js +12 -8
  156. package/lib/util/mp4_generator.js +6 -8
  157. package/lib/util/mutex.js +59 -0
  158. package/lib/util/object_utils.js +1 -1
  159. package/lib/util/periods.js +156 -179
  160. package/lib/util/platform.js +44 -3
  161. package/lib/util/player_configuration.js +43 -6
  162. package/lib/util/state_history.js +6 -2
  163. package/lib/util/stream_utils.js +206 -283
  164. package/lib/util/ts_parser.js +335 -98
  165. package/lib/util/uint8array_utils.js +5 -1
  166. package/lib/util/xml_utils.js +5 -0
  167. package/maintained-branches.md +3 -2
  168. package/package.json +4 -6
  169. package/roadmap.md +25 -5
  170. package/shaka-player.uncompiled.js +2 -2
  171. package/support.html +0 -1
  172. package/test/abr/simple_abr_manager_unit.js +33 -33
  173. package/test/ads/ad_manager_unit.js +3 -2
  174. package/test/cast/cast_receiver_integration.js +50 -4
  175. package/test/cast/cast_utils_unit.js +2 -0
  176. package/test/cea/cea_decoder_unit.js +7 -0
  177. package/test/codec_switching/codec_switching_integration.js +182 -0
  178. package/test/dash/dash_parser_content_protection_unit.js +2 -0
  179. package/test/dash/dash_parser_integration.js +74 -0
  180. package/test/dash/dash_parser_live_unit.js +2 -19
  181. package/test/dash/dash_parser_manifest_unit.js +536 -2
  182. package/test/dash/dash_parser_segment_base_unit.js +2 -0
  183. package/test/dash/dash_parser_segment_list_unit.js +2 -0
  184. package/test/dash/dash_parser_segment_template_unit.js +2 -0
  185. package/test/dash/mpd_utils_unit.js +61 -30
  186. package/test/demo/demo_unit.js +0 -16
  187. package/test/hls/hls_live_unit.js +14 -3
  188. package/test/hls/hls_parser_unit.js +385 -33
  189. package/test/hls/manifest_text_parser_unit.js +32 -99
  190. package/test/media/adaptation_set_criteria_unit.js +284 -15
  191. package/test/media/adaptation_set_unit.js +2 -0
  192. package/test/media/content_workarounds_unit.js +1 -1
  193. package/test/media/drm_engine_unit.js +3 -3
  194. package/test/media/media_source_engine_unit.js +166 -2
  195. package/test/media/play_rate_controller_unit.js +0 -48
  196. package/test/media/segment_index_unit.js +5 -4
  197. package/test/media/segment_prefetch_unit.js +1 -1
  198. package/test/media/streaming_engine_unit.js +17 -17
  199. package/test/mss/mss_parser_unit.js +2 -0
  200. package/test/mss/mss_player_integration.js +3 -2
  201. package/test/net/networking_engine_unit.js +3 -3
  202. package/test/{media/manifest_parser_unit.js → net/networking_utils_unit.js} +2 -2
  203. package/test/offline/manifest_convert_unit.js +14 -0
  204. package/test/offline/offline_integration.js +2 -1
  205. package/test/offline/storage_integration.js +22 -13
  206. package/test/player_external.js +4 -2
  207. package/test/player_integration.js +15 -4
  208. package/test/player_load_graph_integration.js +47 -151
  209. package/test/player_src_equals_external.js +1 -0
  210. package/test/player_src_equals_integration.js +71 -4
  211. package/test/player_unit.js +182 -158
  212. package/test/test/assets/dash-aes-128/Fragments(video=0,format=mpd-time-csf) +0 -0
  213. package/test/test/assets/dash-aes-128/Fragments(video=20000000,format=mpd-time-csf) +0 -0
  214. package/test/test/assets/dash-aes-128/Fragments(video=40000000,format=mpd-time-csf) +0 -0
  215. package/test/test/assets/dash-aes-128/Fragments(video=60000000,format=mpd-time-csf) +0 -0
  216. package/test/test/assets/dash-aes-128/Fragments(video=i,format=mpd-time-csf) +0 -0
  217. package/test/test/assets/dash-aes-128/dash.mpd +18 -0
  218. package/test/test/assets/dash-aes-128/license +1 -0
  219. package/test/test/assets/dash-multi-codec/audio_en_2c_128k_aac.mp4 +0 -0
  220. package/test/test/assets/dash-multi-codec/audio_es_2c_64k_opus.webm +0 -0
  221. package/test/test/assets/dash-multi-codec/dash.mpd +32 -0
  222. package/test/test/assets/dash-multi-codec/video_144p_108k_h264.mp4 +0 -0
  223. package/test/test/assets/hls-ts-h265/0.ts +0 -0
  224. package/test/test/assets/hls-ts-h265/hevc.m3u8 +6 -0
  225. package/test/test/assets/hls-ts-h265/index.m3u8 +7 -0
  226. package/test/test/assets/hls-ts-muxed-aac-h265/0.ts +0 -0
  227. package/test/test/assets/hls-ts-muxed-aac-h265/1.ts +0 -0
  228. package/test/test/assets/hls-ts-muxed-aac-h265/media.m3u8 +9 -0
  229. package/test/test/assets/hls-ts-muxed-ac3-h264/media.m3u8 +24 -0
  230. package/test/test/assets/hls-ts-muxed-ac3-h264/s_00000.ts +0 -0
  231. package/test/test/assets/hls-ts-muxed-ac3-h264/s_00001.ts +0 -0
  232. package/test/test/assets/hls-ts-muxed-ac3-h264/s_00002.ts +0 -0
  233. package/test/test/assets/hls-ts-muxed-ac3-h264/s_00003.ts +0 -0
  234. package/test/test/assets/hls-ts-muxed-ac3-h264/s_00004.ts +0 -0
  235. package/test/test/assets/hls-ts-muxed-ac3-h264/s_00005.ts +0 -0
  236. package/test/test/assets/hls-ts-muxed-ec3-h264/ChID_voices_1280x720p_25fps_h264_6ch_256kbps_ddp_sub_0000.ts +0 -0
  237. package/test/test/assets/hls-ts-muxed-ec3-h264/ChID_voices_1280x720p_25fps_h264_6ch_256kbps_ddp_sub_0001.ts +0 -0
  238. package/test/test/assets/hls-ts-muxed-ec3-h264/ChID_voices_1280x720p_25fps_h264_6ch_256kbps_ddp_sub_0002.ts +0 -0
  239. package/test/test/assets/hls-ts-muxed-ec3-h264/ChID_voices_1280x720p_25fps_h264_6ch_256kbps_ddp_sub_0003.ts +0 -0
  240. package/test/test/assets/hls-ts-muxed-ec3-h264/prog_index.m3u8 +14 -0
  241. package/test/test/assets/hls-ts-muxed-mp3-h264/index.m3u8 +23 -0
  242. package/test/test/assets/hls-ts-muxed-mp3-h264/seg-1-v1-a1.ts +0 -0
  243. package/test/test/assets/hls-ts-muxed-mp3-h264/seg-2-v1-a1.ts +0 -0
  244. package/test/test/assets/hls-ts-muxed-mp3-h264/seg-3-v1-a1.ts +0 -0
  245. package/test/test/assets/hls-ts-muxed-mp3-h264/seg-4-v1-a1.ts +0 -0
  246. package/test/test/assets/hls-ts-muxed-mp3-h264/seg-5-v1-a1.ts +0 -0
  247. package/test/test/assets/hls-ts-muxed-mp3-h264/seg-6-v1-a1.ts +0 -0
  248. package/test/test/assets/hls-ts-muxed-mp3-h264/seg-7-v1-a1.ts +0 -0
  249. package/test/test/assets/hls-ts-muxed-mp3-h264/seg-8-v1-a1.ts +0 -0
  250. package/test/test/util/dash_parser_util.js +4 -0
  251. package/test/test/util/fake_ad_manager.js +20 -0
  252. package/test/test/util/fake_media_source_engine.js +13 -2
  253. package/test/test/util/fake_networking_engine.js +9 -1
  254. package/test/test/util/fake_segment_prefetch.js +3 -0
  255. package/test/test/util/manifest_generator.js +11 -3
  256. package/test/test/util/manifest_parser_util.js +14 -2
  257. package/test/test/util/mss_parser_util.js +4 -0
  258. package/test/test/util/offline_utils.js +2 -0
  259. package/test/test/util/simple_fakes.js +2 -2
  260. package/test/test/util/streaming_engine_util.js +10 -4
  261. package/test/test/util/test_scheme.js +6 -0
  262. package/test/test/util/ui_utils.js +4 -3
  263. package/test/text/mp4_ttml_parser_unit.js +4 -4
  264. package/test/text/srt_text_parser_unit.js +1 -1
  265. package/test/text/text_displayer_layout_unit.js +1 -1
  266. package/test/text/text_engine_unit.js +6 -0
  267. package/test/text/ttml_text_parser_unit.js +85 -2
  268. package/test/text/vtt_text_parser_unit.js +103 -31
  269. package/test/transmuxer/transmuxer_engine_integration.js +9 -0
  270. package/test/transmuxer/transmuxer_integration.js +150 -3
  271. package/test/ui/ad_ui_unit.js +2 -2
  272. package/test/ui/ui_customization_unit.js +17 -16
  273. package/test/ui/ui_integration.js +30 -20
  274. package/test/ui/ui_unit.js +28 -29
  275. package/test/util/buffer_utils_unit.js +1 -1
  276. package/test/util/content_steering_manager_unit.js +427 -0
  277. package/test/util/id3_utils_unit.js +52 -0
  278. package/test/util/stream_utils_unit.js +207 -169
  279. package/test/util/ts_parser_unit.js +3 -3
  280. package/third_party/closure-uri/uri.js +13 -1
  281. package/ui/audio_language_selection.js +9 -2
  282. package/ui/controls.js +125 -0
  283. package/ui/externs/ui.js +24 -2
  284. package/ui/language_utils.js +43 -8
  285. package/ui/less/range_elements.less +33 -0
  286. package/ui/locales/en.json +1 -0
  287. package/ui/locales/es-419.json +1 -0
  288. package/ui/locales/es.json +1 -0
  289. package/ui/locales/source.json +4 -0
  290. package/ui/localization.js +10 -0
  291. package/ui/pip_button.js +22 -120
  292. package/ui/remote_button.js +203 -0
  293. package/ui/resolution_selection.js +47 -10
  294. package/ui/seek_bar.js +296 -3
  295. package/ui/text_selection.js +2 -1
  296. package/ui/ui.js +11 -4
  297. package/demo/common/message_ids.js +0 -309
  298. package/demo/locales/en.json +0 -288
  299. package/demo/locales/source.json +0 -1146
  300. package/externs/mux.js +0 -69
  301. package/lib/lcevc/lcevc_dil.js +0 -152
  302. package/lib/routing/node.js +0 -23
  303. package/lib/routing/payload.js +0 -43
  304. package/lib/routing/walker.js +0 -587
  305. package/lib/transmuxer/muxjs_transmuxer.js +0 -242
  306. package/test/routing/walker_unit.js +0 -504
  307. package/test/transmuxer/muxjs_transmuxer_integration.js +0 -177
@@ -93,6 +93,18 @@ shaka.util.BufferUtils = class {
93
93
  * @return {!Uint8Array}
94
94
  */
95
95
  static toUint8(data, offset, length) {}
96
+ /**
97
+ * Creates a new Uint16Array view on the same buffer. This clamps the values
98
+ * to be within the same view (i.e. you can't use this to move past the end
99
+ * of the view, even if the underlying buffer is larger). However, you can
100
+ * pass a negative offset to access the data before the view.
101
+ * @param {BufferSource} data
102
+ * @param {number=} offset The offset from the beginning of this data's view
103
+ * to start the new view at.
104
+ * @param {number=} length The byte length of the new view.
105
+ * @return {!Uint16Array}
106
+ */
107
+ static toUint16(data, offset, length) {}
96
108
  /**
97
109
  * Creates a DataView over the given buffer.
98
110
  * @see toUint8
@@ -321,6 +333,11 @@ shaka.text.Cue.prototype.linePadding;
321
333
  * @type {number}
322
334
  */
323
335
  shaka.text.Cue.prototype.opacity;
336
+ /**
337
+ * Text combine upright as a CSS text-combine-upright value.
338
+ * @type {string}
339
+ */
340
+ shaka.text.Cue.prototype.textCombineUpright;
324
341
  /**
325
342
  * Text decoration. A combination of underline, overline
326
343
  * and line through. Empty array means no decoration.
@@ -373,6 +390,12 @@ shaka.text.Cue.prototype.isContainer;
373
390
  * @type {boolean}
374
391
  */
375
392
  shaka.text.Cue.prototype.lineBreak;
393
+ /**
394
+ * Used to indicate the type of ruby tag that should be used when rendering
395
+ * the cue. Valid values: ruby, rp, rt.
396
+ * @type {?string}
397
+ */
398
+ shaka.text.Cue.prototype.rubyTag;
376
399
  /**
377
400
  * The number of horizontal and vertical cells into which the Root Container
378
401
  * Region area is divided.
@@ -727,7 +750,6 @@ shaka.util.Error.Code = {
727
750
  'TEXT_ONLY_WEBVTT_SRC_EQUALS': 2013,
728
751
  'MISSING_TEXT_PLUGIN': 2014,
729
752
  'CHAPTERS_TRACK_FAILED': 2015,
730
- 'CANNOT_ADD_EXTERNAL_THUMBNAILS_TO_SRC_EQUALS': 2016,
731
753
  'UNSUPPORTED_EXTERNAL_THUMBNAILS_URI': 2017,
732
754
  'BUFFER_READ_OUT_OF_BOUNDS': 3000,
733
755
  'JS_INTEGER_OVERFLOW': 3001,
@@ -784,11 +806,13 @@ shaka.util.Error.Code = {
784
806
  'HLS_MSE_ENCRYPTED_MP2T_NOT_SUPPORTED': 4040,
785
807
  'HLS_MSE_ENCRYPTED_LEGACY_APPLE_MEDIA_KEYS_NOT_SUPPORTED': 4041,
786
808
  'NO_WEB_CRYPTO_API': 4042,
787
- 'HLS_AES_128_INVALID_IV_LENGTH': 4043,
788
- 'HLS_AES_128_INVALID_KEY_LENGTH': 4044,
789
809
  'CANNOT_ADD_EXTERNAL_THUMBNAILS_TO_LIVE_STREAM': 4045,
790
810
  'MSS_INVALID_XML': 4046,
791
811
  'MSS_LIVE_CONTENT_NOT_SUPPORTED': 4047,
812
+ 'AES_128_INVALID_IV_LENGTH': 4048,
813
+ 'AES_128_INVALID_KEY_LENGTH': 4049,
814
+ 'DASH_CONFLICTING_AES_128': 4050,
815
+ 'DASH_UNSUPPORTED_AES_128': 4051,
792
816
  'STREAMING_ENGINE_STARTUP_INVALID_STATE': 5006,
793
817
  'NO_RECOGNIZED_KEY_SYSTEMS': 6000,
794
818
  'REQUESTED_KEY_SYSTEM_CONFIG_UNAVAILABLE': 6001,
@@ -839,7 +863,8 @@ shaka.util.Error.Code = {
839
863
  'CS_AD_MANAGER_NOT_INITIALIZED': 10001,
840
864
  'SS_IMA_SDK_MISSING': 10002,
841
865
  'SS_AD_MANAGER_NOT_INITIALIZED': 10003,
842
- 'CURRENT_DAI_REQUEST_NOT_FINISHED': 10004
866
+ 'CURRENT_DAI_REQUEST_NOT_FINISHED': 10004,
867
+ 'MT_AD_MANAGER_NOT_INITIALIZED': 10005
843
868
  };
844
869
  /**
845
870
  * @summary A set of utility functions for dealing with MIME types.
@@ -1119,9 +1144,11 @@ shaka.abr.SimpleAbrManager = class {
1119
1144
  */
1120
1145
  init(switchCallback) {}
1121
1146
  /**
1147
+ * @param {boolean=} preferFastSwitching
1148
+ * @return {shaka.extern.Variant}
1122
1149
  * @override
1123
1150
  */
1124
- chooseVariant() {}
1151
+ chooseVariant(preferFastSwitching) {}
1125
1152
  /**
1126
1153
  * @override
1127
1154
  */
@@ -1133,7 +1160,7 @@ shaka.abr.SimpleAbrManager = class {
1133
1160
  /**
1134
1161
  * @override
1135
1162
  */
1136
- segmentDownloaded(deltaTimeMs, numBytes) {}
1163
+ segmentDownloaded(deltaTimeMs, numBytes, allowSwitch) {}
1137
1164
  /**
1138
1165
  * @override
1139
1166
  */
@@ -1164,6 +1191,13 @@ shaka.config.AutoShowText = {
1164
1191
  'IF_PREFERRED_TEXT_LANGUAGE': 2,
1165
1192
  'IF_SUBTITLES_MAY_BE_NEEDED': 3
1166
1193
  };
1194
+ /**
1195
+ * @enum {string}
1196
+ */
1197
+ shaka.config.CodecSwitchingStrategy = {
1198
+ RELOAD: 'reload',
1199
+ SMOOTH: 'smooth'
1200
+ };
1167
1201
  /**
1168
1202
  * A utility to wrap abortable operations. Note that these are not cancelable.
1169
1203
  * Cancelation implies undoing what has been done so far, whereas aborting only
@@ -1323,17 +1357,20 @@ shaka.util.FakeEventTarget.ListenerType;
1323
1357
  */
1324
1358
  shaka.net.NetworkingEngine = class extends shaka.util.FakeEventTarget {
1325
1359
  /**
1326
- * @param {function(number, number)=} onProgressUpdated Called when a progress
1327
- * event is triggered. Passed the duration, in milliseconds, that the
1328
- * request took, and the number of bytes transferred.
1360
+ * @param {function(number, number, boolean)=} onProgressUpdated Called when
1361
+ * a progress event is triggered. Passed the duration, in milliseconds,
1362
+ * that the request took, the number of bytes transferred, and the boolean
1363
+ * of whether the switching is allowed.
1329
1364
  * @param {shaka.net.NetworkingEngine.OnHeadersReceived=} onHeadersReceived
1330
1365
  * Called when the headers are received for a download.
1331
1366
  * @param {shaka.net.NetworkingEngine.OnDownloadFailed=} onDownloadFailed
1332
1367
  * Called when a download fails, for any reason.
1333
1368
  * @param {shaka.net.NetworkingEngine.OnRequest=} onRequest
1334
1369
  * Called when a request is made
1370
+ * @param {shaka.net.NetworkingEngine.OnRetry=} onRetry
1371
+ * Called when a request retry is made
1335
1372
  */
1336
- constructor(onProgressUpdated, onHeadersReceived, onDownloadFailed, onRequest) {}
1373
+ constructor(onProgressUpdated, onHeadersReceived, onDownloadFailed, onRequest, onRetry) {}
1337
1374
  /**
1338
1375
  * @param {boolean} forceHTTPS
1339
1376
  */
@@ -1461,7 +1498,9 @@ shaka.net.NetworkingEngine.RequestType = {
1461
1498
  'APP': 3,
1462
1499
  'TIMING': 4,
1463
1500
  'SERVER_CERTIFICATE': 5,
1464
- 'KEY': 6
1501
+ 'KEY': 6,
1502
+ 'ADS': 7,
1503
+ 'CONTENT_STEERING': 8
1465
1504
  };
1466
1505
  /**
1467
1506
  * A more advanced form of the RequestType structure, meant to describe
@@ -1520,6 +1559,17 @@ shaka.net.NetworkingEngine.OnDownloadFailed;
1520
1559
  * A callback function called on every request
1521
1560
  */
1522
1561
  shaka.net.NetworkingEngine.OnRequest;
1562
+ /**
1563
+ * @typedef {function(
1564
+ * !shaka.net.NetworkingEngine.RequestType,
1565
+ * (shaka.extern.RequestContext|undefined),
1566
+ * string,
1567
+ * string)}
1568
+ * @description
1569
+ * A callback function called on every request retry. The first string is the
1570
+ * new URI and the second string is the old URI.
1571
+ */
1572
+ shaka.net.NetworkingEngine.OnRetry;
1523
1573
  /**
1524
1574
  * @summary
1525
1575
  * An EventManager maintains a collection of "event
@@ -1893,7 +1943,7 @@ shaka.media.InitSegmentReference = class {
1893
1943
  * the quality of the media associated with this init segment.
1894
1944
  * @param {(null|number)=} timescale
1895
1945
  * @param {(null|BufferSource)=} segmentData
1896
- * @param {?shaka.extern.HlsAes128Key=} aes128Key
1946
+ * @param {?shaka.extern.aes128Key=} aes128Key
1897
1947
  * The segment's AES-128-CBC full segment encryption key and iv.
1898
1948
  */
1899
1949
  constructor(uris, startByte, endByte, mediaQuality, timescale, segmentData, aes128Key) {}
@@ -1969,10 +2019,12 @@ shaka.media.SegmentReference = class {
1969
2019
  * @param {shaka.media.SegmentReference.Status=} status
1970
2020
  * The segment status is used to indicate that a segment does not exist or is
1971
2021
  * not available.
1972
- * @param {?shaka.extern.HlsAes128Key=} hlsAes128Key
2022
+ * @param {?shaka.extern.aes128Key=} aes128Key
1973
2023
  * The segment's AES-128-CBC full segment encryption key and iv.
2024
+ * @param {boolean=} allPartialSegments
2025
+ * Indicate if the segment has all partial segments
1974
2026
  */
1975
- constructor(startTime, endTime, uris, startByte, endByte, initSegmentReference, timestampOffset, appendWindowStart, appendWindowEnd, partialReferences, tilesLayout, tileDuration, syncTime, status, hlsAes128Key) {}
2027
+ constructor(startTime, endTime, uris, startByte, endByte, initSegmentReference, timestampOffset, appendWindowStart, appendWindowEnd, partialReferences, tilesLayout, tileDuration, syncTime, status, aes128Key, allPartialSegments) {}
1976
2028
  /**
1977
2029
  * Creates and returns the URIs of the resource containing the segment.
1978
2030
  * @return {!Array.<string>}
@@ -2039,6 +2091,24 @@ shaka.media.SegmentReference = class {
2039
2091
  * @return {boolean}
2040
2092
  */
2041
2093
  isIndependent() {}
2094
+ /**
2095
+ * Mark the reference as partial.
2096
+ */
2097
+ markAsPartial() {}
2098
+ /**
2099
+ * Returns true if the segment is partial.
2100
+ * @return {boolean}
2101
+ */
2102
+ isPartial() {}
2103
+ /**
2104
+ * Mark the reference as being the last part of the full segment
2105
+ */
2106
+ markAsLastPartial() {}
2107
+ /**
2108
+ * Returns true if reference as being the last part of the full segment.
2109
+ * @return {boolean}
2110
+ */
2111
+ isLastPartial() {}
2042
2112
  /**
2043
2113
  * Mark the reference as byterange optimization.
2044
2114
  * The "byterange optimization" means that it is playable using MP4 low
@@ -2128,8 +2198,9 @@ shaka.util.Id3Utils = class {
2128
2198
  shaka.util.ExpGolomb = class {
2129
2199
  /**
2130
2200
  * @param {!Uint8Array} data
2201
+ * @param {boolean=} convertEbsp2rbsp
2131
2202
  */
2132
- constructor(data) {}
2203
+ constructor(data, convertEbsp2rbsp) {}
2133
2204
  };
2134
2205
  /**
2135
2206
  * @see https://en.wikipedia.org/wiki/MPEG_transport_stream
@@ -2156,6 +2227,15 @@ shaka.util.TsParser = class {
2156
2227
  * @return {!Array.<shaka.extern.VideoNalu>}
2157
2228
  */
2158
2229
  parseAvcNalus(pes, nextPes) {}
2230
+ /**
2231
+ * Parse AVC and HVC Nalus
2232
+ * The code is based on hls.js
2233
+ * Credit to https://github.com/video-dev/hls.js/blob/master/src/demux/tsdemuxer.ts
2234
+ * @param {shaka.extern.MPEG_PES} pes
2235
+ * @param {?shaka.extern.VideoNalu=} lastNalu
2236
+ * @return {!Array.<shaka.extern.VideoNalu>}
2237
+ */
2238
+ parseNalus(pes, lastNalu) {}
2159
2239
  /**
2160
2240
  * Return the ID3 metadata
2161
2241
  * @return {!Array.<shaka.extern.ID3Metadata>}
@@ -2168,14 +2248,16 @@ shaka.util.TsParser = class {
2168
2248
  getAudioData() {}
2169
2249
  /**
2170
2250
  * Return the audio data
2251
+ * @param {boolean=} naluProcessing
2171
2252
  * @return {!Array.<shaka.extern.MPEG_PES>}
2172
2253
  */
2173
- getVideoData() {}
2254
+ getVideoData(naluProcessing) {}
2174
2255
  /**
2175
2256
  * Return the start time for the audio and video
2176
- * @return {{audio: ?number, video: ?number}}
2257
+ * @param {string} contentType
2258
+ * @return {?number}
2177
2259
  */
2178
- getStartTime() {}
2260
+ getStartTime(contentType) {}
2179
2261
  /**
2180
2262
  * Return the audio and video codecs
2181
2263
  * @return {{audio: ?string, video: ?string}}
@@ -2215,23 +2297,23 @@ shaka.util.TsParser = class {
2215
2297
  shaka.util.TsParser.Timescale;
2216
2298
  /**
2217
2299
  * @summary
2218
- * lcevcDil - (MPEG-5 Part 2 LCEVC - Decoder Integration Layer) provides
2300
+ * lcevcDec - (MPEG-5 Part 2 LCEVC - Decoder) provides
2219
2301
  * all the operations related to the enhancement and rendering
2220
2302
  * of LCEVC enabled streams and on to a canvas.
2221
2303
  * @implements {shaka.util.IReleasable}
2222
2304
  */
2223
- shaka.lcevc.Dil = class {
2305
+ shaka.lcevc.Dec = class {
2224
2306
  /**
2225
2307
  * @param {HTMLVideoElement} media The video element that will be attached to
2226
- * LCEVC Dil for input.
2308
+ * LCEVC Decoder for input.
2227
2309
  * @param {HTMLCanvasElement} canvas The canvas element that will be attached
2228
- * to LCEVC Dil to render the enhanced frames.
2229
- * @param {shaka.extern.LcevcConfiguration} dilConfig The LCEVC DIL
2230
- * config object to initialize the LCEVC DIL.
2310
+ * to LCEVC Decoder to render the enhanced frames.
2311
+ * @param {shaka.extern.LcevcConfiguration} lcevcConfig LCEVC configuration
2312
+ * object to initialize the LCEVC Decoder.
2231
2313
  */
2232
- constructor(media, canvas, dilConfig) {}
2314
+ constructor(media, canvas, lcevcConfig) {}
2233
2315
  /**
2234
- * Close LCEVC Dil.
2316
+ * Close LCEVC Decoder.
2235
2317
  * @override
2236
2318
  */
2237
2319
  release() {}
@@ -2427,7 +2509,9 @@ shaka.media.PresentationTimeline = class {
2427
2509
  * @typedef {{
2428
2510
  * start: number,
2429
2511
  * unscaledStart: number,
2430
- * end: number
2512
+ * end: number,
2513
+ * partialSegments: number,
2514
+ * segmentPosition: number
2431
2515
  * }}
2432
2516
  * @description
2433
2517
  * Defines a time range of a media segment. Times are in seconds.
@@ -2437,6 +2521,10 @@ shaka.media.PresentationTimeline = class {
2437
2521
  * The start time of the range in representation timescale units.
2438
2522
  * @property {number} end
2439
2523
  * The end time (exclusive) of the range.
2524
+ * @property {number} partialSegments
2525
+ * The number of partial segments
2526
+ * @property {number} segmentPosition
2527
+ * The segment position of the timeline entry as it appears in the manifest
2440
2528
  */
2441
2529
  shaka.media.PresentationTimeline.TimeRange;
2442
2530
  /**
@@ -2656,6 +2744,32 @@ shaka.text.SimpleTextDisplayer = class {
2656
2744
  */
2657
2745
  setTextVisibility(on) {}
2658
2746
  };
2747
+ /**
2748
+ * A stub text displayer plugin that does nothing
2749
+ * @implements {shaka.extern.TextDisplayer}
2750
+ */
2751
+ shaka.text.StubTextDisplayer = class {
2752
+ /**
2753
+ * @override
2754
+ */
2755
+ remove(start, end) {}
2756
+ /**
2757
+ * @override
2758
+ */
2759
+ append(cues) {}
2760
+ /**
2761
+ * @override
2762
+ */
2763
+ destroy() {}
2764
+ /**
2765
+ * @override
2766
+ */
2767
+ isTextVisible() {}
2768
+ /**
2769
+ * @override
2770
+ */
2771
+ setTextVisibility(on) {}
2772
+ };
2659
2773
  /** */
2660
2774
  shaka.util.Dom = class {
2661
2775
  /**
@@ -2903,16 +3017,9 @@ shaka.Player = class extends shaka.util.FakeEventTarget {
2903
3017
  */
2904
3018
  static probeSupport(promptsOkay) {}
2905
3019
  /**
2906
- * Tell the player to use <code>mediaElement</code> for all <code>load</code>
2907
- * requests until <code>detach</code> or <code>destroy</code> are called.
2908
- * <p>
2909
- * Calling <code>attach</code> with <code>initializedMediaSource=true</code>
2910
- * will tell the player to take the initial load step and initialize media
2911
- * source.
2912
- * <p>
2913
- * Calls to <code>attach</code> will interrupt any in-progress calls to
2914
- * <code>load</code> but cannot interrupt calls to <code>attach</code>,
2915
- * <code>detach</code>, or <code>unload</code>.
3020
+ * Attaches the player to a media element.
3021
+ * If the player was already attached to a media element, first detaches from
3022
+ * that media element.
2916
3023
  * @param {!HTMLMediaElement} mediaElement
2917
3024
  * @param {boolean=} initializeMediaSource
2918
3025
  * @return {!Promise}
@@ -2925,39 +3032,20 @@ shaka.Player = class extends shaka.util.FakeEventTarget {
2925
3032
  */
2926
3033
  attachCanvas(canvas) {}
2927
3034
  /**
2928
- * Tell the player to stop using its current media element. If the player is:
2929
- * <ul>
2930
- * <li>detached, this will do nothing,
2931
- * <li>attached, this will release the media element,
2932
- * <li>loading, this will abort loading, unload, and release the media
2933
- * element,
2934
- * <li>playing content, this will stop playback, unload, and release the
2935
- * media element.
2936
- * </ul>
2937
- * <p>
2938
- * Calls to <code>detach</code> will interrupt any in-progress calls to
2939
- * <code>load</code> but cannot interrupt calls to <code>attach</code>,
2940
- * <code>detach</code>, or <code>unload</code>.
3035
+ * Detach the player from the current media element. Leaves the player in a
3036
+ * state where it cannot play media, until it has been attached to something
3037
+ * else.
3038
+ * @param {boolean=} keepAdManager
2941
3039
  * @return {!Promise}
2942
3040
  */
2943
- detach() {}
3041
+ detach(keepAdManager) {}
2944
3042
  /**
2945
- * Tell the player to either return to:
2946
- * <ul>
2947
- * <li>detached (when it does not have a media element),
2948
- * <li>attached (when it has a media element and
2949
- * <code>initializedMediaSource=false</code>)
2950
- * <li>media source initialized (when it has a media element and
2951
- * <code>initializedMediaSource=true</code>)
2952
- * </ul>
2953
- * <p>
2954
- * Calls to <code>unload</code> will interrupt any in-progress calls to
2955
- * <code>load</code> but cannot interrupt calls to <code>attach</code>,
2956
- * <code>detach</code>, or <code>unload</code>.
3043
+ * Unloads the currently playing stream, if any.
2957
3044
  * @param {boolean=} initializeMediaSource
3045
+ * @param {boolean=} keepAdManager
2958
3046
  * @return {!Promise}
2959
3047
  */
2960
- unload(initializeMediaSource) {}
3048
+ unload(initializeMediaSource, keepAdManager) {}
2961
3049
  /**
2962
3050
  * Provides a way to update the stream start position during the media loading
2963
3051
  * process. Can for example be called from the <code>manifestparsed</code>
@@ -2967,22 +3055,21 @@ shaka.Player = class extends shaka.util.FakeEventTarget {
2967
3055
  */
2968
3056
  updateStartTime(startTime) {}
2969
3057
  /**
2970
- * Tell the player to load the content at <code>assetUri</code> and start
2971
- * playback at <code>startTime</code>. Before calling <code>load</code>,
2972
- * a call to <code>attach</code> must have succeeded.
2973
- * <p>
2974
- * Calls to <code>load</code> will interrupt any in-progress calls to
2975
- * <code>load</code> but cannot interrupt calls to <code>attach</code>,
2976
- * <code>detach</code>, or <code>unload</code>.
3058
+ * Loads a new stream.
3059
+ * If another stream was already playing, first unloads that stream.
2977
3060
  * @param {string} assetUri
2978
3061
  * @param {?number=} startTime
2979
3062
  * When <code>startTime</code> is <code>null</code> or
2980
3063
  * <code>undefined</code>, playback will start at the default start time (0
2981
3064
  * for VOD and liveEdge for LIVE).
2982
- * @param {string=} mimeType
3065
+ * @param {?string=} mimeType
2983
3066
  * @return {!Promise}
2984
3067
  */
2985
3068
  load(assetUri, startTime, mimeType) {}
3069
+ /**
3070
+ * Releases all of the mutexes of the player. Meant for use by the tests.
3071
+ */
3072
+ releaseAllMutexes() {}
2986
3073
  /**
2987
3074
  * Changes configuration settings on the Player. This checks the names of
2988
3075
  * keys and the types of values to avoid coding errors. If there are errors,
@@ -3081,7 +3168,8 @@ shaka.Player = class extends shaka.util.FakeEventTarget {
3081
3168
  isAudioOnly() {}
3082
3169
  /**
3083
3170
  * Get the range of time (in seconds) that seeking is allowed. If the player
3084
- * has not loaded content, this will return a range from 0 to 0.
3171
+ * has not loaded content and the manifest is HLS, this will return a range
3172
+ * from 0 to 0.
3085
3173
  * @return {{start: number, end: number}}
3086
3174
  */
3087
3175
  seekRange() {}
@@ -3179,6 +3267,13 @@ shaka.Player = class extends shaka.util.FakeEventTarget {
3179
3267
  * @return {!Array.<shaka.extern.Track>}
3180
3268
  */
3181
3269
  getImageTracks() {}
3270
+ /**
3271
+ * Returns Thumbnail objects for each thumbnail for a given image track ID.
3272
+ * If the player has not loaded content, this will return a null.
3273
+ * @param {number} trackId
3274
+ * @return {!Promise.<?Array<!shaka.extern.Thumbnail>>}
3275
+ */
3276
+ getAllThumbnails(trackId) {}
3182
3277
  /**
3183
3278
  * Return a Thumbnail object from a image track Id and time.
3184
3279
  * If the player has not loaded content, this will return a null.
@@ -3560,6 +3655,138 @@ shaka.ads.ClientSideAd = class {
3560
3655
  */
3561
3656
  release() {}
3562
3657
  };
3658
+ /**
3659
+ * @implements {shaka.extern.IAd}
3660
+ */
3661
+ shaka.ads.MediaTailorAd = class {
3662
+ /**
3663
+ * @param {mediaTailor.Ad} mediaTailorAd
3664
+ * @param {number} adPosition
3665
+ * @param {number} totalAds
3666
+ * @param {HTMLMediaElement} video
3667
+ */
3668
+ constructor(mediaTailorAd, adPosition, totalAds, isLinear, video) {}
3669
+ /**
3670
+ * @override
3671
+ */
3672
+ getDuration() {}
3673
+ /**
3674
+ * @override
3675
+ */
3676
+ getMinSuggestedDuration() {}
3677
+ /**
3678
+ * @override
3679
+ */
3680
+ getRemainingTime() {}
3681
+ /**
3682
+ * @override
3683
+ */
3684
+ isPaused() {}
3685
+ /**
3686
+ * @override
3687
+ */
3688
+ isSkippable() {}
3689
+ /**
3690
+ * @override
3691
+ */
3692
+ getTimeUntilSkippable() {}
3693
+ /**
3694
+ * @override
3695
+ */
3696
+ canSkipNow() {}
3697
+ /**
3698
+ * @override
3699
+ */
3700
+ skip() {}
3701
+ /**
3702
+ * @override
3703
+ */
3704
+ pause() {}
3705
+ /**
3706
+ * @override
3707
+ */
3708
+ play() {}
3709
+ /**
3710
+ * @override
3711
+ */
3712
+ getVolume() {}
3713
+ /**
3714
+ * @override
3715
+ */
3716
+ setVolume(volume) {}
3717
+ /**
3718
+ * @override
3719
+ */
3720
+ isMuted() {}
3721
+ /**
3722
+ * @override
3723
+ */
3724
+ isLinear() {}
3725
+ /**
3726
+ * @override
3727
+ */
3728
+ resize(width, height) {}
3729
+ /**
3730
+ * @override
3731
+ */
3732
+ setMuted(muted) {}
3733
+ /**
3734
+ * @override
3735
+ */
3736
+ getSequenceLength() {}
3737
+ /**
3738
+ * @override
3739
+ */
3740
+ getPositionInSequence() {}
3741
+ /**
3742
+ * @override
3743
+ */
3744
+ getTitle() {}
3745
+ /**
3746
+ * @override
3747
+ */
3748
+ getDescription() {}
3749
+ /**
3750
+ * @override
3751
+ */
3752
+ getVastMediaBitrate() {}
3753
+ /**
3754
+ * @override
3755
+ */
3756
+ getVastMediaHeight() {}
3757
+ /**
3758
+ * @override
3759
+ */
3760
+ getVastMediaWidth() {}
3761
+ /**
3762
+ * @override
3763
+ */
3764
+ getAdId() {}
3765
+ /**
3766
+ * @override
3767
+ */
3768
+ getCreativeAdId() {}
3769
+ /**
3770
+ * @override
3771
+ */
3772
+ getAdvertiserName() {}
3773
+ /**
3774
+ * @override
3775
+ */
3776
+ getMediaUrl() {}
3777
+ /**
3778
+ * @override
3779
+ */
3780
+ getTimeOffset() {}
3781
+ /**
3782
+ * @override
3783
+ */
3784
+ getPodIndex() {}
3785
+ /**
3786
+ * @override
3787
+ */
3788
+ release() {}
3789
+ };
3563
3790
  /**
3564
3791
  * @implements {shaka.extern.IAd}
3565
3792
  */
@@ -3726,6 +3953,18 @@ shaka.ads.AdManager = class extends shaka.util.FakeEventTarget {
3726
3953
  * @override
3727
3954
  */
3728
3955
  updateClientSideAdsRenderingSettings(adsRenderingSettings) {}
3956
+ /**
3957
+ * @override
3958
+ */
3959
+ initMediaTailor(adContainer, networkingEngine, video) {}
3960
+ /**
3961
+ * @param {string} url
3962
+ * @param {Object} adsParams
3963
+ * @param {string=} backupUrl
3964
+ * @return {!Promise.<string>}
3965
+ * @override
3966
+ */
3967
+ requestMediaTailorStream(url, adsParams, backupUrl) {}
3729
3968
  /**
3730
3969
  * @override
3731
3970
  */
@@ -3746,11 +3985,20 @@ shaka.ads.AdManager = class extends shaka.util.FakeEventTarget {
3746
3985
  * @override
3747
3986
  */
3748
3987
  getServerSideCuePoints() {}
3988
+ /**
3989
+ * @return {!Array.<!shaka.extern.AdCuePoint>}
3990
+ * @override
3991
+ */
3992
+ getCuePoints() {}
3749
3993
  /**
3750
3994
  * @return {shaka.extern.AdsStats}
3751
3995
  * @override
3752
3996
  */
3753
3997
  getStats() {}
3998
+ /**
3999
+ * @override
4000
+ */
4001
+ onManifestUpdated(isLive) {}
3754
4002
  /**
3755
4003
  * @override
3756
4004
  */
@@ -4150,6 +4398,14 @@ shaka.dash.DashParser = class {
4150
4398
  * @override
4151
4399
  */
4152
4400
  onExpirationUpdated(sessionId, expiration) {}
4401
+ /**
4402
+ * @override
4403
+ */
4404
+ onInitialVariantChosen(variant) {}
4405
+ /**
4406
+ * @override
4407
+ */
4408
+ banLocation(uri) {}
4153
4409
  };
4154
4410
  /**
4155
4411
  */
@@ -4219,6 +4475,14 @@ shaka.hls.HlsParser = class {
4219
4475
  * @override
4220
4476
  */
4221
4477
  onExpirationUpdated(sessionId, expiration) {}
4478
+ /**
4479
+ * @override
4480
+ */
4481
+ onInitialVariantChosen(variant) {}
4482
+ /**
4483
+ * @override
4484
+ */
4485
+ banLocation(uri) {}
4222
4486
  };
4223
4487
  /**
4224
4488
  * Creates a new MSS parser.
@@ -4247,6 +4511,14 @@ shaka.mss.MssParser = class {
4247
4511
  * @override
4248
4512
  */
4249
4513
  onExpirationUpdated(sessionId, expiration) {}
4514
+ /**
4515
+ * @override
4516
+ */
4517
+ onInitialVariantChosen(variant) {}
4518
+ /**
4519
+ * @override
4520
+ */
4521
+ banLocation(uri) {}
4250
4522
  };
4251
4523
  /**
4252
4524
  * @summary A networking plugin to handle http and https URIs via the Fetch API.
@@ -4719,7 +4991,7 @@ shaka.text.TtmlTextParser = class {
4719
4991
  /**
4720
4992
  * @override
4721
4993
  */
4722
- parseMedia(data, time) {}
4994
+ parseMedia(data, time, uri) {}
4723
4995
  };
4724
4996
  /**
4725
4997
  * @implements {shaka.extern.TextParser}
@@ -4742,7 +5014,7 @@ shaka.text.Mp4TtmlParser = class {
4742
5014
  /**
4743
5015
  * @override
4744
5016
  */
4745
- parseMedia(data, time) {}
5017
+ parseMedia(data, time, uri) {}
4746
5018
  };
4747
5019
  /**
4748
5020
  * @implements {shaka.extern.TextParser}
@@ -4832,7 +5104,7 @@ shaka.text.SrtTextParser = class {
4832
5104
  /**
4833
5105
  * @override
4834
5106
  */
4835
- parseMedia(data, time) {}
5107
+ parseMedia(data, time, uri) {}
4836
5108
  /**
4837
5109
  * Convert a SRT format to WebVTT
4838
5110
  * @param {string} data
@@ -4890,7 +5162,7 @@ shaka.transmuxer.AacTransmuxer = class {
4890
5162
  /**
4891
5163
  * @override
4892
5164
  */
4893
- getOrginalMimeType() {}
5165
+ getOriginalMimeType() {}
4894
5166
  /**
4895
5167
  * @override
4896
5168
  */
@@ -4923,7 +5195,7 @@ shaka.transmuxer.Ac3Transmuxer = class {
4923
5195
  /**
4924
5196
  * @override
4925
5197
  */
4926
- getOrginalMimeType() {}
5198
+ getOriginalMimeType() {}
4927
5199
  /**
4928
5200
  * @override
4929
5201
  */
@@ -4956,7 +5228,7 @@ shaka.transmuxer.Ec3Transmuxer = class {
4956
5228
  /**
4957
5229
  * @override
4958
5230
  */
4959
- getOrginalMimeType() {}
5231
+ getOriginalMimeType() {}
4960
5232
  /**
4961
5233
  * @override
4962
5234
  */
@@ -4989,7 +5261,7 @@ shaka.transmuxer.Mp3Transmuxer = class {
4989
5261
  /**
4990
5262
  * @override
4991
5263
  */
4992
- getOrginalMimeType() {}
5264
+ getOriginalMimeType() {}
4993
5265
  /**
4994
5266
  * @override
4995
5267
  */
@@ -5022,11 +5294,11 @@ shaka.transmuxer.MpegTsTransmuxer = class {
5022
5294
  /**
5023
5295
  * @override
5024
5296
  */
5025
- getOrginalMimeType() {}
5297
+ getOriginalMimeType() {}
5026
5298
  /**
5027
5299
  * @override
5028
5300
  */
5029
- transmux(data) {}
5301
+ transmux(data, stream, reference, duration, contentType) {}
5030
5302
  };
5031
5303
  /**
5032
5304
  * @implements {shaka.extern.Transmuxer}
@@ -5055,45 +5327,12 @@ shaka.transmuxer.MssTransmuxer = class {
5055
5327
  /**
5056
5328
  * @override
5057
5329
  */
5058
- getOrginalMimeType() {}
5330
+ getOriginalMimeType() {}
5059
5331
  /**
5060
5332
  * @override
5061
5333
  */
5062
5334
  transmux(data, stream, reference) {}
5063
5335
  };
5064
- /**
5065
- * @implements {shaka.extern.Transmuxer}
5066
- */
5067
- shaka.transmuxer.MuxjsTransmuxer = class {
5068
- /**
5069
- * @param {string} mimeType
5070
- */
5071
- constructor(mimeType) {}
5072
- /**
5073
- * @override
5074
- */
5075
- destroy() {}
5076
- /**
5077
- * Check if the mime type and the content type is supported.
5078
- * @param {string} mimeType
5079
- * @param {string=} contentType
5080
- * @return {boolean}
5081
- * @override
5082
- */
5083
- isSupported(mimeType, contentType) {}
5084
- /**
5085
- * @override
5086
- */
5087
- convertCodecs(contentType, mimeType) {}
5088
- /**
5089
- * @override
5090
- */
5091
- getOrginalMimeType() {}
5092
- /**
5093
- * @override
5094
- */
5095
- transmux(data) {}
5096
- };
5097
5336
  /**
5098
5337
  * @implements {shaka.extern.Transmuxer}
5099
5338
  */
@@ -5121,7 +5360,7 @@ shaka.transmuxer.TsTransmuxer = class {
5121
5360
  /**
5122
5361
  * @override
5123
5362
  */
5124
- getOrginalMimeType() {}
5363
+ getOriginalMimeType() {}
5125
5364
  /**
5126
5365
  * @override
5127
5366
  */