@amazon/vinyl 1.1.1 → 2.0.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 (857) hide show
  1. package/dist/index.cjs +9043 -6375
  2. package/dist/index.cjs.map +4 -4
  3. package/dist/index.js +9314 -6592
  4. package/dist/index.js.map +4 -4
  5. package/dist/test/benchmark.es5.js +298 -348
  6. package/dist/test/benchmark.js +2820 -3212
  7. package/dist/test/benchmark.js.map +4 -4
  8. package/dist/test/integ.es5.js +1621 -933
  9. package/dist/test/integ.js +49633 -36792
  10. package/dist/test/integ.js.map +4 -4
  11. package/dist/test/jasmineHtml.es5.js +8 -8
  12. package/dist/test/jasmineHtml.js +8 -4
  13. package/dist/test/jasmineHtml.js.map +3 -3
  14. package/dist/types/current/ad/AdBreakInfo.d.ts +160 -0
  15. package/dist/types/current/ad/AdBreakInfo.d.ts.map +1 -0
  16. package/dist/types/current/ad/AdController.d.ts +229 -0
  17. package/dist/types/current/ad/AdController.d.ts.map +1 -0
  18. package/dist/types/current/ad/AdController.js +19 -0
  19. package/dist/types/current/ad/AdControllerImpl.d.ts +146 -0
  20. package/dist/types/current/ad/AdControllerImpl.d.ts.map +1 -0
  21. package/dist/types/current/ad/AdControllerImpl.js +705 -0
  22. package/dist/types/current/ad/AdError.d.ts +6 -0
  23. package/dist/types/current/ad/AdError.d.ts.map +1 -0
  24. package/dist/types/current/ad/AdError.js +14 -0
  25. package/dist/types/current/ad/AdsProvider.d.ts +28 -0
  26. package/dist/types/current/ad/AdsProvider.d.ts.map +1 -0
  27. package/dist/types/current/ad/AdsProvider.js +5 -0
  28. package/dist/types/current/ad/defaultAdLoadOptionsResolver.d.ts +12 -0
  29. package/dist/types/current/ad/defaultAdLoadOptionsResolver.d.ts.map +1 -0
  30. package/dist/types/current/ad/defaultAdLoadOptionsResolver.js +26 -0
  31. package/dist/types/current/ad/discoverHlsInterstitials.d.ts +22 -0
  32. package/dist/types/current/ad/discoverHlsInterstitials.d.ts.map +1 -0
  33. package/dist/types/current/ad/discoverHlsInterstitials.js +246 -0
  34. package/dist/types/current/client/Capabilities.d.ts.map +1 -1
  35. package/dist/types/current/client/CapabilitiesImpl.d.ts.map +1 -1
  36. package/dist/types/current/drm/DrmController.d.ts +31 -6
  37. package/dist/types/current/drm/DrmController.d.ts.map +1 -1
  38. package/dist/types/current/drm/DrmControllerImpl.d.ts +15 -6
  39. package/dist/types/current/drm/DrmControllerImpl.d.ts.map +1 -1
  40. package/dist/types/current/drm/DrmControllerImpl.js +92 -21
  41. package/dist/types/current/drm/DrmKeySystemResolver.d.ts +1 -1
  42. package/dist/types/current/drm/DrmKeySystemResolver.d.ts.map +1 -1
  43. package/dist/types/current/drm/DrmKeySystemResolver.js +1 -1
  44. package/dist/types/current/drm/DrmOptions.d.ts +1 -1
  45. package/dist/types/current/drm/DrmOptions.d.ts.map +1 -1
  46. package/dist/types/current/drm/DrmOptions.js +1 -1
  47. package/dist/types/current/drm/commonEme/CommonEme.d.ts +2 -2
  48. package/dist/types/current/drm/commonEme/CommonEme.d.ts.map +1 -1
  49. package/dist/types/current/drm/commonEme/CommonEmeFactory.d.ts +1 -1
  50. package/dist/types/current/drm/commonEme/CommonEmeFactory.d.ts.map +1 -1
  51. package/dist/types/current/drm/commonEme/MsCommonEme.d.ts +1 -1
  52. package/dist/types/current/drm/commonEme/MsCommonEme.d.ts.map +1 -1
  53. package/dist/types/current/drm/commonEme/MsCommonEme.js +1 -1
  54. package/dist/types/current/drm/commonEme/StandardCommonEme.d.ts +1 -1
  55. package/dist/types/current/drm/commonEme/StandardCommonEme.d.ts.map +1 -1
  56. package/dist/types/current/drm/commonEme/WebKitCommonEme.d.ts +2 -2
  57. package/dist/types/current/drm/commonEme/WebKitCommonEme.d.ts.map +1 -1
  58. package/dist/types/current/drm/commonEme/WebKitCommonEme.js +1 -1
  59. package/dist/types/current/drm/commonEme/createDrmErrorHandler.js +1 -1
  60. package/dist/types/current/drm/licenseProvider/LicenseProvider.d.ts +1 -1
  61. package/dist/types/current/drm/licenseProvider/LicenseProvider.d.ts.map +1 -1
  62. package/dist/types/current/drm/util/unpackPlayReadyChallenge.d.ts +5 -0
  63. package/dist/types/current/drm/util/unpackPlayReadyChallenge.d.ts.map +1 -1
  64. package/dist/types/current/drm/util/unpackPlayReadyChallenge.js +5 -0
  65. package/dist/types/current/global/environment.d.ts +6 -2
  66. package/dist/types/current/global/environment.d.ts.map +1 -1
  67. package/dist/types/current/global/environment.js +4 -3
  68. package/dist/types/current/global/initializeVinylGlobal.js +1 -1
  69. package/dist/types/current/index.d.ts +151 -126
  70. package/dist/types/current/index.d.ts.map +1 -1
  71. package/dist/types/current/index.js +151 -126
  72. package/dist/types/current/patch/media/MediaElementPatchOptions.js +1 -1
  73. package/dist/types/current/patch/media/patchMediaElement.js +1 -1
  74. package/dist/types/current/patch/media/patches/createPreventStallsPatch.d.ts +1 -1
  75. package/dist/types/current/patch/media/patches/createPreventStallsPatch.d.ts.map +1 -1
  76. package/dist/types/current/patch/media/patches/createUnreliablePlaybackEventsPatch.d.ts +1 -1
  77. package/dist/types/current/patch/media/patches/createUnreliablePlaybackEventsPatch.d.ts.map +1 -1
  78. package/dist/types/current/playback/PlaybackControllerImpl.d.ts +2 -1
  79. package/dist/types/current/playback/PlaybackControllerImpl.d.ts.map +1 -1
  80. package/dist/types/current/playback/PlaybackControllerImpl.js +48 -9
  81. package/dist/types/current/playback/PlaybackSource.d.ts +1 -1
  82. package/dist/types/current/playback/ReadonlyPlaybackController.d.ts +6 -1
  83. package/dist/types/current/playback/ReadonlyPlaybackController.d.ts.map +1 -1
  84. package/dist/types/current/playback/ReadonlyPlaybackController.js +1 -0
  85. package/dist/types/current/playback/error/ReportableMediaError.js +1 -1
  86. package/dist/types/current/playback/logging/playbackStateLoggingHandler.d.ts +1 -1
  87. package/dist/types/current/playback/logging/playbackStateLoggingHandler.d.ts.map +1 -1
  88. package/dist/types/current/playback/logging/playbackStateLoggingHandler.js +1 -1
  89. package/dist/types/current/playback/nextHasMetadata.d.ts +1 -1
  90. package/dist/types/current/playback/nextHasMetadata.d.ts.map +1 -1
  91. package/dist/types/current/streaming/ContentStream.d.ts +12 -5
  92. package/dist/types/current/streaming/ContentStream.d.ts.map +1 -1
  93. package/dist/types/current/streaming/ContentStream.js +19 -2
  94. package/dist/types/current/streaming/ContentStreamingOptions.d.ts +2 -2
  95. package/dist/types/current/streaming/ContentStreamingOptions.d.ts.map +1 -1
  96. package/dist/types/current/streaming/LoadMetric.d.ts +58 -0
  97. package/dist/types/current/streaming/LoadMetric.d.ts.map +1 -0
  98. package/dist/types/current/streaming/LoadMetric.js +5 -0
  99. package/dist/types/current/streaming/ManifestController.d.ts +16 -1
  100. package/dist/types/current/streaming/ManifestController.d.ts.map +1 -1
  101. package/dist/types/current/streaming/ManifestControllerImpl.d.ts +43 -0
  102. package/dist/types/current/streaming/ManifestControllerImpl.d.ts.map +1 -0
  103. package/dist/types/current/streaming/ManifestControllerImpl.js +104 -0
  104. package/dist/types/current/streaming/MediaQualityMetadata.d.ts +18 -2
  105. package/dist/types/current/streaming/MediaQualityMetadata.d.ts.map +1 -1
  106. package/dist/types/current/streaming/MediaQualityMetadata.js +7 -1
  107. package/dist/types/current/streaming/MediaTimeline.d.ts +12 -5
  108. package/dist/types/current/streaming/MediaTimeline.d.ts.map +1 -1
  109. package/dist/types/current/streaming/SegmentController.d.ts +7 -7
  110. package/dist/types/current/streaming/SegmentController.d.ts.map +1 -1
  111. package/dist/types/current/streaming/SegmentControllerImpl.d.ts +17 -6
  112. package/dist/types/current/streaming/SegmentControllerImpl.d.ts.map +1 -1
  113. package/dist/types/current/streaming/SegmentControllerImpl.js +72 -25
  114. package/dist/types/current/streaming/SegmentReference.d.ts +1 -1
  115. package/dist/types/current/streaming/SegmentReference.d.ts.map +1 -1
  116. package/dist/types/current/streaming/StreamingEventMap.d.ts +39 -2
  117. package/dist/types/current/streaming/StreamingEventMap.d.ts.map +1 -1
  118. package/dist/types/current/streaming/StreamingEventMap.js +4 -0
  119. package/dist/types/current/streaming/abr/QualitySelector.d.ts +1 -1
  120. package/dist/types/current/streaming/abr/QualitySelector.d.ts.map +1 -1
  121. package/dist/types/current/streaming/abr/QualitySelectorImpl.d.ts +46 -3
  122. package/dist/types/current/streaming/abr/QualitySelectorImpl.d.ts.map +1 -1
  123. package/dist/types/current/streaming/abr/QualitySelectorImpl.js +46 -5
  124. package/dist/types/current/streaming/buffering/BufferingController.d.ts +40 -13
  125. package/dist/types/current/streaming/buffering/BufferingController.d.ts.map +1 -1
  126. package/dist/types/current/streaming/buffering/BufferingController.js +80 -27
  127. package/dist/types/current/streaming/buffering/MediaSourceController.d.ts +52 -21
  128. package/dist/types/current/streaming/buffering/MediaSourceController.d.ts.map +1 -1
  129. package/dist/types/current/streaming/buffering/MediaSourceController.js +126 -44
  130. package/dist/types/current/streaming/buffering/SourceBufferController.d.ts +1 -1
  131. package/dist/types/current/streaming/buffering/SourceBufferController.d.ts.map +1 -1
  132. package/dist/types/current/streaming/buffering/SourceBufferController.js +5 -2
  133. package/dist/types/current/streaming/buffering/codecDenylist.d.ts +23 -0
  134. package/dist/types/current/streaming/buffering/codecDenylist.d.ts.map +1 -0
  135. package/dist/types/current/streaming/buffering/codecDenylist.js +62 -0
  136. package/dist/types/current/streaming/createAllowedContentTypesValue.d.ts +30 -0
  137. package/dist/types/current/streaming/createAllowedContentTypesValue.d.ts.map +1 -0
  138. package/dist/types/current/streaming/createAllowedContentTypesValue.js +43 -0
  139. package/dist/types/current/streaming/createDefaultMediaTimelineTransformer.d.ts +5 -2
  140. package/dist/types/current/streaming/createDefaultMediaTimelineTransformer.d.ts.map +1 -1
  141. package/dist/types/current/streaming/createDefaultMediaTimelineTransformer.js +34 -3
  142. package/dist/types/current/streaming/mediaTimelineAccessibilityFilter.d.ts +35 -0
  143. package/dist/types/current/streaming/mediaTimelineAccessibilityFilter.d.ts.map +1 -0
  144. package/dist/types/current/streaming/mediaTimelineAccessibilityFilter.js +75 -0
  145. package/dist/types/current/streaming/mediaTimelineFilter.d.ts +3 -3
  146. package/dist/types/current/streaming/mediaTimelineFilter.d.ts.map +1 -1
  147. package/dist/types/current/streaming/mediaTimelineFilter.js +1 -1
  148. package/dist/types/current/streaming/mediaTimelineLanguageFilter.d.ts +25 -7
  149. package/dist/types/current/streaming/mediaTimelineLanguageFilter.d.ts.map +1 -1
  150. package/dist/types/current/streaming/mediaTimelineLanguageFilter.js +61 -16
  151. package/dist/types/current/streaming/util/segment.d.ts +1 -1
  152. package/dist/types/current/streaming/util/segment.d.ts.map +1 -1
  153. package/dist/types/current/text/SidecarTextTrackController.d.ts +91 -0
  154. package/dist/types/current/text/SidecarTextTrackController.d.ts.map +1 -0
  155. package/dist/types/current/text/SidecarTextTrackController.js +237 -0
  156. package/dist/types/current/text/SidecarTextTrackLoader.d.ts +60 -0
  157. package/dist/types/current/text/SidecarTextTrackLoader.d.ts.map +1 -0
  158. package/dist/types/current/text/SidecarTextTrackLoader.js +144 -0
  159. package/dist/types/current/text/TextTrack.d.ts +125 -0
  160. package/dist/types/current/text/TextTrack.d.ts.map +1 -0
  161. package/dist/types/current/text/TextTrack.js +9 -0
  162. package/dist/types/current/text/VttCueStyle.d.ts +41 -0
  163. package/dist/types/current/text/VttCueStyle.d.ts.map +1 -0
  164. package/dist/types/current/text/VttCueStyle.js +45 -0
  165. package/dist/types/current/text/discoverDashTextTracks.d.ts +24 -0
  166. package/dist/types/current/text/discoverDashTextTracks.d.ts.map +1 -0
  167. package/dist/types/current/text/discoverDashTextTracks.js +109 -0
  168. package/dist/types/current/text/discoverHlsTextTracks.d.ts +19 -0
  169. package/dist/types/current/text/discoverHlsTextTracks.d.ts.map +1 -0
  170. package/dist/types/current/text/discoverHlsTextTracks.js +49 -0
  171. package/dist/types/current/text/parseWebVtt.d.ts +46 -0
  172. package/dist/types/current/text/parseWebVtt.d.ts.map +1 -0
  173. package/dist/types/current/text/parseWebVtt.js +120 -0
  174. package/dist/types/current/text/pickPreferredTextTrack.d.ts +14 -0
  175. package/dist/types/current/text/pickPreferredTextTrack.d.ts.map +1 -0
  176. package/dist/types/current/text/pickPreferredTextTrack.js +68 -0
  177. package/dist/types/current/track/AutoResetController.d.ts +37 -12
  178. package/dist/types/current/track/AutoResetController.d.ts.map +1 -1
  179. package/dist/types/current/track/AutoResetController.js +38 -28
  180. package/dist/types/current/track/SeekRange.d.ts +9 -0
  181. package/dist/types/current/track/SeekRange.d.ts.map +1 -0
  182. package/dist/types/current/track/SeekRange.js +5 -0
  183. package/dist/types/current/track/Track.d.ts +50 -7
  184. package/dist/types/current/track/Track.d.ts.map +1 -1
  185. package/dist/types/current/track/TrackBase.d.ts +30 -29
  186. package/dist/types/current/track/TrackBase.d.ts.map +1 -1
  187. package/dist/types/current/track/TrackBase.js +68 -16
  188. package/dist/types/current/track/TrackController.d.ts +102 -38
  189. package/dist/types/current/track/TrackController.d.ts.map +1 -1
  190. package/dist/types/current/track/TrackController.js +368 -115
  191. package/dist/types/current/track/TrackFactory.d.ts +24 -4
  192. package/dist/types/current/track/TrackFactory.d.ts.map +1 -1
  193. package/dist/types/current/track/TrackFactory.js +9 -3
  194. package/dist/types/current/track/createSegmentDataProvider.d.ts.map +1 -1
  195. package/dist/types/current/track/createVinylTrackFactories.d.ts +5 -5
  196. package/dist/types/current/track/createVinylTrackFactories.d.ts.map +1 -1
  197. package/dist/types/current/track/createVinylTrackFactories.js +4 -4
  198. package/dist/types/current/track/dash/DashManifestController.d.ts +1 -40
  199. package/dist/types/current/track/dash/DashManifestController.d.ts.map +1 -1
  200. package/dist/types/current/track/dash/DashManifestController.js +1 -79
  201. package/dist/types/current/track/dash/DashMediaQualityMetadataResolver.d.ts.map +1 -1
  202. package/dist/types/current/track/dash/DashMediaQualityMetadataResolver.js +14 -1
  203. package/dist/types/current/track/dash/DashTrack.d.ts +6 -7
  204. package/dist/types/current/track/dash/DashTrack.d.ts.map +1 -1
  205. package/dist/types/current/track/dash/DashTrack.js +4 -6
  206. package/dist/types/current/track/dash/buildDashMediaTimeline.d.ts +2 -2
  207. package/dist/types/current/track/dash/buildDashMediaTimeline.d.ts.map +1 -1
  208. package/dist/types/current/track/dash/buildDashMediaTimeline.js +4 -3
  209. package/dist/types/current/track/dash/createDashContentStreamFactories.d.ts.map +1 -1
  210. package/dist/types/current/track/dash/createDashContentTypesValue.d.ts +2 -2
  211. package/dist/types/current/track/dash/createDashContentTypesValue.d.ts.map +1 -1
  212. package/dist/types/current/track/dash/createDashContentTypesValue.js +2 -2
  213. package/dist/types/current/track/dash/createDashFactories.d.ts +50 -23
  214. package/dist/types/current/track/dash/createDashFactories.d.ts.map +1 -1
  215. package/dist/types/current/track/dash/createDashFactories.js +40 -12
  216. package/dist/types/current/track/dash/createDashManifestProvider.d.ts +1 -1
  217. package/dist/types/current/track/dash/createDashManifestProvider.d.ts.map +1 -1
  218. package/dist/types/current/track/dash/createDashManifestProvider.js +1 -1
  219. package/dist/types/current/track/dash/createDefaultDashManifestTransformer.d.ts +1 -1
  220. package/dist/types/current/track/dash/createDefaultDashManifestTransformer.d.ts.map +1 -1
  221. package/dist/types/current/track/dash/createDefaultDashManifestTransformer.js +1 -1
  222. package/dist/types/current/track/dash/createSegmentControllerFactory.d.ts +0 -5
  223. package/dist/types/current/track/dash/createSegmentControllerFactory.d.ts.map +1 -1
  224. package/dist/types/current/track/dash/manifestTransformUtils.d.ts +1 -1
  225. package/dist/types/current/track/dash/manifestTransformUtils.d.ts.map +1 -1
  226. package/dist/types/current/track/dash/timeline/DashRepresentationSegmentProvider.d.ts +3 -3
  227. package/dist/types/current/track/dash/timeline/DashRepresentationSegmentProvider.d.ts.map +1 -1
  228. package/dist/types/current/track/dash/timeline/DashRepresentationSegmentProvider.js +5 -4
  229. package/dist/types/current/track/dash/urlDashManifestProvider.d.ts +1 -1
  230. package/dist/types/current/track/dash/urlDashManifestProvider.d.ts.map +1 -1
  231. package/dist/types/current/track/dash/util/mimeType.d.ts.map +1 -1
  232. package/dist/types/current/track/dash/util/mimeType.js +1 -1
  233. package/dist/types/current/track/dash/util/mpd.d.ts +13 -2
  234. package/dist/types/current/track/dash/util/mpd.d.ts.map +1 -1
  235. package/dist/types/current/track/dash/util/mpd.js +29 -3
  236. package/dist/types/current/track/dash/util/uriResolution.js +1 -1
  237. package/dist/types/current/track/filters/keySystemFilter.d.ts.map +1 -1
  238. package/dist/types/current/track/filters/resourceTypeFilter.d.ts.map +1 -1
  239. package/dist/types/current/track/filters/sampleRateFilter.d.ts.map +1 -1
  240. package/dist/types/current/track/hls/HlsManifestController.d.ts +1 -25
  241. package/dist/types/current/track/hls/HlsManifestController.d.ts.map +1 -1
  242. package/dist/types/current/track/hls/HlsManifestController.js +1 -68
  243. package/dist/types/{ts3.7/track/hls/HlsManifestProvider.d.ts → current/track/hls/HlsManifestData.d.ts} +4 -6
  244. package/dist/types/current/track/hls/HlsManifestData.d.ts.map +1 -0
  245. package/dist/types/current/track/hls/HlsManifestData.js +5 -0
  246. package/dist/types/current/track/hls/HlsMediaQualityMetadataResolver.js +9 -6
  247. package/dist/types/current/track/hls/HlsTrack.d.ts +5 -6
  248. package/dist/types/current/track/hls/HlsTrack.d.ts.map +1 -1
  249. package/dist/types/current/track/hls/HlsTrack.js +3 -5
  250. package/dist/types/current/track/hls/buildHlsMediaTimeline.d.ts +10 -3
  251. package/dist/types/current/track/hls/buildHlsMediaTimeline.d.ts.map +1 -1
  252. package/dist/types/current/track/hls/buildHlsMediaTimeline.js +150 -81
  253. package/dist/types/current/track/hls/createDefaultHlsManifestTransformer.d.ts +1 -1
  254. package/dist/types/current/track/hls/createDefaultHlsManifestTransformer.d.ts.map +1 -1
  255. package/dist/types/current/track/hls/createHlsContentStreamFactories.d.ts.map +1 -1
  256. package/dist/types/current/track/hls/createHlsContentTypesValue.d.ts +1 -1
  257. package/dist/types/current/track/hls/createHlsContentTypesValue.d.ts.map +1 -1
  258. package/dist/types/current/track/hls/createHlsFactories.d.ts +40 -13
  259. package/dist/types/current/track/hls/createHlsFactories.d.ts.map +1 -1
  260. package/dist/types/current/track/hls/createHlsFactories.js +35 -6
  261. package/dist/types/current/track/hls/createHlsManifestProvider.d.ts +6 -0
  262. package/dist/types/current/track/hls/createHlsManifestProvider.d.ts.map +1 -0
  263. package/dist/types/current/track/hls/createHlsManifestProvider.js +9 -0
  264. package/dist/types/current/track/hls/createUrlHlsManifestProvider.d.ts +4 -4
  265. package/dist/types/current/track/hls/createUrlHlsManifestProvider.d.ts.map +1 -1
  266. package/dist/types/current/track/hls/createUrlHlsManifestProvider.js +22 -3
  267. package/dist/types/current/track/hls/index.d.ts +1 -1
  268. package/dist/types/current/track/hls/index.d.ts.map +1 -1
  269. package/dist/types/current/track/hls/index.js +1 -1
  270. package/dist/types/current/track/hls/util/hlsSegmentTime.d.ts +1 -1
  271. package/dist/types/current/track/hls/util/hlsSegmentTime.d.ts.map +1 -1
  272. package/dist/types/current/track/hls/util/hlsSegmentTime.js +1 -1
  273. package/dist/types/current/track/inferLoadOptionsFromUri.d.ts +15 -0
  274. package/dist/types/current/track/inferLoadOptionsFromUri.d.ts.map +1 -0
  275. package/dist/types/current/track/inferLoadOptionsFromUri.js +55 -0
  276. package/dist/types/current/track/mse/MseTrack.d.ts +67 -9
  277. package/dist/types/current/track/mse/MseTrack.d.ts.map +1 -1
  278. package/dist/types/current/track/mse/MseTrack.js +216 -51
  279. package/dist/types/current/track/mse/codec.d.ts.map +1 -1
  280. package/dist/types/current/track/source/FixedPlaybackQuality.d.ts +1 -1
  281. package/dist/types/current/track/source/FixedPlaybackQuality.d.ts.map +1 -1
  282. package/dist/types/current/track/source/SourceObjectTrack.d.ts +5 -5
  283. package/dist/types/current/track/source/SourceObjectTrack.d.ts.map +1 -1
  284. package/dist/types/current/track/source/SourceObjectTrack.js +2 -2
  285. package/dist/types/current/track/source/SourceTrack.d.ts +5 -5
  286. package/dist/types/current/track/source/SourceTrack.d.ts.map +1 -1
  287. package/dist/types/current/track/source/SourceTrack.js +3 -4
  288. package/dist/types/current/track/source/SourceTrackBase.d.ts +8 -6
  289. package/dist/types/current/track/source/SourceTrackBase.d.ts.map +1 -1
  290. package/dist/types/current/track/source/SourceTrackBase.js +27 -10
  291. package/dist/types/current/tsconfig.tsbuildinfo +1 -1
  292. package/dist/types/current/util/media/codecOverrides.d.ts +33 -0
  293. package/dist/types/current/util/media/codecOverrides.d.ts.map +1 -0
  294. package/dist/types/current/util/media/codecOverrides.js +37 -0
  295. package/dist/types/current/util/media/codecSupport.d.ts +6 -0
  296. package/dist/types/current/util/media/codecSupport.d.ts.map +1 -0
  297. package/dist/types/current/util/media/codecSupport.js +17 -0
  298. package/dist/types/current/util/media/mediaSource.d.ts +5 -0
  299. package/dist/types/current/util/media/mediaSource.d.ts.map +1 -1
  300. package/dist/types/current/util/media/mediaSource.js +6 -1
  301. package/dist/types/current/vinyl/ReadonlyPlaybackStreamingState.d.ts +9 -2
  302. package/dist/types/current/vinyl/ReadonlyPlaybackStreamingState.d.ts.map +1 -1
  303. package/dist/types/current/vinyl/VinylDeps.d.ts +6 -1
  304. package/dist/types/current/vinyl/VinylDeps.d.ts.map +1 -1
  305. package/dist/types/current/vinyl/VinylOptions.d.ts +68 -4
  306. package/dist/types/current/vinyl/VinylOptions.d.ts.map +1 -1
  307. package/dist/types/current/vinyl/VinylOptions.js +17 -2
  308. package/dist/types/current/vinyl/VinylPatchOptions.d.ts.map +1 -1
  309. package/dist/types/current/vinyl/VinylPlayer.d.ts +89 -6
  310. package/dist/types/current/vinyl/VinylPlayer.d.ts.map +1 -1
  311. package/dist/types/current/vinyl/VinylPlayer.js +234 -39
  312. package/dist/types/current/vinyl/createVinylFactories.d.ts +64 -23
  313. package/dist/types/current/vinyl/createVinylFactories.d.ts.map +1 -1
  314. package/dist/types/current/vinyl/createVinylFactories.js +6 -2
  315. package/dist/types/ts3.7/ad/AdBreakInfo.d.ts +160 -0
  316. package/dist/types/ts3.7/ad/AdController.d.ts +243 -0
  317. package/dist/types/ts3.7/ad/AdControllerImpl.d.ts +146 -0
  318. package/dist/types/ts3.7/ad/AdError.d.ts +6 -0
  319. package/dist/types/ts3.7/ad/AdsProvider.d.ts +28 -0
  320. package/dist/types/ts3.7/ad/defaultAdLoadOptionsResolver.d.ts +12 -0
  321. package/dist/types/ts3.7/ad/discoverHlsInterstitials.d.ts +22 -0
  322. package/dist/types/ts3.7/drm/DrmController.d.ts +31 -6
  323. package/dist/types/ts3.7/drm/DrmControllerImpl.d.ts +15 -6
  324. package/dist/types/ts3.7/drm/DrmKeySystemResolver.d.ts +1 -1
  325. package/dist/types/ts3.7/drm/DrmOptions.d.ts +1 -1
  326. package/dist/types/ts3.7/drm/commonEme/CommonEme.d.ts +2 -2
  327. package/dist/types/ts3.7/drm/commonEme/CommonEmeFactory.d.ts +1 -1
  328. package/dist/types/ts3.7/drm/commonEme/MsCommonEme.d.ts +1 -1
  329. package/dist/types/ts3.7/drm/commonEme/StandardCommonEme.d.ts +1 -1
  330. package/dist/types/ts3.7/drm/commonEme/WebKitCommonEme.d.ts +2 -2
  331. package/dist/types/ts3.7/drm/licenseProvider/LicenseProvider.d.ts +1 -1
  332. package/dist/types/ts3.7/drm/util/unpackPlayReadyChallenge.d.ts +5 -0
  333. package/dist/types/ts3.7/global/environment.d.ts +6 -2
  334. package/dist/types/ts3.7/index.d.ts +151 -126
  335. package/dist/types/ts3.7/patch/media/patches/createPreventStallsPatch.d.ts +1 -1
  336. package/dist/types/ts3.7/patch/media/patches/createUnreliablePlaybackEventsPatch.d.ts +1 -1
  337. package/dist/types/ts3.7/playback/PlaybackControllerImpl.d.ts +2 -1
  338. package/dist/types/ts3.7/playback/PlaybackSource.d.ts +1 -1
  339. package/dist/types/ts3.7/playback/ReadonlyPlaybackController.d.ts +6 -0
  340. package/dist/types/ts3.7/playback/logging/playbackStateLoggingHandler.d.ts +1 -1
  341. package/dist/types/ts3.7/playback/nextHasMetadata.d.ts +1 -1
  342. package/dist/types/ts3.7/streaming/ContentStream.d.ts +12 -5
  343. package/dist/types/ts3.7/streaming/ContentStreamingOptions.d.ts +2 -2
  344. package/dist/types/ts3.7/streaming/LoadMetric.d.ts +58 -0
  345. package/dist/types/ts3.7/streaming/ManifestController.d.ts +16 -1
  346. package/dist/types/ts3.7/streaming/ManifestControllerImpl.d.ts +40 -0
  347. package/dist/types/ts3.7/streaming/MediaQualityMetadata.d.ts +21 -2
  348. package/dist/types/ts3.7/streaming/MediaTimeline.d.ts +12 -5
  349. package/dist/types/ts3.7/streaming/SegmentController.d.ts +7 -7
  350. package/dist/types/ts3.7/streaming/SegmentControllerImpl.d.ts +17 -6
  351. package/dist/types/ts3.7/streaming/SegmentReference.d.ts +1 -1
  352. package/dist/types/ts3.7/streaming/StreamingEventMap.d.ts +43 -2
  353. package/dist/types/ts3.7/streaming/abr/QualitySelector.d.ts +1 -1
  354. package/dist/types/ts3.7/streaming/abr/QualitySelectorImpl.d.ts +46 -3
  355. package/dist/types/ts3.7/streaming/buffering/BufferingController.d.ts +40 -13
  356. package/dist/types/ts3.7/streaming/buffering/MediaSourceController.d.ts +52 -21
  357. package/dist/types/ts3.7/streaming/buffering/SourceBufferController.d.ts +1 -1
  358. package/dist/types/ts3.7/streaming/buffering/codecDenylist.d.ts +23 -0
  359. package/dist/types/ts3.7/streaming/createAllowedContentTypesValue.d.ts +30 -0
  360. package/dist/types/ts3.7/streaming/createDefaultMediaTimelineTransformer.d.ts +5 -2
  361. package/dist/types/ts3.7/streaming/mediaTimelineAccessibilityFilter.d.ts +35 -0
  362. package/dist/types/ts3.7/streaming/mediaTimelineFilter.d.ts +3 -3
  363. package/dist/types/ts3.7/streaming/mediaTimelineLanguageFilter.d.ts +25 -7
  364. package/dist/types/ts3.7/streaming/util/segment.d.ts +1 -1
  365. package/dist/types/ts3.7/text/SidecarTextTrackController.d.ts +91 -0
  366. package/dist/types/ts3.7/text/SidecarTextTrackLoader.d.ts +60 -0
  367. package/dist/types/ts3.7/text/TextTrack.d.ts +129 -0
  368. package/dist/types/ts3.7/text/VttCueStyle.d.ts +41 -0
  369. package/dist/types/ts3.7/text/discoverDashTextTracks.d.ts +24 -0
  370. package/dist/types/ts3.7/text/discoverHlsTextTracks.d.ts +19 -0
  371. package/dist/types/ts3.7/text/parseWebVtt.d.ts +46 -0
  372. package/dist/types/ts3.7/text/pickPreferredTextTrack.d.ts +14 -0
  373. package/dist/types/ts3.7/track/AutoResetController.d.ts +37 -12
  374. package/dist/types/ts3.7/track/SeekRange.d.ts +9 -0
  375. package/dist/types/ts3.7/track/Track.d.ts +50 -7
  376. package/dist/types/ts3.7/track/TrackBase.d.ts +21 -29
  377. package/dist/types/ts3.7/track/TrackController.d.ts +104 -39
  378. package/dist/types/ts3.7/track/TrackFactory.d.ts +23 -3
  379. package/dist/types/ts3.7/track/createVinylTrackFactories.d.ts +5 -5
  380. package/dist/types/ts3.7/track/dash/DashManifestController.d.ts +1 -36
  381. package/dist/types/ts3.7/track/dash/DashTrack.d.ts +6 -7
  382. package/dist/types/ts3.7/track/dash/buildDashMediaTimeline.d.ts +2 -2
  383. package/dist/types/ts3.7/track/dash/createDashContentTypesValue.d.ts +2 -2
  384. package/dist/types/ts3.7/track/dash/createDashFactories.d.ts +50 -23
  385. package/dist/types/ts3.7/track/dash/createDashManifestProvider.d.ts +1 -1
  386. package/dist/types/ts3.7/track/dash/createDefaultDashManifestTransformer.d.ts +1 -1
  387. package/dist/types/ts3.7/track/dash/createSegmentControllerFactory.d.ts +0 -5
  388. package/dist/types/ts3.7/track/dash/manifestTransformUtils.d.ts +1 -1
  389. package/dist/types/ts3.7/track/dash/timeline/DashRepresentationSegmentProvider.d.ts +3 -3
  390. package/dist/types/ts3.7/track/dash/urlDashManifestProvider.d.ts +1 -1
  391. package/dist/types/ts3.7/track/dash/util/mpd.d.ts +13 -2
  392. package/dist/types/ts3.7/track/hls/HlsManifestController.d.ts +1 -22
  393. package/dist/types/{current/track/hls/HlsManifestProvider.d.ts → ts3.7/track/hls/HlsManifestData.d.ts} +4 -6
  394. package/dist/types/ts3.7/track/hls/HlsTrack.d.ts +5 -6
  395. package/dist/types/ts3.7/track/hls/buildHlsMediaTimeline.d.ts +10 -3
  396. package/dist/types/ts3.7/track/hls/createDefaultHlsManifestTransformer.d.ts +1 -1
  397. package/dist/types/ts3.7/track/hls/createHlsContentTypesValue.d.ts +1 -1
  398. package/dist/types/ts3.7/track/hls/createHlsFactories.d.ts +40 -13
  399. package/dist/types/ts3.7/track/hls/createHlsManifestProvider.d.ts +6 -0
  400. package/dist/types/ts3.7/track/hls/createUrlHlsManifestProvider.d.ts +4 -4
  401. package/dist/types/ts3.7/track/hls/index.d.ts +1 -1
  402. package/dist/types/ts3.7/track/hls/util/hlsSegmentTime.d.ts +1 -1
  403. package/dist/types/ts3.7/track/inferLoadOptionsFromUri.d.ts +15 -0
  404. package/dist/types/ts3.7/track/mse/MseTrack.d.ts +66 -8
  405. package/dist/types/ts3.7/track/source/FixedPlaybackQuality.d.ts +1 -1
  406. package/dist/types/ts3.7/track/source/SourceObjectTrack.d.ts +5 -5
  407. package/dist/types/ts3.7/track/source/SourceTrack.d.ts +5 -5
  408. package/dist/types/ts3.7/track/source/SourceTrackBase.d.ts +8 -6
  409. package/dist/types/ts3.7/util/media/codecOverrides.d.ts +33 -0
  410. package/dist/types/ts3.7/util/media/codecSupport.d.ts +6 -0
  411. package/dist/types/ts3.7/util/media/mediaSource.d.ts +5 -0
  412. package/dist/types/ts3.7/vinyl/ReadonlyPlaybackStreamingState.d.ts +9 -2
  413. package/dist/types/ts3.7/vinyl/VinylDeps.d.ts +6 -1
  414. package/dist/types/ts3.7/vinyl/VinylOptions.d.ts +68 -4
  415. package/dist/types/ts3.7/vinyl/VinylPlayer.d.ts +51 -6
  416. package/dist/types/ts3.7/vinyl/createVinylFactories.d.ts +64 -23
  417. package/dist/types/ts4.1/ad/AdBreakInfo.d.ts +160 -0
  418. package/dist/types/ts4.1/ad/AdController.d.ts +243 -0
  419. package/dist/types/ts4.1/ad/AdControllerImpl.d.ts +146 -0
  420. package/dist/types/ts4.1/ad/AdError.d.ts +6 -0
  421. package/dist/types/ts4.1/ad/AdsProvider.d.ts +28 -0
  422. package/dist/types/ts4.1/ad/defaultAdLoadOptionsResolver.d.ts +12 -0
  423. package/dist/types/ts4.1/ad/discoverHlsInterstitials.d.ts +22 -0
  424. package/dist/types/ts4.1/drm/DrmController.d.ts +31 -6
  425. package/dist/types/ts4.1/drm/DrmControllerImpl.d.ts +15 -6
  426. package/dist/types/ts4.1/drm/DrmKeySystemResolver.d.ts +1 -1
  427. package/dist/types/ts4.1/drm/DrmOptions.d.ts +1 -1
  428. package/dist/types/ts4.1/drm/commonEme/CommonEme.d.ts +2 -2
  429. package/dist/types/ts4.1/drm/commonEme/CommonEmeFactory.d.ts +1 -1
  430. package/dist/types/ts4.1/drm/commonEme/MsCommonEme.d.ts +1 -1
  431. package/dist/types/ts4.1/drm/commonEme/StandardCommonEme.d.ts +1 -1
  432. package/dist/types/ts4.1/drm/commonEme/WebKitCommonEme.d.ts +2 -2
  433. package/dist/types/ts4.1/drm/licenseProvider/LicenseProvider.d.ts +1 -1
  434. package/dist/types/ts4.1/drm/util/unpackPlayReadyChallenge.d.ts +5 -0
  435. package/dist/types/ts4.1/global/environment.d.ts +6 -2
  436. package/dist/types/ts4.1/index.d.ts +151 -126
  437. package/dist/types/ts4.1/patch/media/patches/createPreventStallsPatch.d.ts +1 -1
  438. package/dist/types/ts4.1/patch/media/patches/createUnreliablePlaybackEventsPatch.d.ts +1 -1
  439. package/dist/types/ts4.1/playback/PlaybackControllerImpl.d.ts +2 -1
  440. package/dist/types/ts4.1/playback/PlaybackSource.d.ts +1 -1
  441. package/dist/types/ts4.1/playback/ReadonlyPlaybackController.d.ts +6 -0
  442. package/dist/types/ts4.1/playback/logging/playbackStateLoggingHandler.d.ts +1 -1
  443. package/dist/types/ts4.1/playback/nextHasMetadata.d.ts +1 -1
  444. package/dist/types/ts4.1/streaming/ContentStream.d.ts +12 -5
  445. package/dist/types/ts4.1/streaming/ContentStreamingOptions.d.ts +2 -2
  446. package/dist/types/ts4.1/streaming/LoadMetric.d.ts +58 -0
  447. package/dist/types/ts4.1/streaming/ManifestController.d.ts +16 -1
  448. package/dist/types/ts4.1/streaming/ManifestControllerImpl.d.ts +40 -0
  449. package/dist/types/ts4.1/streaming/MediaQualityMetadata.d.ts +21 -2
  450. package/dist/types/ts4.1/streaming/MediaTimeline.d.ts +12 -5
  451. package/dist/types/ts4.1/streaming/SegmentController.d.ts +7 -7
  452. package/dist/types/ts4.1/streaming/SegmentControllerImpl.d.ts +17 -6
  453. package/dist/types/ts4.1/streaming/SegmentReference.d.ts +1 -1
  454. package/dist/types/ts4.1/streaming/StreamingEventMap.d.ts +43 -2
  455. package/dist/types/ts4.1/streaming/abr/QualitySelector.d.ts +1 -1
  456. package/dist/types/ts4.1/streaming/abr/QualitySelectorImpl.d.ts +46 -3
  457. package/dist/types/ts4.1/streaming/buffering/BufferingController.d.ts +40 -13
  458. package/dist/types/ts4.1/streaming/buffering/MediaSourceController.d.ts +52 -21
  459. package/dist/types/ts4.1/streaming/buffering/SourceBufferController.d.ts +1 -1
  460. package/dist/types/ts4.1/streaming/buffering/codecDenylist.d.ts +23 -0
  461. package/dist/types/ts4.1/streaming/createAllowedContentTypesValue.d.ts +30 -0
  462. package/dist/types/ts4.1/streaming/createDefaultMediaTimelineTransformer.d.ts +5 -2
  463. package/dist/types/ts4.1/streaming/mediaTimelineAccessibilityFilter.d.ts +35 -0
  464. package/dist/types/ts4.1/streaming/mediaTimelineFilter.d.ts +3 -3
  465. package/dist/types/ts4.1/streaming/mediaTimelineLanguageFilter.d.ts +25 -7
  466. package/dist/types/ts4.1/streaming/util/segment.d.ts +1 -1
  467. package/dist/types/ts4.1/text/SidecarTextTrackController.d.ts +92 -0
  468. package/dist/types/ts4.1/text/SidecarTextTrackLoader.d.ts +60 -0
  469. package/dist/types/ts4.1/text/TextTrack.d.ts +129 -0
  470. package/dist/types/ts4.1/text/VttCueStyle.d.ts +41 -0
  471. package/dist/types/ts4.1/text/discoverDashTextTracks.d.ts +24 -0
  472. package/dist/types/ts4.1/text/discoverHlsTextTracks.d.ts +19 -0
  473. package/dist/types/ts4.1/text/parseWebVtt.d.ts +46 -0
  474. package/dist/types/ts4.1/text/pickPreferredTextTrack.d.ts +14 -0
  475. package/dist/types/ts4.1/track/AutoResetController.d.ts +37 -12
  476. package/dist/types/ts4.1/track/SeekRange.d.ts +9 -0
  477. package/dist/types/ts4.1/track/Track.d.ts +50 -7
  478. package/dist/types/ts4.1/track/TrackBase.d.ts +21 -29
  479. package/dist/types/ts4.1/track/TrackController.d.ts +104 -39
  480. package/dist/types/ts4.1/track/TrackFactory.d.ts +23 -3
  481. package/dist/types/ts4.1/track/createVinylTrackFactories.d.ts +5 -5
  482. package/dist/types/ts4.1/track/dash/DashManifestController.d.ts +1 -36
  483. package/dist/types/ts4.1/track/dash/DashTrack.d.ts +6 -7
  484. package/dist/types/ts4.1/track/dash/buildDashMediaTimeline.d.ts +2 -2
  485. package/dist/types/ts4.1/track/dash/createDashContentTypesValue.d.ts +2 -2
  486. package/dist/types/ts4.1/track/dash/createDashFactories.d.ts +50 -23
  487. package/dist/types/ts4.1/track/dash/createDashManifestProvider.d.ts +1 -1
  488. package/dist/types/ts4.1/track/dash/createDefaultDashManifestTransformer.d.ts +1 -1
  489. package/dist/types/ts4.1/track/dash/createSegmentControllerFactory.d.ts +0 -5
  490. package/dist/types/ts4.1/track/dash/manifestTransformUtils.d.ts +1 -1
  491. package/dist/types/ts4.1/track/dash/timeline/DashRepresentationSegmentProvider.d.ts +3 -3
  492. package/dist/types/ts4.1/track/dash/urlDashManifestProvider.d.ts +1 -1
  493. package/dist/types/ts4.1/track/dash/util/mpd.d.ts +13 -2
  494. package/dist/types/ts4.1/track/hls/HlsManifestController.d.ts +1 -22
  495. package/dist/types/ts4.1/track/hls/{HlsManifestProvider.d.ts → HlsManifestData.d.ts} +4 -6
  496. package/dist/types/ts4.1/track/hls/HlsTrack.d.ts +5 -6
  497. package/dist/types/ts4.1/track/hls/buildHlsMediaTimeline.d.ts +10 -3
  498. package/dist/types/ts4.1/track/hls/createDefaultHlsManifestTransformer.d.ts +1 -1
  499. package/dist/types/ts4.1/track/hls/createHlsContentTypesValue.d.ts +1 -1
  500. package/dist/types/ts4.1/track/hls/createHlsFactories.d.ts +41 -13
  501. package/dist/types/ts4.1/track/hls/createHlsManifestProvider.d.ts +6 -0
  502. package/dist/types/ts4.1/track/hls/createUrlHlsManifestProvider.d.ts +4 -4
  503. package/dist/types/ts4.1/track/hls/index.d.ts +1 -1
  504. package/dist/types/ts4.1/track/hls/util/hlsSegmentTime.d.ts +1 -1
  505. package/dist/types/ts4.1/track/inferLoadOptionsFromUri.d.ts +15 -0
  506. package/dist/types/ts4.1/track/mse/MseTrack.d.ts +67 -9
  507. package/dist/types/ts4.1/track/source/FixedPlaybackQuality.d.ts +1 -1
  508. package/dist/types/ts4.1/track/source/SourceObjectTrack.d.ts +6 -6
  509. package/dist/types/ts4.1/track/source/SourceTrack.d.ts +6 -6
  510. package/dist/types/ts4.1/track/source/SourceTrackBase.d.ts +9 -7
  511. package/dist/types/ts4.1/util/media/codecOverrides.d.ts +33 -0
  512. package/dist/types/ts4.1/util/media/codecSupport.d.ts +6 -0
  513. package/dist/types/ts4.1/util/media/mediaSource.d.ts +5 -0
  514. package/dist/types/ts4.1/vinyl/ReadonlyPlaybackStreamingState.d.ts +9 -2
  515. package/dist/types/ts4.1/vinyl/VinylDeps.d.ts +6 -1
  516. package/dist/types/ts4.1/vinyl/VinylOptions.d.ts +68 -4
  517. package/dist/types/ts4.1/vinyl/VinylPlayer.d.ts +51 -6
  518. package/dist/types/ts4.1/vinyl/createVinylFactories.d.ts +65 -23
  519. package/dist/types/ts4.7/ad/AdBreakInfo.d.ts +160 -0
  520. package/dist/types/ts4.7/ad/AdController.d.ts +243 -0
  521. package/dist/types/ts4.7/ad/AdControllerImpl.d.ts +146 -0
  522. package/dist/types/ts4.7/ad/AdError.d.ts +6 -0
  523. package/dist/types/ts4.7/ad/AdsProvider.d.ts +28 -0
  524. package/dist/types/ts4.7/ad/defaultAdLoadOptionsResolver.d.ts +12 -0
  525. package/dist/types/ts4.7/ad/discoverHlsInterstitials.d.ts +22 -0
  526. package/dist/types/ts4.7/drm/DrmController.d.ts +31 -6
  527. package/dist/types/ts4.7/drm/DrmControllerImpl.d.ts +15 -6
  528. package/dist/types/ts4.7/drm/DrmKeySystemResolver.d.ts +1 -1
  529. package/dist/types/ts4.7/drm/DrmOptions.d.ts +1 -1
  530. package/dist/types/ts4.7/drm/commonEme/CommonEme.d.ts +2 -2
  531. package/dist/types/ts4.7/drm/commonEme/CommonEmeFactory.d.ts +1 -1
  532. package/dist/types/ts4.7/drm/commonEme/MsCommonEme.d.ts +1 -1
  533. package/dist/types/ts4.7/drm/commonEme/StandardCommonEme.d.ts +1 -1
  534. package/dist/types/ts4.7/drm/commonEme/WebKitCommonEme.d.ts +2 -2
  535. package/dist/types/ts4.7/drm/licenseProvider/LicenseProvider.d.ts +1 -1
  536. package/dist/types/ts4.7/drm/util/unpackPlayReadyChallenge.d.ts +5 -0
  537. package/dist/types/ts4.7/global/environment.d.ts +6 -2
  538. package/dist/types/ts4.7/index.d.ts +151 -126
  539. package/dist/types/ts4.7/patch/media/patches/createPreventStallsPatch.d.ts +1 -1
  540. package/dist/types/ts4.7/patch/media/patches/createUnreliablePlaybackEventsPatch.d.ts +1 -1
  541. package/dist/types/ts4.7/playback/PlaybackControllerImpl.d.ts +2 -1
  542. package/dist/types/ts4.7/playback/PlaybackSource.d.ts +1 -1
  543. package/dist/types/ts4.7/playback/ReadonlyPlaybackController.d.ts +6 -0
  544. package/dist/types/ts4.7/playback/logging/playbackStateLoggingHandler.d.ts +1 -1
  545. package/dist/types/ts4.7/playback/nextHasMetadata.d.ts +1 -1
  546. package/dist/types/ts4.7/streaming/ContentStream.d.ts +12 -5
  547. package/dist/types/ts4.7/streaming/ContentStreamingOptions.d.ts +2 -2
  548. package/dist/types/ts4.7/streaming/LoadMetric.d.ts +58 -0
  549. package/dist/types/ts4.7/streaming/ManifestController.d.ts +16 -1
  550. package/dist/types/ts4.7/streaming/ManifestControllerImpl.d.ts +43 -0
  551. package/dist/types/ts4.7/streaming/MediaQualityMetadata.d.ts +21 -2
  552. package/dist/types/ts4.7/streaming/MediaTimeline.d.ts +12 -5
  553. package/dist/types/ts4.7/streaming/SegmentController.d.ts +7 -7
  554. package/dist/types/ts4.7/streaming/SegmentControllerImpl.d.ts +17 -6
  555. package/dist/types/ts4.7/streaming/SegmentReference.d.ts +1 -1
  556. package/dist/types/ts4.7/streaming/StreamingEventMap.d.ts +43 -2
  557. package/dist/types/ts4.7/streaming/abr/QualitySelector.d.ts +1 -1
  558. package/dist/types/ts4.7/streaming/abr/QualitySelectorImpl.d.ts +46 -3
  559. package/dist/types/ts4.7/streaming/buffering/BufferingController.d.ts +40 -13
  560. package/dist/types/ts4.7/streaming/buffering/MediaSourceController.d.ts +52 -21
  561. package/dist/types/ts4.7/streaming/buffering/SourceBufferController.d.ts +1 -1
  562. package/dist/types/ts4.7/streaming/buffering/codecDenylist.d.ts +23 -0
  563. package/dist/types/ts4.7/streaming/createAllowedContentTypesValue.d.ts +30 -0
  564. package/dist/types/ts4.7/streaming/createDefaultMediaTimelineTransformer.d.ts +5 -2
  565. package/dist/types/ts4.7/streaming/mediaTimelineAccessibilityFilter.d.ts +35 -0
  566. package/dist/types/ts4.7/streaming/mediaTimelineFilter.d.ts +3 -3
  567. package/dist/types/ts4.7/streaming/mediaTimelineLanguageFilter.d.ts +25 -7
  568. package/dist/types/ts4.7/streaming/util/segment.d.ts +1 -1
  569. package/dist/types/ts4.7/text/SidecarTextTrackController.d.ts +91 -0
  570. package/dist/types/ts4.7/text/SidecarTextTrackLoader.d.ts +60 -0
  571. package/dist/types/ts4.7/text/TextTrack.d.ts +129 -0
  572. package/dist/types/ts4.7/text/VttCueStyle.d.ts +41 -0
  573. package/dist/types/ts4.7/text/discoverDashTextTracks.d.ts +24 -0
  574. package/dist/types/ts4.7/text/discoverHlsTextTracks.d.ts +19 -0
  575. package/dist/types/ts4.7/text/parseWebVtt.d.ts +46 -0
  576. package/dist/types/ts4.7/text/pickPreferredTextTrack.d.ts +14 -0
  577. package/dist/types/ts4.7/track/AutoResetController.d.ts +37 -12
  578. package/dist/types/ts4.7/track/SeekRange.d.ts +9 -0
  579. package/dist/types/ts4.7/track/Track.d.ts +50 -7
  580. package/dist/types/ts4.7/track/TrackBase.d.ts +30 -29
  581. package/dist/types/ts4.7/track/TrackController.d.ts +104 -39
  582. package/dist/types/ts4.7/track/TrackFactory.d.ts +24 -4
  583. package/dist/types/ts4.7/track/createVinylTrackFactories.d.ts +5 -5
  584. package/dist/types/ts4.7/track/dash/DashManifestController.d.ts +1 -40
  585. package/dist/types/ts4.7/track/dash/DashTrack.d.ts +6 -7
  586. package/dist/types/ts4.7/track/dash/buildDashMediaTimeline.d.ts +2 -2
  587. package/dist/types/ts4.7/track/dash/createDashContentTypesValue.d.ts +2 -2
  588. package/dist/types/ts4.7/track/dash/createDashFactories.d.ts +50 -23
  589. package/dist/types/ts4.7/track/dash/createDashManifestProvider.d.ts +1 -1
  590. package/dist/types/ts4.7/track/dash/createDefaultDashManifestTransformer.d.ts +1 -1
  591. package/dist/types/ts4.7/track/dash/createSegmentControllerFactory.d.ts +0 -5
  592. package/dist/types/ts4.7/track/dash/manifestTransformUtils.d.ts +1 -1
  593. package/dist/types/ts4.7/track/dash/timeline/DashRepresentationSegmentProvider.d.ts +3 -3
  594. package/dist/types/ts4.7/track/dash/urlDashManifestProvider.d.ts +1 -1
  595. package/dist/types/ts4.7/track/dash/util/mpd.d.ts +13 -2
  596. package/dist/types/ts4.7/track/hls/HlsManifestController.d.ts +1 -25
  597. package/dist/types/ts4.7/track/hls/{HlsManifestProvider.d.ts → HlsManifestData.d.ts} +4 -6
  598. package/dist/types/ts4.7/track/hls/HlsTrack.d.ts +5 -6
  599. package/dist/types/ts4.7/track/hls/buildHlsMediaTimeline.d.ts +10 -3
  600. package/dist/types/ts4.7/track/hls/createDefaultHlsManifestTransformer.d.ts +1 -1
  601. package/dist/types/ts4.7/track/hls/createHlsContentTypesValue.d.ts +1 -1
  602. package/dist/types/ts4.7/track/hls/createHlsFactories.d.ts +40 -13
  603. package/dist/types/ts4.7/track/hls/createHlsManifestProvider.d.ts +6 -0
  604. package/dist/types/ts4.7/track/hls/createUrlHlsManifestProvider.d.ts +4 -4
  605. package/dist/types/ts4.7/track/hls/index.d.ts +1 -1
  606. package/dist/types/ts4.7/track/hls/util/hlsSegmentTime.d.ts +1 -1
  607. package/dist/types/ts4.7/track/inferLoadOptionsFromUri.d.ts +15 -0
  608. package/dist/types/ts4.7/track/mse/MseTrack.d.ts +67 -9
  609. package/dist/types/ts4.7/track/source/FixedPlaybackQuality.d.ts +1 -1
  610. package/dist/types/ts4.7/track/source/SourceObjectTrack.d.ts +5 -5
  611. package/dist/types/ts4.7/track/source/SourceTrack.d.ts +5 -5
  612. package/dist/types/ts4.7/track/source/SourceTrackBase.d.ts +8 -6
  613. package/dist/types/ts4.7/util/media/codecOverrides.d.ts +33 -0
  614. package/dist/types/ts4.7/util/media/codecSupport.d.ts +6 -0
  615. package/dist/types/ts4.7/util/media/mediaSource.d.ts +5 -0
  616. package/dist/types/ts4.7/vinyl/ReadonlyPlaybackStreamingState.d.ts +9 -2
  617. package/dist/types/ts4.7/vinyl/VinylDeps.d.ts +6 -1
  618. package/dist/types/ts4.7/vinyl/VinylOptions.d.ts +68 -4
  619. package/dist/types/ts4.7/vinyl/VinylPlayer.d.ts +89 -6
  620. package/dist/types/ts4.7/vinyl/createVinylFactories.d.ts +64 -23
  621. package/dist/unit/types/current/ad/AdController.test.d.ts +2 -0
  622. package/dist/unit/types/current/ad/AdController.test.d.ts.map +1 -0
  623. package/dist/unit/types/current/ad/AdController.test.js +10 -0
  624. package/dist/unit/types/current/ad/AdControllerImpl.test.d.ts +2 -0
  625. package/dist/unit/types/current/ad/AdControllerImpl.test.d.ts.map +1 -0
  626. package/dist/unit/types/current/ad/AdControllerImpl.test.js +1456 -0
  627. package/dist/unit/types/current/ad/defaultAdLoadOptionsResolver.test.d.ts +2 -0
  628. package/dist/unit/types/current/ad/defaultAdLoadOptionsResolver.test.d.ts.map +1 -0
  629. package/dist/unit/types/current/ad/defaultAdLoadOptionsResolver.test.js +56 -0
  630. package/dist/unit/types/current/ad/discoverHlsInterstitials.test.d.ts +2 -0
  631. package/dist/unit/types/current/ad/discoverHlsInterstitials.test.d.ts.map +1 -0
  632. package/dist/unit/types/current/ad/discoverHlsInterstitials.test.js +756 -0
  633. package/dist/unit/types/current/drm/DrmControllerImpl.test.js +205 -4
  634. package/dist/unit/types/current/index.d.ts +117 -98
  635. package/dist/unit/types/current/index.d.ts.map +1 -1
  636. package/dist/unit/types/current/index.js +117 -98
  637. package/dist/unit/types/current/playback/PlaybackControllerImpl.test.js +92 -3
  638. package/dist/unit/types/current/streaming/ContentStream.test.js +11 -0
  639. package/dist/unit/types/current/streaming/ManifestControllerImpl.test.d.ts +2 -0
  640. package/dist/unit/types/current/streaming/ManifestControllerImpl.test.d.ts.map +1 -0
  641. package/dist/unit/types/current/streaming/ManifestControllerImpl.test.js +197 -0
  642. package/dist/unit/types/current/streaming/MediaTimeline.test.js +8 -1
  643. package/dist/unit/types/current/streaming/MseTrack.test.js +482 -14
  644. package/dist/unit/types/current/streaming/SegmentControllerImpl.test.js +69 -33
  645. package/dist/unit/types/current/streaming/StreamingEventMap.test.js +2 -2
  646. package/dist/unit/types/current/streaming/abr/QualitySelectorImpl.test.js +183 -0
  647. package/dist/unit/types/current/streaming/buffering/BufferingController.test.js +123 -61
  648. package/dist/unit/types/current/streaming/buffering/MediaSourceController.test.js +133 -26
  649. package/dist/unit/types/current/streaming/buffering/SourceBufferController.test.js +4 -0
  650. package/dist/unit/types/current/streaming/buffering/codecDenylist.test.d.ts +2 -0
  651. package/dist/unit/types/current/streaming/buffering/codecDenylist.test.d.ts.map +1 -0
  652. package/dist/unit/types/current/streaming/buffering/codecDenylist.test.js +56 -0
  653. package/dist/unit/types/current/streaming/createAllowedContentTypesValue.test.d.ts +2 -0
  654. package/dist/unit/types/current/streaming/createAllowedContentTypesValue.test.d.ts.map +1 -0
  655. package/dist/unit/types/current/streaming/createAllowedContentTypesValue.test.js +77 -0
  656. package/dist/unit/types/current/streaming/createDefaultMediaTimelineTransformer.test.js +150 -2
  657. package/dist/unit/types/current/streaming/mediaTimelineAccessibilityFilter.test.d.ts +2 -0
  658. package/dist/unit/types/current/streaming/mediaTimelineAccessibilityFilter.test.d.ts.map +1 -0
  659. package/dist/unit/types/current/streaming/mediaTimelineAccessibilityFilter.test.js +99 -0
  660. package/dist/unit/types/current/streaming/mediaTimelineFilter.test.js +11 -0
  661. package/dist/unit/types/current/streaming/mediaTimelineLanguageFilter.test.js +99 -3
  662. package/dist/unit/types/current/text/SidecarTextTrackController.test.d.ts +2 -0
  663. package/dist/unit/types/current/text/SidecarTextTrackController.test.d.ts.map +1 -0
  664. package/dist/unit/types/current/text/SidecarTextTrackController.test.js +587 -0
  665. package/dist/unit/types/current/text/SidecarTextTrackLoader.test.d.ts +2 -0
  666. package/dist/unit/types/current/text/SidecarTextTrackLoader.test.d.ts.map +1 -0
  667. package/dist/unit/types/current/text/SidecarTextTrackLoader.test.js +336 -0
  668. package/dist/unit/types/current/text/VttCueStyle.test.d.ts +2 -0
  669. package/dist/unit/types/current/text/VttCueStyle.test.d.ts.map +1 -0
  670. package/dist/unit/types/current/text/VttCueStyle.test.js +76 -0
  671. package/dist/unit/types/current/text/discoverDashTextTracks.test.d.ts +2 -0
  672. package/dist/unit/types/current/text/discoverDashTextTracks.test.d.ts.map +1 -0
  673. package/dist/unit/types/current/text/discoverDashTextTracks.test.js +199 -0
  674. package/dist/unit/types/current/text/discoverHlsTextTracks.test.d.ts +2 -0
  675. package/dist/unit/types/current/text/discoverHlsTextTracks.test.d.ts.map +1 -0
  676. package/dist/unit/types/current/text/discoverHlsTextTracks.test.js +177 -0
  677. package/dist/unit/types/current/text/parseWebVtt.test.d.ts +2 -0
  678. package/dist/unit/types/current/text/parseWebVtt.test.d.ts.map +1 -0
  679. package/dist/unit/types/current/text/parseWebVtt.test.js +212 -0
  680. package/dist/unit/types/current/text/pickPreferredTextTrack.test.d.ts +2 -0
  681. package/dist/unit/types/current/text/pickPreferredTextTrack.test.d.ts.map +1 -0
  682. package/dist/unit/types/current/text/pickPreferredTextTrack.test.js +67 -0
  683. package/dist/unit/types/current/track/AutoResetController.test.js +134 -22
  684. package/dist/unit/types/current/track/TrackBase.test.js +50 -5
  685. package/dist/unit/types/current/track/TrackController.test.js +712 -109
  686. package/dist/unit/types/current/track/TrackFactory.test.js +13 -25
  687. package/dist/unit/types/current/track/dash/createDashContentStreamFactories.test.js +6 -1
  688. package/dist/unit/types/current/track/dash/createDashFactories.test.js +63 -2
  689. package/dist/unit/types/current/track/dash/createSegmentControllerFactory.test.js +6 -1
  690. package/dist/unit/types/current/track/dash/util/mpd.test.js +53 -1
  691. package/dist/unit/types/current/track/hls/HlsManifestController.test.js +4 -4
  692. package/dist/unit/types/current/track/hls/HlsMediaQualityMetadataResolver.test.js +4 -2
  693. package/dist/unit/types/current/track/hls/buildHlsMediaTimeline.test.js +276 -22
  694. package/dist/unit/types/current/track/hls/createHlsContentStreamFactories.test.js +6 -1
  695. package/dist/unit/types/current/track/hls/createHlsFactories.test.js +182 -4
  696. package/dist/unit/types/current/track/hls/createUrlHlsManifestProvider.test.js +19 -0
  697. package/dist/unit/types/current/track/inferLoadOptionsFromUri.test.d.ts +2 -0
  698. package/dist/unit/types/current/track/inferLoadOptionsFromUri.test.d.ts.map +1 -0
  699. package/dist/unit/types/current/track/inferLoadOptionsFromUri.test.js +165 -0
  700. package/dist/unit/types/current/track/source/SourceTrack.test.js +5 -0
  701. package/dist/unit/types/current/track/source/SourceTrackBase.test.js +24 -3
  702. package/dist/unit/types/current/tsconfig.tsbuildinfo +1 -1
  703. package/dist/unit/types/current/util/media/codecOverrides.test.d.ts +2 -0
  704. package/dist/unit/types/current/util/media/codecOverrides.test.d.ts.map +1 -0
  705. package/dist/unit/types/current/util/media/codecOverrides.test.js +42 -0
  706. package/dist/unit/types/current/util/media/codecSupport.test.d.ts +2 -0
  707. package/dist/unit/types/current/util/media/codecSupport.test.d.ts.map +1 -0
  708. package/dist/unit/types/current/util/media/codecSupport.test.js +26 -0
  709. package/dist/unit/types/current/util/media/mediaSource.test.js +6 -0
  710. package/dist/unit/types/current/vinyl/VinylPlayer.test.js +212 -75
  711. package/dist/unit/types/current/vinyl/VinylPlayerAdBreaks.test.d.ts +2 -0
  712. package/dist/unit/types/current/vinyl/VinylPlayerAdBreaks.test.d.ts.map +1 -0
  713. package/dist/unit/types/current/vinyl/VinylPlayerAdBreaks.test.js +142 -0
  714. package/dist/unit/types/current/vinyl/VinylPlayerTextTracks.test.d.ts +2 -0
  715. package/dist/unit/types/current/vinyl/VinylPlayerTextTracks.test.d.ts.map +1 -0
  716. package/dist/unit/types/current/vinyl/VinylPlayerTextTracks.test.js +263 -0
  717. package/dist/vinylTestUtil/index.js +2375 -2208
  718. package/dist/vinylTestUtil/index.js.map +4 -4
  719. package/dist/vinylTestUtil/types/current/assets/vinylTestAssets.d.ts +14 -0
  720. package/dist/vinylTestUtil/types/current/assets/vinylTestAssets.d.ts.map +1 -1
  721. package/dist/vinylTestUtil/types/current/assets/vinylTestAssets.js +49 -30
  722. package/dist/vinylTestUtil/types/current/index.d.ts +53 -51
  723. package/dist/vinylTestUtil/types/current/index.d.ts.map +1 -1
  724. package/dist/vinylTestUtil/types/current/index.js +53 -51
  725. package/dist/vinylTestUtil/types/current/media/FrequencyAnalyzer.js +1 -1
  726. package/dist/vinylTestUtil/types/current/mediaSource/ControlledMediaSource.d.ts.map +1 -1
  727. package/dist/vinylTestUtil/types/current/mock/ad/MockAdController.d.ts +15 -0
  728. package/dist/vinylTestUtil/types/current/mock/ad/MockAdController.d.ts.map +1 -0
  729. package/dist/vinylTestUtil/types/current/mock/ad/MockAdController.js +26 -0
  730. package/dist/vinylTestUtil/types/current/mock/dash/MockDashManifestController.d.ts +8 -1
  731. package/dist/vinylTestUtil/types/current/mock/dash/MockDashManifestController.d.ts.map +1 -1
  732. package/dist/vinylTestUtil/types/current/mock/dash/MockDashManifestController.js +15 -0
  733. package/dist/vinylTestUtil/types/current/mock/dash/mockDashManifest.d.ts +24 -24
  734. package/dist/vinylTestUtil/types/current/mock/dom/ms/MockMSMediaKeySession.d.ts +2 -2
  735. package/dist/vinylTestUtil/types/current/mock/dom/webkit/MockWebKitMediaKeySession.d.ts +2 -2
  736. package/dist/vinylTestUtil/types/current/mock/drm/MockDrmController.d.ts +2 -2
  737. package/dist/vinylTestUtil/types/current/mock/drm/MockDrmController.d.ts.map +1 -1
  738. package/dist/vinylTestUtil/types/current/mock/hls/MockHlsManifestController.d.ts +7 -1
  739. package/dist/vinylTestUtil/types/current/mock/hls/MockHlsManifestController.d.ts.map +1 -1
  740. package/dist/vinylTestUtil/types/current/mock/hls/MockHlsManifestController.js +12 -0
  741. package/dist/vinylTestUtil/types/current/mock/hls/mockHlsManifest.d.ts +3 -3
  742. package/dist/vinylTestUtil/types/current/mock/hls/mockHlsManifest.d.ts.map +1 -1
  743. package/dist/vinylTestUtil/types/current/mock/hls/mockHlsManifest.js +1 -0
  744. package/dist/vinylTestUtil/types/current/mock/player/MockVinylPlayerDependencies.d.ts +14 -6
  745. package/dist/vinylTestUtil/types/current/mock/player/MockVinylPlayerDependencies.d.ts.map +1 -1
  746. package/dist/vinylTestUtil/types/current/mock/player/MockVinylPlayerDependencies.js +24 -8
  747. package/dist/vinylTestUtil/types/current/mock/streaming/MockContentStream.d.ts +2 -1
  748. package/dist/vinylTestUtil/types/current/mock/streaming/MockContentStream.d.ts.map +1 -1
  749. package/dist/vinylTestUtil/types/current/mock/streaming/MockContentStream.js +1 -0
  750. package/dist/vinylTestUtil/types/current/mock/streaming/MockSegmentController.d.ts +0 -1
  751. package/dist/vinylTestUtil/types/current/mock/streaming/MockSegmentController.d.ts.map +1 -1
  752. package/dist/vinylTestUtil/types/current/mock/streaming/MockSegmentController.js +0 -1
  753. package/dist/vinylTestUtil/types/current/mock/streaming/buffering/MockBufferingController.d.ts +1 -0
  754. package/dist/vinylTestUtil/types/current/mock/streaming/buffering/MockBufferingController.d.ts.map +1 -1
  755. package/dist/vinylTestUtil/types/current/mock/streaming/buffering/MockBufferingController.js +1 -0
  756. package/dist/vinylTestUtil/types/current/mock/streaming/buffering/MockMediaSourceController.d.ts +2 -2
  757. package/dist/vinylTestUtil/types/current/mock/streaming/buffering/MockMediaSourceController.d.ts.map +1 -1
  758. package/dist/vinylTestUtil/types/current/mock/streaming/buffering/MockMediaSourceController.js +2 -2
  759. package/dist/vinylTestUtil/types/current/mock/text/MockTextTrackController.d.ts +10 -0
  760. package/dist/vinylTestUtil/types/current/mock/text/MockTextTrackController.d.ts.map +1 -0
  761. package/dist/vinylTestUtil/types/current/mock/text/MockTextTrackController.js +14 -0
  762. package/dist/vinylTestUtil/types/current/mock/track/MockAutoResetController.d.ts +1 -0
  763. package/dist/vinylTestUtil/types/current/mock/track/MockAutoResetController.d.ts.map +1 -1
  764. package/dist/vinylTestUtil/types/current/mock/track/MockAutoResetController.js +1 -0
  765. package/dist/vinylTestUtil/types/current/mock/track/MockTrack.d.ts +13 -4
  766. package/dist/vinylTestUtil/types/current/mock/track/MockTrack.d.ts.map +1 -1
  767. package/dist/vinylTestUtil/types/current/mock/track/MockTrack.js +11 -0
  768. package/dist/vinylTestUtil/types/current/mock/track/MockTrackController.d.ts +3 -2
  769. package/dist/vinylTestUtil/types/current/mock/track/MockTrackController.d.ts.map +1 -1
  770. package/dist/vinylTestUtil/types/current/mock/track/MockTrackController.js +2 -1
  771. package/dist/vinylTestUtil/types/current/mock/track/dash/createMockDashDependencies.d.ts +11 -5
  772. package/dist/vinylTestUtil/types/current/mock/track/dash/createMockDashDependencies.d.ts.map +1 -1
  773. package/dist/vinylTestUtil/types/current/mock/track/dash/createMockDashDependencies.js +19 -8
  774. package/dist/vinylTestUtil/types/current/mock/track/hls/createMockHlsDependencies.d.ts +9 -5
  775. package/dist/vinylTestUtil/types/current/mock/track/hls/createMockHlsDependencies.d.ts.map +1 -1
  776. package/dist/vinylTestUtil/types/current/mock/track/hls/createMockHlsDependencies.js +17 -8
  777. package/dist/vinylTestUtil/types/current/player/createVinylSuite.d.ts.map +1 -1
  778. package/dist/vinylTestUtil/types/current/player/createVinylSuite.js +19 -8
  779. package/dist/vinylTestUtil/types/current/tsconfig.tsbuildinfo +1 -1
  780. package/dist/vinylTestUtil/types/current/util/playback/eventPromises.d.ts.map +1 -1
  781. package/dist/vinylTestUtil/types/current/util/playback/eventPromises.js +1 -1
  782. package/dist/vinylTestUtil/types/current/util/playback/expectTrackCanSeek.d.ts.map +1 -1
  783. package/dist/vinylTestUtil/types/current/util/playback/expectTrackCanSeek.js +6 -3
  784. package/dist/vinylTestUtil/types/current/util/playback/expectTrackPlays.js +5 -5
  785. package/dist/vinylTestUtil/types/current/util/playback/expectTrackPlaysUntil.d.ts.map +1 -1
  786. package/dist/vinylTestUtil/types/current/util/playback/expectTrackPlaysUntil.js +12 -9
  787. package/dist/vinylTestUtil/types/ts3.7/assets/vinylTestAssets.d.ts +14 -0
  788. package/dist/vinylTestUtil/types/ts3.7/index.d.ts +53 -51
  789. package/dist/vinylTestUtil/types/ts3.7/mock/ad/MockAdController.d.ts +15 -0
  790. package/dist/vinylTestUtil/types/ts3.7/mock/dash/MockDashManifestController.d.ts +8 -1
  791. package/dist/vinylTestUtil/types/ts3.7/mock/dash/mockDashManifest.d.ts +24 -24
  792. package/dist/vinylTestUtil/types/ts3.7/mock/dom/ms/MockMSMediaKeySession.d.ts +2 -2
  793. package/dist/vinylTestUtil/types/ts3.7/mock/dom/webkit/MockWebKitMediaKeySession.d.ts +2 -2
  794. package/dist/vinylTestUtil/types/ts3.7/mock/drm/MockDrmController.d.ts +2 -2
  795. package/dist/vinylTestUtil/types/ts3.7/mock/hls/MockHlsManifestController.d.ts +7 -1
  796. package/dist/vinylTestUtil/types/ts3.7/mock/hls/mockHlsManifest.d.ts +3 -3
  797. package/dist/vinylTestUtil/types/ts3.7/mock/player/MockVinylPlayerDependencies.d.ts +14 -6
  798. package/dist/vinylTestUtil/types/ts3.7/mock/streaming/MockContentStream.d.ts +2 -1
  799. package/dist/vinylTestUtil/types/ts3.7/mock/streaming/MockSegmentController.d.ts +0 -1
  800. package/dist/vinylTestUtil/types/ts3.7/mock/streaming/buffering/MockBufferingController.d.ts +1 -0
  801. package/dist/vinylTestUtil/types/ts3.7/mock/streaming/buffering/MockMediaSourceController.d.ts +2 -2
  802. package/dist/vinylTestUtil/types/ts3.7/mock/text/MockTextTrackController.d.ts +10 -0
  803. package/dist/vinylTestUtil/types/ts3.7/mock/track/MockAutoResetController.d.ts +1 -0
  804. package/dist/vinylTestUtil/types/ts3.7/mock/track/MockTrack.d.ts +13 -4
  805. package/dist/vinylTestUtil/types/ts3.7/mock/track/MockTrackController.d.ts +3 -2
  806. package/dist/vinylTestUtil/types/ts3.7/mock/track/dash/createMockDashDependencies.d.ts +11 -5
  807. package/dist/vinylTestUtil/types/ts3.7/mock/track/hls/createMockHlsDependencies.d.ts +9 -5
  808. package/dist/vinylTestUtil/types/ts4.1/assets/vinylTestAssets.d.ts +14 -0
  809. package/dist/vinylTestUtil/types/ts4.1/index.d.ts +53 -51
  810. package/dist/vinylTestUtil/types/ts4.1/mock/ad/MockAdController.d.ts +15 -0
  811. package/dist/vinylTestUtil/types/ts4.1/mock/dash/MockDashManifestController.d.ts +8 -1
  812. package/dist/vinylTestUtil/types/ts4.1/mock/dash/mockDashManifest.d.ts +24 -24
  813. package/dist/vinylTestUtil/types/ts4.1/mock/dom/ms/MockMSMediaKeySession.d.ts +2 -2
  814. package/dist/vinylTestUtil/types/ts4.1/mock/dom/webkit/MockWebKitMediaKeySession.d.ts +2 -2
  815. package/dist/vinylTestUtil/types/ts4.1/mock/drm/MockDrmController.d.ts +2 -2
  816. package/dist/vinylTestUtil/types/ts4.1/mock/hls/MockHlsManifestController.d.ts +7 -1
  817. package/dist/vinylTestUtil/types/ts4.1/mock/hls/mockHlsManifest.d.ts +3 -3
  818. package/dist/vinylTestUtil/types/ts4.1/mock/player/MockVinylPlayerDependencies.d.ts +14 -6
  819. package/dist/vinylTestUtil/types/ts4.1/mock/streaming/MockContentStream.d.ts +2 -1
  820. package/dist/vinylTestUtil/types/ts4.1/mock/streaming/MockSegmentController.d.ts +0 -1
  821. package/dist/vinylTestUtil/types/ts4.1/mock/streaming/buffering/MockBufferingController.d.ts +1 -0
  822. package/dist/vinylTestUtil/types/ts4.1/mock/streaming/buffering/MockMediaSourceController.d.ts +2 -2
  823. package/dist/vinylTestUtil/types/ts4.1/mock/text/MockTextTrackController.d.ts +10 -0
  824. package/dist/vinylTestUtil/types/ts4.1/mock/track/MockAutoResetController.d.ts +1 -0
  825. package/dist/vinylTestUtil/types/ts4.1/mock/track/MockTrack.d.ts +13 -4
  826. package/dist/vinylTestUtil/types/ts4.1/mock/track/MockTrackController.d.ts +3 -2
  827. package/dist/vinylTestUtil/types/ts4.1/mock/track/dash/createMockDashDependencies.d.ts +11 -5
  828. package/dist/vinylTestUtil/types/ts4.1/mock/track/hls/createMockHlsDependencies.d.ts +9 -5
  829. package/dist/vinylTestUtil/types/ts4.7/assets/vinylTestAssets.d.ts +14 -0
  830. package/dist/vinylTestUtil/types/ts4.7/index.d.ts +53 -51
  831. package/dist/vinylTestUtil/types/ts4.7/mock/ad/MockAdController.d.ts +15 -0
  832. package/dist/vinylTestUtil/types/ts4.7/mock/dash/MockDashManifestController.d.ts +8 -1
  833. package/dist/vinylTestUtil/types/ts4.7/mock/dash/mockDashManifest.d.ts +24 -24
  834. package/dist/vinylTestUtil/types/ts4.7/mock/dom/ms/MockMSMediaKeySession.d.ts +2 -2
  835. package/dist/vinylTestUtil/types/ts4.7/mock/dom/webkit/MockWebKitMediaKeySession.d.ts +2 -2
  836. package/dist/vinylTestUtil/types/ts4.7/mock/drm/MockDrmController.d.ts +2 -2
  837. package/dist/vinylTestUtil/types/ts4.7/mock/hls/MockHlsManifestController.d.ts +7 -1
  838. package/dist/vinylTestUtil/types/ts4.7/mock/hls/mockHlsManifest.d.ts +3 -3
  839. package/dist/vinylTestUtil/types/ts4.7/mock/player/MockVinylPlayerDependencies.d.ts +14 -6
  840. package/dist/vinylTestUtil/types/ts4.7/mock/streaming/MockContentStream.d.ts +2 -1
  841. package/dist/vinylTestUtil/types/ts4.7/mock/streaming/MockSegmentController.d.ts +0 -1
  842. package/dist/vinylTestUtil/types/ts4.7/mock/streaming/buffering/MockBufferingController.d.ts +1 -0
  843. package/dist/vinylTestUtil/types/ts4.7/mock/streaming/buffering/MockMediaSourceController.d.ts +2 -2
  844. package/dist/vinylTestUtil/types/ts4.7/mock/text/MockTextTrackController.d.ts +10 -0
  845. package/dist/vinylTestUtil/types/ts4.7/mock/track/MockAutoResetController.d.ts +1 -0
  846. package/dist/vinylTestUtil/types/ts4.7/mock/track/MockTrack.d.ts +13 -4
  847. package/dist/vinylTestUtil/types/ts4.7/mock/track/MockTrackController.d.ts +3 -2
  848. package/dist/vinylTestUtil/types/ts4.7/mock/track/dash/createMockDashDependencies.d.ts +11 -5
  849. package/dist/vinylTestUtil/types/ts4.7/mock/track/hls/createMockHlsDependencies.d.ts +9 -5
  850. package/docs/ADS.md +264 -0
  851. package/docs/USAGE.md +175 -9
  852. package/package.json +19 -21
  853. package/dist/types/current/track/hls/HlsManifestProvider.d.ts.map +0 -1
  854. package/dist/unit/types/current/track/dash/DashManifestController.test.d.ts +0 -2
  855. package/dist/unit/types/current/track/dash/DashManifestController.test.d.ts.map +0 -1
  856. package/dist/unit/types/current/track/dash/DashManifestController.test.js +0 -186
  857. /package/dist/types/current/{track/hls/HlsManifestProvider.js → ad/AdBreakInfo.js} +0 -0
@@ -0,0 +1,705 @@
1
+ /*
2
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ import { createDisposer, createLogPrefix, EventHostImpl, getElementOrDefault, lerp, logDebug, logError, logVerbose, memoize, noop, resolveValueProvider, roundToNearest, sleep, sortedInsertionIndex, } from '@amazon/vinyl-util';
6
+ import { AdError } from './AdError';
7
+ /**
8
+ * The % playhead start tolerance for playback progress when emitting ad progress events.
9
+ */
10
+ export const AD_START_TOLERANCE = 0.05;
11
+ export const defaultAdControllerImplOptions = {
12
+ adLoadTimeout: 15,
13
+ preloadAheadTime: 10,
14
+ };
15
+ /**
16
+ * Provider-agnostic {@link AdController}. Holds the discovered ad breaks and
17
+ * derives enter/exit region events from playhead time updates.
18
+ *
19
+ * This controller is the *model* for ad playback: it knows which breaks exist,
20
+ * which break contains the playhead, and which ad within that break is current.
21
+ * It does NOT create, preload, or activate any tracks — that is the
22
+ * responsibility of the {@link TrackController}.
23
+ *
24
+ * A break is considered active while `startTime <= currentTime < endTime`,
25
+ * where `endTime` is `startTime + duration`. Breaks whose duration is unknown
26
+ * (null) or breaks which restrict `jump` will become active at
27
+ * `currentTime > startTime`
28
+ *
29
+ * This class contains no HLS- or DASH-specific logic; discovery code maps its
30
+ * protocol's signals to {@link AdBreakInfo} exposed by an
31
+ * {@link AdsProvider.getAds}, which this controller reads once the provider is
32
+ * set via {@link AdController.setAdsProvider} (and re-reads on `adsChange`).
33
+ */
34
+ export class AdControllerImpl extends EventHostImpl {
35
+ deps;
36
+ get [Symbol.toStringTag]() {
37
+ return 'AdControllerImpl';
38
+ }
39
+ options;
40
+ _trackAds = null;
41
+ adsProviderSub = null;
42
+ adsProvider = null;
43
+ // The start times of the midroll ads, used for fast midroll break find
44
+ midrollAds = [];
45
+ // Midroll and postroll breaks, sorted by start time — the breaks eligible
46
+ // for the ahead-of-time `adPreload` signal (prerolls are preloaded up front).
47
+ preloadableBreaks = [];
48
+ // Breaks for which `adPreload` has already been emitted on the current
49
+ // approach; cleared on content change and when a break is re-armed by a
50
+ // seek back, so a re-approached break preloads again.
51
+ preloadedBreakIds = new Set();
52
+ lastPlaybackTime = 0;
53
+ pendingAdBreaks = [];
54
+ // Breaks permanently suppressed for this presentation (play-once breaks and
55
+ // prerolls). Cleared only on a content change (clearCompletedAds).
56
+ completeAdBreakIds = new Set();
57
+ // Replayable (non-play-once) midroll breaks that have played and are "spent"
58
+ // until the playhead moves back before their start, at which point they are
59
+ // re-armed and replay on the next forward crossing.
60
+ spentBreakIds = new Set();
61
+ disposer = createDisposer();
62
+ adBreakState = null;
63
+ loadingNext = false;
64
+ constructor(deps, options) {
65
+ super();
66
+ this.deps = deps;
67
+ this.options = { ...defaultAdControllerImplOptions, ...options };
68
+ const { add } = this.disposer;
69
+ const { playbackController } = this.deps;
70
+ add(playbackController.on('playing', () => {
71
+ if (this.adState) {
72
+ const adState = this.adState;
73
+ if (!adState.started) {
74
+ // The ad has started playing, initialize the state.
75
+ adState.started = true;
76
+ adState.timeStart = playbackController.currentTime;
77
+ adState.playbackRateAvg =
78
+ playbackController.playbackRate;
79
+ adState.dataPoints = 1;
80
+ }
81
+ this.dispatch('adPlaying', {
82
+ adBreak: adState.parentBreak.adBreak,
83
+ ad: adState.ad,
84
+ index: adState.index,
85
+ totalAds: adState.totalAds,
86
+ });
87
+ }
88
+ }));
89
+ add(playbackController.on('seeked', (event) => {
90
+ if (this.adState) {
91
+ this.adState.timeStart = playbackController.currentTime;
92
+ return;
93
+ }
94
+ // A genuine seek back before a break re-arms it: a spent
95
+ // (replayable) break fires again on the next forward crossing,
96
+ // and its preload signal re-arms so it warms again on approach.
97
+ if (event.reason !== 'seeked')
98
+ return;
99
+ const time = playbackController.currentTime;
100
+ for (const adBreak of this.preloadableBreaks) {
101
+ if (time < adBreak.startTime) {
102
+ const key = adBreakKey(adBreak);
103
+ this.spentBreakIds.delete(key);
104
+ this.preloadedBreakIds.delete(key);
105
+ }
106
+ }
107
+ }));
108
+ add(playbackController.on('timeUpdate', this.onTimeUpdate));
109
+ add(playbackController.on('ended', () => {
110
+ if (this.adState)
111
+ this.endAd(this.adState);
112
+ }));
113
+ }
114
+ clearCompletedAds() {
115
+ this.completeAdBreakIds.clear();
116
+ this.spentBreakIds.clear();
117
+ this.preloadedBreakIds.clear();
118
+ }
119
+ isBreakSuppressed(adBreak) {
120
+ const key = adBreakKey(adBreak);
121
+ return this.completeAdBreakIds.has(key) || this.spentBreakIds.has(key);
122
+ }
123
+ /** The media-time the current ad has actually played, or 0 if not playing. */
124
+ adElapsed() {
125
+ const adState = this.adState;
126
+ return adState?.started
127
+ ? Math.max(0, this.deps.playbackController.currentTime - adState.timeStart)
128
+ : 0;
129
+ }
130
+ /**
131
+ * Computes whether the current ad may be skipped and, when not yet, how many
132
+ * seconds remain until it can. A `skip` restriction blocks it outright;
133
+ * otherwise a resolved skip window gates it by the elapsed break playout, and
134
+ * with no window the ad is freely skippable.
135
+ */
136
+ async resolveSkipState(adBreakState, breakPlayed) {
137
+ const { adBreak } = adBreakState;
138
+ if (adBreak.restrict.skip === true) {
139
+ return { canSkip: false, skipIn: null };
140
+ }
141
+ const skipControl = await resolveValueProvider(adBreak.skipControl).catch((_v) => null);
142
+ if (!skipControl) {
143
+ return { canSkip: true, skipIn: null };
144
+ }
145
+ if (breakPlayed < skipControl.offset) {
146
+ return { canSkip: false, skipIn: skipControl.offset - breakPlayed };
147
+ }
148
+ const end = skipControl.duration != null
149
+ ? skipControl.offset + skipControl.duration
150
+ : Infinity;
151
+ return { canSkip: breakPlayed < end, skipIn: null };
152
+ }
153
+ get currentTrackAds() {
154
+ return this._trackAds;
155
+ }
156
+ setTrackAds(value) {
157
+ const previous = this._trackAds;
158
+ const current = value ?? null;
159
+ this._trackAds = current;
160
+ this.midrollAds = (value?.adBreaks ?? []).filter((adBreak) => adBreak.placement === 'midroll');
161
+ // Midroll + postroll breaks are eligible for the ahead-of-time preload
162
+ // signal. adBreaks are already sorted by start time, so this stays sorted.
163
+ this.preloadableBreaks = (value?.adBreaks ?? []).filter((adBreak) => adBreak.placement !== 'preroll');
164
+ logDebug(this, 'setTrackAds', value);
165
+ this.dispatch('currentTrackAdsChange', {
166
+ previous,
167
+ current,
168
+ });
169
+ }
170
+ /**
171
+ * Returns a function that returns true if the ads provider has changed
172
+ * since the callback was created.
173
+ */
174
+ providerInterrupted() {
175
+ const provider = this.adsProvider;
176
+ return () => provider !== this.adsProvider;
177
+ }
178
+ setAdsProvider(provider) {
179
+ if (this.adsProvider === provider)
180
+ return;
181
+ this.pendingAdBreaks = [];
182
+ this.completeAdBreak(this.adBreakState, 'contentChange');
183
+ this.adsProviderSub?.();
184
+ const { add, dispose } = createDisposer();
185
+ this.adsProviderSub = dispose;
186
+ this.adsProvider = provider;
187
+ const interrupted = this.providerInterrupted();
188
+ this.clearCompletedAds();
189
+ this.setTrackAds(null);
190
+ if (!provider)
191
+ return;
192
+ const refreshAds = () => {
193
+ provider
194
+ .getAds()
195
+ .then((ads) => {
196
+ if (interrupted())
197
+ return;
198
+ this.setTrackAds(ads);
199
+ })
200
+ .catch((error) => {
201
+ // Ad discovery failed for the provider. There is no active
202
+ // break to surface an adError against, so log it rather
203
+ // than routing through failAd (which would no-op with no
204
+ // active ad and swallow the failure silently).
205
+ if (interrupted())
206
+ return;
207
+ logError(this, 'ad discovery failed', error);
208
+ });
209
+ };
210
+ add(provider.on('adsChange', refreshAds));
211
+ refreshAds();
212
+ }
213
+ async enterPreroll() {
214
+ return this.enterRoll('preroll');
215
+ }
216
+ async enterPostroll() {
217
+ return this.enterRoll('postroll');
218
+ }
219
+ async enterRoll(placement) {
220
+ if (!this.adsProvider)
221
+ return null;
222
+ logVerbose(this, `checking for ${placement} ads`);
223
+ this.lastPlaybackTime = this.deps.playbackController.currentTime;
224
+ const interrupted = this.providerInterrupted();
225
+ return this.adsProvider
226
+ .getAds()
227
+ .then((ads) => {
228
+ if (interrupted()) {
229
+ logVerbose(this, `interrupted, no pending breaks set for ${placement}`);
230
+ return null;
231
+ }
232
+ this.setPendingBreaks(ads.adBreaks.filter((adBreak) => adBreak.placement === placement));
233
+ return this.currentAdBreak;
234
+ })
235
+ .catch(() => {
236
+ return null;
237
+ });
238
+ }
239
+ // True when we have an ads provider set. Callers gate off this AND their
240
+ // own "no ad break in progress" checks (currentAdBreak / pendingAdBreaks),
241
+ // so this is only about "a provider has committed", not track activation.
242
+ get hasProvider() {
243
+ return this.adsProvider != null;
244
+ }
245
+ skipAdBreak() {
246
+ const adBreakState = this.adBreakState;
247
+ if (!adBreakState) {
248
+ logDebug(this, 'skipAdBreak, no-op');
249
+ return;
250
+ }
251
+ logDebug(this, 'skipAdBreak, active break id:', adBreakState.adBreak.id);
252
+ this.completeAdBreak(adBreakState, 'skipped');
253
+ this.nextAdOrBreak();
254
+ }
255
+ /**
256
+ * Marks an ad break as completed (or 'spent' and replayable), emits an `adBreakCompleted` event.
257
+ */
258
+ completeAdBreak(adBreakState, reason) {
259
+ if (!adBreakState || adBreakState.completedReason) {
260
+ logDebug(this, 'completeAdBreak, no-op');
261
+ return;
262
+ }
263
+ const { adBreak } = adBreakState;
264
+ adBreakState.completedReason = reason;
265
+ const key = adBreakKey(adBreak);
266
+ // A non-once midroll ad may be replayed if the region is re-entered
267
+ // due to a back-seek.
268
+ if (adBreak.once ||
269
+ adBreak.placement === 'preroll' ||
270
+ adBreak.placement === 'postroll') {
271
+ this.completeAdBreakIds.add(key);
272
+ }
273
+ else {
274
+ // Non-once midroll
275
+ this.spentBreakIds.add(key);
276
+ }
277
+ // Interstitials play on a separate track, so the content timeline never
278
+ // advances during the break: content resumes at the cue point plus any
279
+ // explicit offset (default 0). max() keeps a forward seek from being
280
+ // rewound.
281
+ const resumePosition = Math.max(this.lastPlaybackTime, adBreak.startTime + (adBreak.resumeOffset ?? 0));
282
+ this.completeAd(adBreakState.adState, reason); // does nothing if no current ad
283
+ logDebug(this, `adBreakCompleted, active break id:${adBreak.id} reason:${reason} resumePosition:${resumePosition}`);
284
+ if (adBreakState === this.adBreakState) {
285
+ this.adBreakState = null;
286
+ }
287
+ this.dispatch('adBreakCompleted', { adBreak, resumePosition, reason });
288
+ }
289
+ get currentAdBreak() {
290
+ return this.adBreakState?.adBreak ?? null;
291
+ }
292
+ /**
293
+ * Marks an ad as completed and emits an `adCompleted` event.
294
+ */
295
+ completeAd(adState, reason) {
296
+ if (!adState || adState.completedReason)
297
+ return; // no-op
298
+ logDebug(this, `adCompleted id=${adState.ad.id} reason=${reason} index=${adState.index} totalAds=${adState.totalAds}`);
299
+ // Fold this ad's actual playout into the break total before clearing it.
300
+ adState.parentBreak.playoutElapsed += this.adElapsed();
301
+ adState.completedReason = reason;
302
+ this.dispatch('adCompleted', {
303
+ adBreak: adState.parentBreak.adBreak,
304
+ ad: adState.ad,
305
+ reason,
306
+ index: adState.index,
307
+ totalAds: adState.totalAds,
308
+ });
309
+ if (adState.index >= adState.totalAds - 1) {
310
+ this.completeAdBreak(adState.parentBreak, reason);
311
+ }
312
+ }
313
+ /**
314
+ * Polls the next pending ad and activates it.
315
+ * When there are no remaining ads, activates the next ad break (if any).
316
+ */
317
+ nextAdOrBreak() {
318
+ if (this.disposed || this.loadingNext)
319
+ return;
320
+ const adBreakState = this.adBreakState;
321
+ if (!adBreakState && !this.pendingAdBreaks.length) {
322
+ logDebug(this, 'nextAdOrBreak no-op');
323
+ return;
324
+ }
325
+ logDebug(this, 'nextAdOrBreak');
326
+ this.loadingNext = true;
327
+ const nextAd = async (adBreakState) => {
328
+ logVerbose(this, 'nextAd');
329
+ try {
330
+ const ad = await adBreakState.nextAd();
331
+ // The break may have been completed or swapped out (a content
332
+ // change, skip, or playout-limit) while its ads were resolving;
333
+ // don't start an ad for an abandoned break.
334
+ if (this.disposed || adBreakState.completedReason)
335
+ return;
336
+ if (ad) {
337
+ this.startAd(ad);
338
+ }
339
+ else {
340
+ // No remaining ads in this break
341
+ logVerbose(this, 'no remaining ads');
342
+ this.completeAdBreak(adBreakState, 'ended');
343
+ await nextBreak();
344
+ }
345
+ }
346
+ catch (error) {
347
+ if (this.disposed)
348
+ return;
349
+ // The ad list failed to resolve: surface the error, complete
350
+ // this break so content can resume, then advance to any pending
351
+ // break. Re-calling nextAdOrBreak() here would no-op (loadingNext
352
+ // is still held by this in-flight call) AND would leave the break
353
+ // stuck non-null, permanently blocking midroll ingress.
354
+ this.dispatch('adError', {
355
+ adBreak: adBreakState.adBreak,
356
+ currentAd: null,
357
+ error,
358
+ });
359
+ this.completeAdBreak(adBreakState, 'error');
360
+ await nextBreak();
361
+ }
362
+ };
363
+ const nextBreak = async () => {
364
+ logVerbose(this, 'nextBreak');
365
+ if (this.pendingAdBreaks.length) {
366
+ // There are pending breaks, take the next one and start its first ad.
367
+ const adBreak = this.pendingAdBreaks.shift();
368
+ this.adBreakState = createAdBreakState(adBreak);
369
+ logDebug(this, 'adBreakEntered', adBreak);
370
+ this.dispatch('adBreakEntered', { adBreak });
371
+ await nextAd(this.adBreakState);
372
+ }
373
+ else {
374
+ logDebug(this, 'no remaining breaks');
375
+ }
376
+ };
377
+ (async () => {
378
+ if (adBreakState) {
379
+ await nextAd(adBreakState);
380
+ }
381
+ else {
382
+ await nextBreak().catch(noop);
383
+ }
384
+ })()
385
+ .catch(noop)
386
+ .finally(() => {
387
+ this.loadingNext = false;
388
+ });
389
+ }
390
+ get currentAd() {
391
+ return this.adState?.ad ?? null;
392
+ }
393
+ get adState() {
394
+ return this.adBreakState?.adState ?? null;
395
+ }
396
+ startAd(adState) {
397
+ const { ad, index, totalAds } = adState;
398
+ logDebug(this, 'adEntered', adState.ad);
399
+ this.dispatch('adEntered', {
400
+ adBreak: adState.parentBreak.adBreak,
401
+ ad,
402
+ index,
403
+ totalAds,
404
+ });
405
+ this.emitTimeUpdate(adState).catch(noop);
406
+ sleep(this.options.adLoadTimeout)
407
+ .then(() => {
408
+ if (this.disposed)
409
+ return;
410
+ if (this.adState === adState && !adState.started) {
411
+ this.failAd(new AdError(`Ad failed to start after ${this.options.adLoadTimeout} seconds`));
412
+ }
413
+ })
414
+ .catch(noop);
415
+ }
416
+ /**
417
+ * Checks if the playhead has entered a time to activate a midroll ad.
418
+ */
419
+ onTimeUpdate = () => {
420
+ const adBreak = this.currentAdBreak;
421
+ const adState = this.adState;
422
+ if (adBreak) {
423
+ // Ad progress events
424
+ if (adState && adState.completedReason == null) {
425
+ this.emitAdProgressEvents(adState).catch(noop);
426
+ this.enforcePlayoutLimits(adState);
427
+ }
428
+ return;
429
+ }
430
+ const pC = this.deps.playbackController;
431
+ if (this.hasProvider && pC.playing && !this.pendingAdBreaks.length) {
432
+ // Not an ad playing, main content.
433
+ this.lastPlaybackTime = pC.currentTime;
434
+ this.checkAdPreload(pC.currentTime);
435
+ this.checkMidrollIngress();
436
+ }
437
+ };
438
+ /**
439
+ * Emits `adPreload` once for each midroll/postroll break the playhead is
440
+ * approaching — within (the break's {@link AdBreakInfo.resolutionTimeOffset}
441
+ * or, when absent, the `preloadAheadTime` option) seconds before its start —
442
+ * so a consumer can resolve and warm the break's assets before entry.
443
+ * Suppressed (played-once/spent) breaks are skipped.
444
+ */
445
+ checkAdPreload(time) {
446
+ for (const adBreak of this.preloadableBreaks) {
447
+ const key = adBreakKey(adBreak);
448
+ if (this.preloadedBreakIds.has(key))
449
+ continue;
450
+ if (this.isBreakSuppressed(adBreak))
451
+ continue;
452
+ const offset = adBreak.resolutionTimeOffset ?? this.options.preloadAheadTime;
453
+ // Only ahead of the break; at/after its start, ingress takes over.
454
+ if (time >= adBreak.startTime - offset &&
455
+ time < adBreak.startTime) {
456
+ this.preloadedBreakIds.add(key);
457
+ logDebug(this, 'adPreload', adBreak.id);
458
+ this.dispatch('adPreload', { adBreak });
459
+ }
460
+ }
461
+ }
462
+ /**
463
+ * Main content with ad breaks is playing, check if we have entered a midroll region.
464
+ */
465
+ checkMidrollIngress() {
466
+ const time = this.deps.playbackController.currentTime;
467
+ const midrolls = this.midrollAds;
468
+ // Upper bound: the first midroll whose startTime is strictly after the
469
+ // playhead. Every candidate break is at an index before it.
470
+ const upper = sortedInsertionIndex(midrolls, time, (time, ad) => time - ad.startTime);
471
+ const newPending = [];
472
+ // Scan every break at or before the playhead, ascending (timeline
473
+ // order), so tied start times and an earlier still-open break that
474
+ // contains the playhead (e.g. after a seek into or over it) are all
475
+ // considered — not just the single nearest preceding break.
476
+ for (let i = 0; i < upper; i++) {
477
+ const midroll = midrolls[i];
478
+ if (this.isBreakSuppressed(midroll))
479
+ continue;
480
+ const duration = midroll.duration == null || midroll.restrict.jump
481
+ ? Number.MAX_VALUE
482
+ : midroll.duration;
483
+ if (time < midroll.startTime + duration) {
484
+ newPending.push(midroll);
485
+ }
486
+ }
487
+ if (newPending.length) {
488
+ logVerbose(this, 'setting midrolls');
489
+ this.setPendingBreaks(newPending);
490
+ }
491
+ }
492
+ /**
493
+ * Emits events for `adTimeUpdate`, `adFirstQuartile`, `adMidpoint`, and
494
+ * `adThirdQuartile`.
495
+ * (Does not emit `adCompleted`)
496
+ */
497
+ async emitAdProgressEvents(adState) {
498
+ const pC = this.deps.playbackController;
499
+ await this.emitTimeUpdate(adState);
500
+ if (isFinite(pC.duration) && pC.duration > 0) {
501
+ // Take a running average of the playback rate. Applications can
502
+ // use this to detect tampering when emitting metrics.
503
+ adState.dataPoints++;
504
+ adState.playbackRateAvg = lerp(adState.playbackRateAvg, pC.playbackRate, 1 / adState.dataPoints);
505
+ // If the ad's duration is set, take the shorter of the ad duration
506
+ const currProgress = pC.currentTimePercent;
507
+ const progressStart = adState.timeStart / pC.duration;
508
+ if (!adState.quartile.first &&
509
+ currProgress > 0.25 &&
510
+ progressStart < AD_START_TOLERANCE) {
511
+ this.dispatch('adFirstQuartile', createAdProgressEvent(adState));
512
+ }
513
+ if (!adState.quartile.midpoint &&
514
+ currProgress > 0.5 &&
515
+ progressStart < 0.25 + AD_START_TOLERANCE) {
516
+ this.dispatch('adMidpoint', createAdProgressEvent(adState));
517
+ }
518
+ if (!adState.quartile.third &&
519
+ currProgress > 0.75 &&
520
+ progressStart < 0.5 + AD_START_TOLERANCE) {
521
+ this.dispatch('adThirdQuartile', createAdProgressEvent(adState));
522
+ }
523
+ // adEnded is not on progress but on a call to `endAd()`.
524
+ }
525
+ }
526
+ async emitTimeUpdate(adState) {
527
+ const pC = this.deps.playbackController;
528
+ const { ad, parentBreak } = adState;
529
+ // Surface elapsed/remaining time for the ad and the break as a
530
+ // whole so applications don't derive it from the media duration.
531
+ const adPlayed = this.adElapsed();
532
+ const adBreak = parentBreak.adBreak;
533
+ const naturalAdTotal = ad.duration ?? (isFinite(pC.duration) ? pC.duration : null);
534
+ // The break's playout limit is a budget shared across all its ads, so
535
+ // the current ad can run no longer than the budget left after the ads
536
+ // that already played. Cap its reported total by that remainder —
537
+ // matching enforcePlayoutLimits, which cuts the ad (and break) off at
538
+ // exactly this point. Without the cap adTimeRemaining over-reports (the
539
+ // full asset duration) while the ad is actually stopped at the limit.
540
+ const limit = adBreak.playoutLimit;
541
+ const adTotal = limit != null
542
+ ? Math.min(naturalAdTotal ?? Infinity, Math.max(0, limit - parentBreak.playoutElapsed))
543
+ : naturalAdTotal;
544
+ const breakPlayed = parentBreak.playoutElapsed + adPlayed;
545
+ const breakTotal = limit ?? adBreak.duration;
546
+ const { canSkip, skipIn } = await this.resolveSkipState(parentBreak, breakPlayed);
547
+ this.dispatch('adTimeUpdate', {
548
+ adBreak: adState.parentBreak.adBreak,
549
+ ad,
550
+ index: adState.index,
551
+ totalAds: adState.totalAds,
552
+ adCurrentTime: adPlayed,
553
+ adTimeRemaining: adTotal != null ? Math.max(0, adTotal - adPlayed) : null,
554
+ breakCurrentTime: breakPlayed,
555
+ breakTimeRemaining: breakTotal != null
556
+ ? Math.max(0, breakTotal - breakPlayed)
557
+ : null,
558
+ canSkip,
559
+ skipIn,
560
+ });
561
+ }
562
+ /**
563
+ * Ads breaks can have a playout limit that may cut off ad playback.
564
+ * End the ad if that limit is reached.
565
+ */
566
+ enforcePlayoutLimits(adState) {
567
+ const pC = this.deps.playbackController;
568
+ const { ad, parentBreak } = adState;
569
+ // Enforce playout limits independent of a finite content duration so
570
+ // live ads with a declared playout limit are still bounded.
571
+ if (adState.started) {
572
+ const elapsed = Math.max(0, pC.currentTime - adState.timeStart);
573
+ const adBreak = parentBreak.adBreak;
574
+ const limit = adBreak.playoutLimit;
575
+ if (limit != null &&
576
+ parentBreak.playoutElapsed + elapsed >= limit) {
577
+ // The break's total playout limit is reached: end the whole
578
+ // break, dropping any ads that have not started.
579
+ parentBreak.clear();
580
+ this.endAd(adState);
581
+ }
582
+ else if (ad.duration != null && elapsed >= ad.duration) {
583
+ // This ad reached its declared duration: advance to the next.
584
+ this.endAd(adState);
585
+ }
586
+ }
587
+ }
588
+ setPendingBreaks(newPending) {
589
+ this.pendingAdBreaks = newPending.filter((adBreak) => !this.isBreakSuppressed(adBreak));
590
+ const n = this.pendingAdBreaks.length;
591
+ logDebug(this, `setPendingBreaks len=${n}, suppressed=${newPending.length - n}`);
592
+ this.nextAdOrBreak();
593
+ }
594
+ skipAd() {
595
+ this.completeAd(this.adState, 'skipped');
596
+ this.nextAdOrBreak();
597
+ }
598
+ failAd(error) {
599
+ const adState = this.adState;
600
+ if (adState) {
601
+ // Capture the failing ad before completeAd() clears it, so the
602
+ // adError event can distinguish an individual-ad failure from an
603
+ // ad-list load failure (currentAd == null).
604
+ this.completeAd(adState, 'error');
605
+ this.dispatch('adError', {
606
+ error,
607
+ adBreak: adState.parentBreak.adBreak,
608
+ currentAd: adState.ad,
609
+ });
610
+ }
611
+ this.nextAdOrBreak();
612
+ }
613
+ endAd(adState) {
614
+ this.completeAd(adState, 'ended');
615
+ this.dispatch('adEnded', createAdProgressEvent(adState));
616
+ this.nextAdOrBreak();
617
+ }
618
+ get disposed() {
619
+ return this.disposer.disposed;
620
+ }
621
+ /**
622
+ * Disposes this controller, removes all listeners.
623
+ */
624
+ dispose() {
625
+ super.dispose();
626
+ this.disposer.dispose();
627
+ // Detach any active break so currentAd/currentAdBreak read null after
628
+ // dispose, even if a break's ad list resolves late (startAd is already
629
+ // guarded by the disposed check, so no adEntered/adPlaying fires).
630
+ this.adBreakState = null;
631
+ }
632
+ }
633
+ function createAdProgressEvent(adState) {
634
+ return {
635
+ adBreak: adState.parentBreak.adBreak,
636
+ ad: adState.ad,
637
+ // Snapped to nearest 0.1 to avoid ~1.0
638
+ playbackRateAvg: roundToNearest(adState.playbackRateAvg, 0.1),
639
+ index: adState.index,
640
+ totalAds: adState.totalAds,
641
+ };
642
+ }
643
+ function createAdBreakState(adBreak) {
644
+ let _currentIndex = -1;
645
+ let _adState = null;
646
+ const logTarget = {
647
+ logPrefix: createLogPrefix('AdBreakState'),
648
+ };
649
+ const adBreakState = {
650
+ adBreak,
651
+ playoutElapsed: 0,
652
+ completedReason: null,
653
+ get adState() {
654
+ return _adState;
655
+ },
656
+ async nextAd() {
657
+ const ads = await getAds();
658
+ if (_currentIndex >= ads.length)
659
+ return null;
660
+ _adState = getElementOrDefault(ads, ++_currentIndex, null);
661
+ return _adState;
662
+ },
663
+ clear() {
664
+ _adState = null;
665
+ _currentIndex = Number.MAX_VALUE;
666
+ },
667
+ };
668
+ const getAds = memoize(() => {
669
+ logVerbose(logTarget, `requesting ads for break ${adBreak.placement} ${adBreak.id}`);
670
+ return resolveValueProvider(adBreak.ads).then((ads) => {
671
+ logVerbose(logTarget, 'ads resolved', ads);
672
+ return ads.map((adInfo, index) => {
673
+ return createAdState({
674
+ adBreakState: adBreakState,
675
+ ad: adInfo,
676
+ totalAds: ads.length,
677
+ index: index,
678
+ });
679
+ });
680
+ });
681
+ });
682
+ return adBreakState;
683
+ }
684
+ function createAdState({ adBreakState, ad, totalAds, index, }) {
685
+ return {
686
+ parentBreak: adBreakState,
687
+ ad,
688
+ index,
689
+ totalAds,
690
+ started: false,
691
+ timeStart: 0,
692
+ playbackRateAvg: 0,
693
+ dataPoints: 0,
694
+ quartile: {
695
+ first: false,
696
+ midpoint: false,
697
+ third: false,
698
+ },
699
+ completedReason: null,
700
+ };
701
+ }
702
+ /** Combines the placement and id of the break for unique reference by placement */
703
+ function adBreakKey(adBreak) {
704
+ return `${adBreak.placement}_${adBreak.id}`;
705
+ }