shaka-player 4.9.13 → 4.10.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 (91) hide show
  1. package/README.md +4 -0
  2. package/dist/controls.css +2 -2
  3. package/dist/controls.css.map +1 -1
  4. package/dist/deps.js +24 -19
  5. package/dist/locales.js +46 -35
  6. package/dist/shaka-player.compiled.d.ts +291 -12
  7. package/dist/shaka-player.compiled.debug.d.ts +291 -12
  8. package/dist/shaka-player.compiled.debug.externs.js +443 -6
  9. package/dist/shaka-player.compiled.debug.js +651 -556
  10. package/dist/shaka-player.compiled.debug.map +4 -4
  11. package/dist/shaka-player.compiled.externs.js +443 -6
  12. package/dist/shaka-player.compiled.js +1325 -1270
  13. package/dist/shaka-player.compiled.map +4 -4
  14. package/dist/shaka-player.ui.d.ts +306 -13
  15. package/dist/shaka-player.ui.debug.d.ts +306 -13
  16. package/dist/shaka-player.ui.debug.externs.js +477 -18
  17. package/dist/shaka-player.ui.debug.js +799 -681
  18. package/dist/shaka-player.ui.debug.map +4 -4
  19. package/dist/shaka-player.ui.externs.js +477 -18
  20. package/dist/shaka-player.ui.js +1600 -1533
  21. package/dist/shaka-player.ui.map +4 -4
  22. package/externs/shaka/ads.js +21 -1
  23. package/externs/shaka/manifest.js +20 -1
  24. package/externs/shaka/manifest_parser.js +18 -1
  25. package/externs/shaka/player.js +164 -50
  26. package/lib/ads/ad_manager.js +225 -10
  27. package/lib/ads/ad_utils.js +323 -0
  28. package/lib/ads/ads_stats.js +24 -0
  29. package/lib/ads/client_side_ad_manager.js +42 -34
  30. package/lib/ads/interstitial_ad.js +292 -0
  31. package/lib/ads/interstitial_ad_manager.js +772 -0
  32. package/lib/ads/media_tailor_ad_manager.js +19 -22
  33. package/lib/ads/server_side_ad_manager.js +12 -15
  34. package/lib/cast/cast_utils.js +1 -0
  35. package/lib/cea/cea_utils.js +12 -0
  36. package/lib/cea/mp4_cea_parser.js +17 -0
  37. package/lib/dash/dash_parser.js +81 -28
  38. package/lib/dash/segment_base.js +3 -0
  39. package/lib/hls/hls_parser.js +429 -121
  40. package/lib/hls/manifest_text_parser.js +1 -0
  41. package/lib/media/adaptation_set_criteria.js +31 -1
  42. package/lib/media/drm_engine.js +16 -2
  43. package/lib/media/manifest_filterer.js +7 -5
  44. package/lib/media/preload_manager.js +8 -10
  45. package/lib/media/presentation_timeline.js +37 -5
  46. package/lib/media/quality_observer.js +68 -2
  47. package/lib/media/segment_reference.js +1 -1
  48. package/lib/media/segment_utils.js +33 -1
  49. package/lib/media/streaming_engine.js +120 -43
  50. package/lib/mss/mss_parser.js +13 -2
  51. package/lib/net/networking_engine.js +1 -0
  52. package/lib/offline/manifest_converter.js +3 -0
  53. package/lib/offline/offline_manifest_parser.js +5 -0
  54. package/lib/offline/storage.js +2 -0
  55. package/lib/player.js +498 -165
  56. package/lib/util/fake_event.js +1 -0
  57. package/lib/util/manifest_parser_utils.js +9 -2
  58. package/lib/util/mp4_box_parsers.js +32 -0
  59. package/lib/util/player_configuration.js +21 -9
  60. package/lib/util/stats.js +43 -0
  61. package/package.json +1 -1
  62. package/shaka-player.uncompiled.js +2 -0
  63. package/ui/ad_counter.js +3 -3
  64. package/ui/ad_position.js +3 -3
  65. package/ui/ad_statistics_button.js +237 -0
  66. package/ui/audio_language_selection.js +8 -4
  67. package/ui/controls.js +6 -3
  68. package/ui/element.js +3 -3
  69. package/ui/enums.js +1 -0
  70. package/ui/externs/ui.js +3 -0
  71. package/ui/language_utils.js +48 -3
  72. package/ui/less/containers.less +32 -0
  73. package/ui/less/thumbnails.less +13 -0
  74. package/ui/locales/en.json +2 -0
  75. package/ui/locales/es-419.json +2 -0
  76. package/ui/locales/es.json +3 -0
  77. package/ui/locales/fr.json +1 -0
  78. package/ui/locales/pl.json +1 -0
  79. package/ui/locales/pt-BR.json +1 -0
  80. package/ui/locales/pt-PT.json +1 -0
  81. package/ui/locales/source.json +8 -0
  82. package/ui/mute_button.js +4 -4
  83. package/ui/overflow_menu.js +3 -3
  84. package/ui/play_button.js +5 -7
  85. package/ui/presentation_time.js +3 -3
  86. package/ui/save_video_frame_button.js +196 -0
  87. package/ui/seek_bar.js +75 -20
  88. package/ui/skip_ad_button.js +4 -4
  89. package/ui/statistics_button.js +14 -2
  90. package/ui/ui.js +15 -0
  91. package/ui/volume_bar.js +4 -4
@@ -1799,7 +1799,8 @@ shaka.net.NetworkingEngine.AdvancedRequestType = {
1799
1799
  'MEDIA_PLAYLIST': 2,
1800
1800
  'MASTER_PLAYLIST': 3,
1801
1801
  'MPD': 4,
1802
- 'MSS': 5
1802
+ 'MSS': 5,
1803
+ 'MPD_PATCH': 6
1803
1804
  };
1804
1805
  /**
1805
1806
  * Priority level for network scheme plugins.
@@ -2586,6 +2587,11 @@ shaka.media.PresentationTimeline = class {
2586
2587
  * @param {!Array.<!shaka.media.SegmentReference>} references
2587
2588
  */
2588
2589
  notifySegments(references) {}
2590
+ /**
2591
+ * Gets the end time of the last available segment.
2592
+ * @return {?number}
2593
+ */
2594
+ getMaxSegmentEndTime() {}
2589
2595
  /**
2590
2596
  * Lock the presentation timeline's start time. After this is called, no
2591
2597
  * further adjustments to presentationStartTime_ will be permitted.
@@ -2700,6 +2706,12 @@ shaka.media.PresentationTimeline = class {
2700
2706
  * @param {number} offset
2701
2707
  */
2702
2708
  setAvailabilityTimeOffset(offset) {}
2709
+ /**
2710
+ * Gets the presentation's segment availability time offset. This should be
2711
+ * only configured for Low Latency Dash.
2712
+ * @return {number} availabilityTimeOffset parameter
2713
+ */
2714
+ getAvailabilityTimeOffset() {}
2703
2715
  };
2704
2716
  /**
2705
2717
  * @typedef {{
@@ -3075,11 +3087,10 @@ shaka.media.PreloadManager = class extends shaka.util.FakeEventTarget {
3075
3087
  /**
3076
3088
  * @param {string} assetUri
3077
3089
  * @param {?string} mimeType
3078
- * @param {number} startTimeOfLoad
3079
3090
  * @param {?number} startTime
3080
3091
  * @param {*} playerInterface
3081
3092
  */
3082
- constructor(assetUri, mimeType, startTimeOfLoad, startTime, playerInterface) {}
3093
+ constructor(assetUri, mimeType, startTime, playerInterface) {}
3083
3094
  /**
3084
3095
  * Waits for the loading to be finished (or to fail with an error).
3085
3096
  * @return {!Promise}
@@ -3377,9 +3388,10 @@ shaka.Player = class extends shaka.util.FakeEventTarget {
3377
3388
  * Leaves the player in a state where it cannot play media, until it has been
3378
3389
  * attached to something else.
3379
3390
  * @param {boolean=} keepAdManager
3391
+ * @param {boolean=} saveLivePosition
3380
3392
  * @return {!Promise.<?shaka.media.PreloadManager>}
3381
3393
  */
3382
- detachAndSavePreload(keepAdManager) {}
3394
+ detachAndSavePreload(keepAdManager, saveLivePosition) {}
3383
3395
  /**
3384
3396
  * Starts to preload a given asset, and returns a PreloadManager object that
3385
3397
  * represents that preloading process.
@@ -3402,6 +3414,10 @@ shaka.Player = class extends shaka.util.FakeEventTarget {
3402
3414
  * @return {!Promise.<?shaka.media.PreloadManager>}
3403
3415
  */
3404
3416
  preload(assetUri, startTime, mimeType) {}
3417
+ /**
3418
+ * Calls |destroy| on each PreloadManager object this player has created.
3419
+ */
3420
+ destroyAllPreloads() {}
3405
3421
  /**
3406
3422
  * Releases all of the mutexes of the player. Meant for use by the tests.
3407
3423
  */
@@ -3520,6 +3536,11 @@ shaka.Player = class extends shaka.util.FakeEventTarget {
3520
3536
  * Go to live in a live stream.
3521
3537
  */
3522
3538
  goToLive() {}
3539
+ /**
3540
+ * Indicates if the player has fully loaded the stream.
3541
+ * @return {boolean}
3542
+ */
3543
+ isFullyLoaded() {}
3523
3544
  /**
3524
3545
  * Get the key system currently used by EME. If EME is not being used, this
3525
3546
  * will return an empty string. If the player has not loaded content, this
@@ -3692,8 +3713,9 @@ shaka.Player = class extends shaka.util.FakeEventTarget {
3692
3713
  * @param {string=} role
3693
3714
  * @param {number=} channelsCount
3694
3715
  * @param {number=} safeMargin
3716
+ * @param {string=} codec
3695
3717
  */
3696
- selectAudioLanguage(language, role, channelsCount, safeMargin) {}
3718
+ selectAudioLanguage(language, role, channelsCount, safeMargin, codec) {}
3697
3719
  /**
3698
3720
  * Sets the current text language and current text role to the selected
3699
3721
  * language and role, and chooses a new variant if need be. If the player has
@@ -3999,6 +4021,321 @@ shaka.ads.ClientSideAd = class {
3999
4021
  */
4000
4022
  release() {}
4001
4023
  };
4024
+ /**
4025
+ * A class responsible for ad utils.
4026
+ */
4027
+ shaka.ads.Utils = class {
4028
+ };
4029
+ /**
4030
+ * The event name for when a sequence of ads has been loaded.
4031
+ * @const {string}
4032
+ */
4033
+ shaka.ads.Utils.ADS_LOADED;
4034
+ /**
4035
+ * The event name for when an ad has started playing.
4036
+ * @const {string}
4037
+ */
4038
+ shaka.ads.Utils.AD_STARTED;
4039
+ /**
4040
+ * The event name for when an ad playhead crosses first quartile.
4041
+ * @const {string}
4042
+ */
4043
+ shaka.ads.Utils.AD_FIRST_QUARTILE;
4044
+ /**
4045
+ * The event name for when an ad playhead crosses midpoint.
4046
+ * @const {string}
4047
+ */
4048
+ shaka.ads.Utils.AD_MIDPOINT;
4049
+ /**
4050
+ * The event name for when an ad playhead crosses third quartile.
4051
+ * @const {string}
4052
+ */
4053
+ shaka.ads.Utils.AD_THIRD_QUARTILE;
4054
+ /**
4055
+ * The event name for when an ad has completed playing.
4056
+ * @const {string}
4057
+ */
4058
+ shaka.ads.Utils.AD_COMPLETE;
4059
+ /**
4060
+ * The event name for when an ad has finished playing
4061
+ * (played all the way through, was skipped, or was unable to proceed
4062
+ * due to an error).
4063
+ * @const {string}
4064
+ */
4065
+ shaka.ads.Utils.AD_STOPPED;
4066
+ /**
4067
+ * The event name for when an ad is skipped by the user..
4068
+ * @const {string}
4069
+ */
4070
+ shaka.ads.Utils.AD_SKIPPED;
4071
+ /**
4072
+ * The event name for when the ad volume has changed.
4073
+ * @const {string}
4074
+ */
4075
+ shaka.ads.Utils.AD_VOLUME_CHANGED;
4076
+ /**
4077
+ * The event name for when the ad was muted.
4078
+ * @const {string}
4079
+ */
4080
+ shaka.ads.Utils.AD_MUTED;
4081
+ /**
4082
+ * The event name for when the ad was paused.
4083
+ * @const {string}
4084
+ */
4085
+ shaka.ads.Utils.AD_PAUSED;
4086
+ /**
4087
+ * The event name for when the ad was resumed after a pause.
4088
+ * @const {string}
4089
+ */
4090
+ shaka.ads.Utils.AD_RESUMED;
4091
+ /**
4092
+ * The event name for when the ad's skip status changes
4093
+ * (usually it becomes skippable when it wasn't before).
4094
+ * @const {string}
4095
+ */
4096
+ shaka.ads.Utils.AD_SKIP_STATE_CHANGED;
4097
+ /**
4098
+ * The event name for when the ad's cue points (start/end markers)
4099
+ * have changed.
4100
+ * @const {string}
4101
+ */
4102
+ shaka.ads.Utils.CUEPOINTS_CHANGED;
4103
+ /**
4104
+ * The event name for when the native IMA ad manager object has
4105
+ * loaded and become available.
4106
+ * @const {string}
4107
+ */
4108
+ shaka.ads.Utils.IMA_AD_MANAGER_LOADED;
4109
+ /**
4110
+ * The event name for when the native IMA stream manager object has
4111
+ * loaded and become available.
4112
+ * @const {string}
4113
+ */
4114
+ shaka.ads.Utils.IMA_STREAM_MANAGER_LOADED;
4115
+ /**
4116
+ * The event name for when the ad was clicked.
4117
+ * @const {string}
4118
+ */
4119
+ shaka.ads.Utils.AD_CLICKED;
4120
+ /**
4121
+ * The event name for when there is an update to the current ad's progress.
4122
+ * @const {string}
4123
+ */
4124
+ shaka.ads.Utils.AD_PROGRESS;
4125
+ /**
4126
+ * The event name for when the ad is buffering.
4127
+ * @const {string}
4128
+ */
4129
+ shaka.ads.Utils.AD_BUFFERING;
4130
+ /**
4131
+ * The event name for when the ad's URL was hit.
4132
+ * @const {string}
4133
+ */
4134
+ shaka.ads.Utils.AD_IMPRESSION;
4135
+ /**
4136
+ * The event name for when the ad's duration changed.
4137
+ * @const {string}
4138
+ */
4139
+ shaka.ads.Utils.AD_DURATION_CHANGED;
4140
+ /**
4141
+ * The event name for when the ad was closed by the user.
4142
+ * @const {string}
4143
+ */
4144
+ shaka.ads.Utils.AD_CLOSED;
4145
+ /**
4146
+ * The event name for when the ad data becomes available.
4147
+ * @const {string}
4148
+ */
4149
+ shaka.ads.Utils.AD_LOADED;
4150
+ /**
4151
+ * The event name for when all the ads were completed.
4152
+ * @const {string}
4153
+ */
4154
+ shaka.ads.Utils.ALL_ADS_COMPLETED;
4155
+ /**
4156
+ * The event name for when the ad changes from or to linear.
4157
+ * @const {string}
4158
+ */
4159
+ shaka.ads.Utils.AD_LINEAR_CHANGED;
4160
+ /**
4161
+ * The event name for when the ad's metadata becomes available.
4162
+ * @const {string}
4163
+ */
4164
+ shaka.ads.Utils.AD_METADATA;
4165
+ /**
4166
+ * The event name for when the ad display encountered a recoverable
4167
+ * error.
4168
+ * @const {string}
4169
+ */
4170
+ shaka.ads.Utils.AD_RECOVERABLE_ERROR;
4171
+ /**
4172
+ * The event name for when the ad manager dispatch errors.
4173
+ * @const {string}
4174
+ */
4175
+ shaka.ads.Utils.AD_ERROR;
4176
+ /**
4177
+ * The event name for when the client side SDK signalled its readiness
4178
+ * to play a VPAID ad or an ad rule.
4179
+ * @const {string}
4180
+ */
4181
+ shaka.ads.Utils.AD_BREAK_READY;
4182
+ /**
4183
+ * The event name for when the interaction callback for the ad was
4184
+ * triggered.
4185
+ * @const {string}
4186
+ */
4187
+ shaka.ads.Utils.AD_INTERACTION;
4188
+ /**
4189
+ * The name of the event for when an ad requires the main content to be paused.
4190
+ * Fired when the platform does not support multiple media elements.
4191
+ * @const {string}
4192
+ */
4193
+ shaka.ads.Utils.AD_CONTENT_PAUSE_REQUESTED;
4194
+ /**
4195
+ * The name of the event for when an ad requires the main content to be resumed.
4196
+ * Fired when the platform does not support multiple media elements.
4197
+ * @const {string}
4198
+ */
4199
+ shaka.ads.Utils.AD_CONTENT_RESUME_REQUESTED;
4200
+ /**
4201
+ * The name of the event for when an ad requires the video of the main content
4202
+ * to be attached.
4203
+ * @const {string}
4204
+ */
4205
+ shaka.ads.Utils.AD_CONTENT_ATTACH_REQUESTED;
4206
+ /**
4207
+ * @implements {shaka.extern.IAd}
4208
+ */
4209
+ shaka.ads.InterstitialAd = class {
4210
+ /**
4211
+ * @param {HTMLMediaElement} video
4212
+ * @param {boolean} isSkippable
4213
+ * @param {function()} onSkip
4214
+ * @param {number} sequenceLength
4215
+ * @param {number} adPosition
4216
+ */
4217
+ constructor(video, isSkippable, onSkip, sequenceLength, adPosition) {}
4218
+ /**
4219
+ * @override
4220
+ */
4221
+ getDuration() {}
4222
+ /**
4223
+ * @override
4224
+ */
4225
+ getMinSuggestedDuration() {}
4226
+ /**
4227
+ * @override
4228
+ */
4229
+ getRemainingTime() {}
4230
+ /**
4231
+ * @override
4232
+ */
4233
+ isPaused() {}
4234
+ /**
4235
+ * @override
4236
+ */
4237
+ isSkippable() {}
4238
+ /**
4239
+ * @override
4240
+ */
4241
+ getTimeUntilSkippable() {}
4242
+ /**
4243
+ * @override
4244
+ */
4245
+ canSkipNow() {}
4246
+ /**
4247
+ * @override
4248
+ */
4249
+ skip() {}
4250
+ /**
4251
+ * @override
4252
+ */
4253
+ pause() {}
4254
+ /**
4255
+ * @override
4256
+ */
4257
+ play() {}
4258
+ /**
4259
+ * @override
4260
+ */
4261
+ getVolume() {}
4262
+ /**
4263
+ * @override
4264
+ */
4265
+ setVolume(volume) {}
4266
+ /**
4267
+ * @override
4268
+ */
4269
+ isMuted() {}
4270
+ /**
4271
+ * @override
4272
+ */
4273
+ isLinear() {}
4274
+ /**
4275
+ * @override
4276
+ */
4277
+ resize(width, height) {}
4278
+ /**
4279
+ * @override
4280
+ */
4281
+ setMuted(muted) {}
4282
+ /**
4283
+ * @override
4284
+ */
4285
+ getSequenceLength() {}
4286
+ /**
4287
+ * @override
4288
+ */
4289
+ getPositionInSequence() {}
4290
+ /**
4291
+ * @override
4292
+ */
4293
+ getTitle() {}
4294
+ /**
4295
+ * @override
4296
+ */
4297
+ getDescription() {}
4298
+ /**
4299
+ * @override
4300
+ */
4301
+ getVastMediaBitrate() {}
4302
+ /**
4303
+ * @override
4304
+ */
4305
+ getVastMediaHeight() {}
4306
+ /**
4307
+ * @override
4308
+ */
4309
+ getVastMediaWidth() {}
4310
+ /**
4311
+ * @override
4312
+ */
4313
+ getAdId() {}
4314
+ /**
4315
+ * @override
4316
+ */
4317
+ getCreativeAdId() {}
4318
+ /**
4319
+ * @override
4320
+ */
4321
+ getAdvertiserName() {}
4322
+ /**
4323
+ * @override
4324
+ */
4325
+ getMediaUrl() {}
4326
+ /**
4327
+ * @override
4328
+ */
4329
+ getTimeOffset() {}
4330
+ /**
4331
+ * @override
4332
+ */
4333
+ getPodIndex() {}
4334
+ /**
4335
+ * @override
4336
+ */
4337
+ release() {}
4338
+ };
4002
4339
  /**
4003
4340
  * @implements {shaka.extern.IAd}
4004
4341
  */
@@ -4277,6 +4614,10 @@ shaka.ads.AdManager = class extends shaka.util.FakeEventTarget {
4277
4614
  * @override
4278
4615
  */
4279
4616
  configure(config) {}
4617
+ /**
4618
+ * @override
4619
+ */
4620
+ initInterstitial(adContainer, basePlayer, baseVideo) {}
4280
4621
  /**
4281
4622
  * @override
4282
4623
  */
@@ -4360,166 +4701,254 @@ shaka.ads.AdManager = class extends shaka.util.FakeEventTarget {
4360
4701
  * @override
4361
4702
  */
4362
4703
  onCueMetadataChange(value) {}
4704
+ /**
4705
+ * @override
4706
+ */
4707
+ onInterstitialMetadata(basePlayer, baseVideo, interstitial) {}
4363
4708
  };
4364
4709
  /**
4365
4710
  * The event name for when a sequence of ads has been loaded.
4711
+ * Deprecated, please use {@link shaka.ads.Utils}
4366
4712
  * @const {string}
4713
+ * @deprecated
4367
4714
  */
4368
4715
  shaka.ads.AdManager.ADS_LOADED;
4369
4716
  /**
4370
4717
  * The event name for when an ad has started playing.
4718
+ * Deprecated, please use {@link shaka.ads.Utils}
4371
4719
  * @const {string}
4720
+ * @deprecated
4372
4721
  */
4373
4722
  shaka.ads.AdManager.AD_STARTED;
4374
4723
  /**
4375
4724
  * The event name for when an ad playhead crosses first quartile.
4725
+ * Deprecated, please use {@link shaka.ads.Utils}
4376
4726
  * @const {string}
4727
+ * @deprecated
4377
4728
  */
4378
4729
  shaka.ads.AdManager.AD_FIRST_QUARTILE;
4379
4730
  /**
4380
4731
  * The event name for when an ad playhead crosses midpoint.
4732
+ * Deprecated, please use {@link shaka.ads.Utils}
4381
4733
  * @const {string}
4734
+ * @deprecated
4382
4735
  */
4383
4736
  shaka.ads.AdManager.AD_MIDPOINT;
4384
4737
  /**
4385
4738
  * The event name for when an ad playhead crosses third quartile.
4739
+ * Deprecated, please use {@link shaka.ads.Utils}
4386
4740
  * @const {string}
4741
+ * @deprecated
4387
4742
  */
4388
4743
  shaka.ads.AdManager.AD_THIRD_QUARTILE;
4389
4744
  /**
4390
4745
  * The event name for when an ad has completed playing.
4746
+ * Deprecated, please use {@link shaka.ads.Utils}
4391
4747
  * @const {string}
4748
+ * @deprecated
4392
4749
  */
4393
4750
  shaka.ads.AdManager.AD_COMPLETE;
4394
4751
  /**
4395
4752
  * The event name for when an ad has finished playing
4396
4753
  * (played all the way through, was skipped, or was unable to proceed
4397
4754
  * due to an error).
4755
+ * Deprecated, please use {@link shaka.ads.Utils}
4398
4756
  * @const {string}
4757
+ * @deprecated
4399
4758
  */
4400
4759
  shaka.ads.AdManager.AD_STOPPED;
4401
4760
  /**
4402
- * The event name for when an ad is skipped by the user..
4761
+ * The event name for when an ad is skipped by the user.
4762
+ * Deprecated, please use {@link shaka.ads.Utils}
4403
4763
  * @const {string}
4764
+ * @deprecated
4404
4765
  */
4405
4766
  shaka.ads.AdManager.AD_SKIPPED;
4406
4767
  /**
4407
4768
  * The event name for when the ad volume has changed.
4769
+ * Deprecated, please use {@link shaka.ads.Utils}
4408
4770
  * @const {string}
4771
+ * @deprecated
4409
4772
  */
4410
4773
  shaka.ads.AdManager.AD_VOLUME_CHANGED;
4411
4774
  /**
4412
4775
  * The event name for when the ad was muted.
4776
+ * Deprecated, please use {@link shaka.ads.Utils}
4413
4777
  * @const {string}
4778
+ * @deprecated
4414
4779
  */
4415
4780
  shaka.ads.AdManager.AD_MUTED;
4416
4781
  /**
4417
4782
  * The event name for when the ad was paused.
4783
+ * Deprecated, please use {@link shaka.ads.Utils}
4418
4784
  * @const {string}
4785
+ * @deprecated
4419
4786
  */
4420
4787
  shaka.ads.AdManager.AD_PAUSED;
4421
4788
  /**
4422
4789
  * The event name for when the ad was resumed after a pause.
4790
+ * Deprecated, please use {@link shaka.ads.Utils}
4423
4791
  * @const {string}
4792
+ * @deprecated
4424
4793
  */
4425
4794
  shaka.ads.AdManager.AD_RESUMED;
4426
4795
  /**
4427
4796
  * The event name for when the ad's skip status changes
4428
4797
  * (usually it becomes skippable when it wasn't before).
4798
+ * Deprecated, please use {@link shaka.ads.Utils}
4429
4799
  * @const {string}
4800
+ * @deprecated
4430
4801
  */
4431
4802
  shaka.ads.AdManager.AD_SKIP_STATE_CHANGED;
4432
4803
  /**
4433
4804
  * The event name for when the ad's cue points (start/end markers)
4434
4805
  * have changed.
4806
+ * Deprecated, please use {@link shaka.ads.Utils}
4435
4807
  * @const {string}
4808
+ * @deprecated
4436
4809
  */
4437
4810
  shaka.ads.AdManager.CUEPOINTS_CHANGED;
4438
4811
  /**
4439
4812
  * The event name for when the native IMA ad manager object has
4440
4813
  * loaded and become available.
4814
+ * Deprecated, please use {@link shaka.ads.Utils}
4441
4815
  * @const {string}
4816
+ * @deprecated
4442
4817
  */
4443
4818
  shaka.ads.AdManager.IMA_AD_MANAGER_LOADED;
4444
4819
  /**
4445
4820
  * The event name for when the native IMA stream manager object has
4446
4821
  * loaded and become available.
4822
+ * Deprecated, please use {@link shaka.ads.Utils}
4447
4823
  * @const {string}
4824
+ * @deprecated
4448
4825
  */
4449
4826
  shaka.ads.AdManager.IMA_STREAM_MANAGER_LOADED;
4450
4827
  /**
4451
4828
  * The event name for when the ad was clicked.
4829
+ * Deprecated, please use {@link shaka.ads.Utils}
4452
4830
  * @const {string}
4831
+ * @deprecated
4453
4832
  */
4454
4833
  shaka.ads.AdManager.AD_CLICKED;
4455
4834
  /**
4456
4835
  * The event name for when there is an update to the current ad's progress.
4836
+ * Deprecated, please use {@link shaka.ads.Utils}
4457
4837
  * @const {string}
4838
+ * @deprecated
4458
4839
  */
4459
4840
  shaka.ads.AdManager.AD_PROGRESS;
4460
4841
  /**
4461
4842
  * The event name for when the ad is buffering.
4843
+ * Deprecated, please use {@link shaka.ads.Utils}
4462
4844
  * @const {string}
4845
+ * @deprecated
4463
4846
  */
4464
4847
  shaka.ads.AdManager.AD_BUFFERING;
4465
4848
  /**
4466
4849
  * The event name for when the ad's URL was hit.
4850
+ * Deprecated, please use {@link shaka.ads.Utils}
4467
4851
  * @const {string}
4852
+ * @deprecated
4468
4853
  */
4469
4854
  shaka.ads.AdManager.AD_IMPRESSION;
4470
4855
  /**
4471
4856
  * The event name for when the ad's duration changed.
4857
+ * Deprecated, please use {@link shaka.ads.Utils}
4472
4858
  * @const {string}
4859
+ * @deprecated
4473
4860
  */
4474
4861
  shaka.ads.AdManager.AD_DURATION_CHANGED;
4475
4862
  /**
4476
4863
  * The event name for when the ad was closed by the user.
4864
+ * Deprecated, please use {@link shaka.ads.Utils}
4477
4865
  * @const {string}
4866
+ * @deprecated
4478
4867
  */
4479
4868
  shaka.ads.AdManager.AD_CLOSED;
4480
4869
  /**
4481
4870
  * The event name for when the ad data becomes available.
4871
+ * Deprecated, please use {@link shaka.ads.Utils}
4482
4872
  * @const {string}
4873
+ * @deprecated
4483
4874
  */
4484
4875
  shaka.ads.AdManager.AD_LOADED;
4485
4876
  /**
4486
4877
  * The event name for when all the ads were completed.
4878
+ * Deprecated, please use {@link shaka.ads.Utils}
4487
4879
  * @const {string}
4880
+ * @deprecated
4488
4881
  */
4489
4882
  shaka.ads.AdManager.ALL_ADS_COMPLETED;
4490
4883
  /**
4491
4884
  * The event name for when the ad changes from or to linear.
4885
+ * Deprecated, please use {@link shaka.ads.Utils}
4492
4886
  * @const {string}
4887
+ * @deprecated
4493
4888
  */
4494
4889
  shaka.ads.AdManager.AD_LINEAR_CHANGED;
4495
4890
  /**
4496
4891
  * The event name for when the ad's metadata becomes available.
4892
+ * Deprecated, please use {@link shaka.ads.Utils}
4497
4893
  * @const {string}
4894
+ * @deprecated
4498
4895
  */
4499
4896
  shaka.ads.AdManager.AD_METADATA;
4500
4897
  /**
4501
4898
  * The event name for when the ad display encountered a recoverable
4502
4899
  * error.
4900
+ * Deprecated, please use {@link shaka.ads.Utils}
4503
4901
  * @const {string}
4902
+ * @deprecated
4504
4903
  */
4505
4904
  shaka.ads.AdManager.AD_RECOVERABLE_ERROR;
4506
4905
  /**
4507
4906
  * The event name for when the ad manager dispatch errors.
4907
+ * Deprecated, please use {@link shaka.ads.Utils}
4508
4908
  * @const {string}
4909
+ * @deprecated
4509
4910
  */
4510
4911
  shaka.ads.AdManager.AD_ERROR;
4511
4912
  /**
4512
4913
  * The event name for when the client side SDK signalled its readiness
4513
4914
  * to play a VPAID ad or an ad rule.
4915
+ * Deprecated, please use {@link shaka.ads.Utils}
4514
4916
  * @const {string}
4917
+ * @deprecated
4515
4918
  */
4516
4919
  shaka.ads.AdManager.AD_BREAK_READY;
4517
4920
  /**
4518
4921
  * The event name for when the interaction callback for the ad was
4519
4922
  * triggered.
4923
+ * Deprecated, please use {@link shaka.ads.Utils}
4520
4924
  * @const {string}
4925
+ * @deprecated
4521
4926
  */
4522
4927
  shaka.ads.AdManager.AD_INTERACTION;
4928
+ /**
4929
+ * The name of the event for when an ad requires the main content to be paused.
4930
+ * Fired when the platform does not support multiple media elements.
4931
+ * Deprecated, please use {@link shaka.ads.Utils}
4932
+ * @const {string}
4933
+ * @deprecated
4934
+ */
4935
+ shaka.ads.AdManager.AD_CONTENT_PAUSE_REQUESTED;
4936
+ /**
4937
+ * The name of the event for when an ad requires the main content to be resumed.
4938
+ * Fired when the platform does not support multiple media elements.
4939
+ * Deprecated, please use {@link shaka.ads.Utils}
4940
+ * @const {string}
4941
+ * @deprecated
4942
+ */
4943
+ shaka.ads.AdManager.AD_CONTENT_RESUME_REQUESTED;
4944
+ /**
4945
+ * The name of the event for when an ad requires the video of the main content
4946
+ * to be attached.
4947
+ * Deprecated, please use {@link shaka.ads.Utils}
4948
+ * @const {string}
4949
+ * @deprecated
4950
+ */
4951
+ shaka.ads.AdManager.AD_CONTENT_ATTACH_REQUESTED;
4523
4952
  /**
4524
4953
  * @summary A proxy to switch between local and remote playback for Chromecast
4525
4954
  * in a way that is transparent to the app's controls.
@@ -4766,6 +5195,10 @@ shaka.dash.DashParser = class {
4766
5195
  * @override
4767
5196
  */
4768
5197
  banLocation(uri) {}
5198
+ /**
5199
+ * @override
5200
+ */
5201
+ setMediaElement(mediaElement) {}
4769
5202
  };
4770
5203
  /**
4771
5204
  */
@@ -4843,6 +5276,10 @@ shaka.hls.HlsParser = class {
4843
5276
  * @override
4844
5277
  */
4845
5278
  banLocation(uri) {}
5279
+ /**
5280
+ * @override
5281
+ */
5282
+ setMediaElement(mediaElement) {}
4846
5283
  };
4847
5284
  /**
4848
5285
  * Creates a new MSS parser.
@@ -5795,20 +6232,25 @@ shaka.ui.AdPosition = class extends shaka.ui.Element {
5795
6232
  };
5796
6233
  /**
5797
6234
  * @extends {shaka.ui.Element}
5798
- * @implements {shaka.extern.IUIPlayButton}
6235
+ * @final
5799
6236
  */
5800
- shaka.ui.PlayButton = class extends shaka.ui.Element {
6237
+ shaka.ui.ContextMenu = class extends shaka.ui.Element {
5801
6238
  /**
5802
6239
  * @param {!HTMLElement} parent
5803
6240
  * @param {!shaka.ui.Controls} controls
5804
6241
  */
5805
6242
  constructor(parent, controls) {}
6243
+ /**
6244
+ * @param {string} name
6245
+ * @param {!shaka.extern.IUIElement.Factory} factory
6246
+ */
6247
+ static registerElement(name, factory) {}
5806
6248
  };
5807
6249
  /**
5808
- * @extends {shaka.ui.PlayButton}
5809
- * @final
6250
+ * @extends {shaka.ui.Element}
6251
+ * @implements {shaka.extern.IUIPlayButton}
5810
6252
  */
5811
- shaka.ui.BigPlayButton = class extends shaka.ui.PlayButton {
6253
+ shaka.ui.PlayButton = class extends shaka.ui.Element {
5812
6254
  /**
5813
6255
  * @param {!HTMLElement} parent
5814
6256
  * @param {!shaka.ui.Controls} controls
@@ -5816,20 +6258,15 @@ shaka.ui.BigPlayButton = class extends shaka.ui.PlayButton {
5816
6258
  constructor(parent, controls) {}
5817
6259
  };
5818
6260
  /**
5819
- * @extends {shaka.ui.Element}
6261
+ * @extends {shaka.ui.PlayButton}
5820
6262
  * @final
5821
6263
  */
5822
- shaka.ui.ContextMenu = class extends shaka.ui.Element {
6264
+ shaka.ui.BigPlayButton = class extends shaka.ui.PlayButton {
5823
6265
  /**
5824
6266
  * @param {!HTMLElement} parent
5825
6267
  * @param {!shaka.ui.Controls} controls
5826
6268
  */
5827
6269
  constructor(parent, controls) {}
5828
- /**
5829
- * @param {string} name
5830
- * @param {!shaka.extern.IUIElement.Factory} factory
5831
- */
5832
- static registerElement(name, factory) {}
5833
6270
  };
5834
6271
  /**
5835
6272
  * @extends {shaka.ui.Element}
@@ -6172,6 +6609,17 @@ shaka.ui.OverflowMenu = class extends shaka.ui.Element {
6172
6609
  */
6173
6610
  static registerElement(name, factory) {}
6174
6611
  };
6612
+ /**
6613
+ * @extends {shaka.ui.Element}
6614
+ * @final
6615
+ */
6616
+ shaka.ui.AdStatisticsButton = class extends shaka.ui.Element {
6617
+ /**
6618
+ * @param {!HTMLElement} parent
6619
+ * @param {!shaka.ui.Controls} controls
6620
+ */
6621
+ constructor(parent, controls) {}
6622
+ };
6175
6623
  /**
6176
6624
  * @extends {shaka.ui.Element}
6177
6625
  * @final
@@ -6400,6 +6848,17 @@ shaka.ui.RewindButton = class extends shaka.ui.Element {
6400
6848
  */
6401
6849
  constructor(parent, controls) {}
6402
6850
  };
6851
+ /**
6852
+ * @extends {shaka.ui.Element}
6853
+ * @final
6854
+ */
6855
+ shaka.ui.SaveVideoFrameButton = class extends shaka.ui.Element {
6856
+ /**
6857
+ * @param {!HTMLElement} parent
6858
+ * @param {!shaka.ui.Controls} controls
6859
+ */
6860
+ constructor(parent, controls) {}
6861
+ };
6403
6862
  /**
6404
6863
  * @extends {shaka.ui.PlayButton}
6405
6864
  * @final