@amazon/vinyl 1.2.0 → 2.0.4

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 (653) hide show
  1. package/dist/index.cjs +9225 -6633
  2. package/dist/index.cjs.map +4 -4
  3. package/dist/index.js +9080 -6435
  4. package/dist/index.js.map +4 -4
  5. package/dist/test/benchmark.es5.js +266 -253
  6. package/dist/test/benchmark.js +3256 -3190
  7. package/dist/test/benchmark.js.map +4 -4
  8. package/dist/test/integ.es5.js +1404 -1093
  9. package/dist/test/integ.js +45924 -33873
  10. package/dist/test/integ.js.map +4 -4
  11. package/dist/types/current/ad/AdBreakInfo.d.ts +160 -0
  12. package/dist/types/current/ad/AdBreakInfo.d.ts.map +1 -0
  13. package/dist/types/current/ad/AdController.d.ts +229 -0
  14. package/dist/types/current/ad/AdController.d.ts.map +1 -0
  15. package/dist/types/current/ad/AdController.js +19 -0
  16. package/dist/types/current/ad/AdControllerImpl.d.ts +146 -0
  17. package/dist/types/current/ad/AdControllerImpl.d.ts.map +1 -0
  18. package/dist/types/current/ad/AdControllerImpl.js +705 -0
  19. package/dist/types/current/ad/AdError.d.ts +6 -0
  20. package/dist/types/current/ad/AdError.d.ts.map +1 -0
  21. package/dist/types/current/ad/AdError.js +14 -0
  22. package/dist/types/current/ad/AdsProvider.d.ts +28 -0
  23. package/dist/types/current/ad/AdsProvider.d.ts.map +1 -0
  24. package/dist/types/current/ad/AdsProvider.js +5 -0
  25. package/dist/types/current/ad/defaultAdLoadOptionsResolver.d.ts +12 -0
  26. package/dist/types/current/ad/defaultAdLoadOptionsResolver.d.ts.map +1 -0
  27. package/dist/types/current/ad/defaultAdLoadOptionsResolver.js +26 -0
  28. package/dist/types/current/ad/discoverHlsInterstitials.d.ts +22 -0
  29. package/dist/types/current/ad/discoverHlsInterstitials.d.ts.map +1 -0
  30. package/dist/types/current/ad/discoverHlsInterstitials.js +246 -0
  31. package/dist/types/current/drm/DrmController.d.ts +29 -4
  32. package/dist/types/current/drm/DrmController.d.ts.map +1 -1
  33. package/dist/types/current/drm/DrmControllerImpl.d.ts +13 -4
  34. package/dist/types/current/drm/DrmControllerImpl.d.ts.map +1 -1
  35. package/dist/types/current/drm/DrmControllerImpl.js +85 -14
  36. package/dist/types/current/drm/util/unpackPlayReadyChallenge.d.ts +5 -0
  37. package/dist/types/current/drm/util/unpackPlayReadyChallenge.d.ts.map +1 -1
  38. package/dist/types/current/drm/util/unpackPlayReadyChallenge.js +5 -0
  39. package/dist/types/current/index.d.ts +151 -126
  40. package/dist/types/current/index.d.ts.map +1 -1
  41. package/dist/types/current/index.js +151 -126
  42. package/dist/types/current/playback/PlaybackControllerImpl.d.ts +1 -0
  43. package/dist/types/current/playback/PlaybackControllerImpl.d.ts.map +1 -1
  44. package/dist/types/current/playback/PlaybackControllerImpl.js +44 -5
  45. package/dist/types/current/playback/PlaybackSource.d.ts +1 -1
  46. package/dist/types/current/playback/ReadonlyPlaybackController.d.ts +6 -1
  47. package/dist/types/current/playback/ReadonlyPlaybackController.d.ts.map +1 -1
  48. package/dist/types/current/playback/ReadonlyPlaybackController.js +1 -0
  49. package/dist/types/current/streaming/ContentStream.d.ts +8 -1
  50. package/dist/types/current/streaming/ContentStream.d.ts.map +1 -1
  51. package/dist/types/current/streaming/ContentStream.js +19 -2
  52. package/dist/types/current/streaming/LoadMetric.d.ts +58 -0
  53. package/dist/types/current/streaming/LoadMetric.d.ts.map +1 -0
  54. package/dist/types/current/streaming/LoadMetric.js +5 -0
  55. package/dist/types/current/streaming/ManifestController.d.ts +16 -1
  56. package/dist/types/current/streaming/ManifestController.d.ts.map +1 -1
  57. package/dist/types/current/streaming/ManifestControllerImpl.d.ts +43 -0
  58. package/dist/types/current/streaming/ManifestControllerImpl.d.ts.map +1 -0
  59. package/dist/types/current/streaming/ManifestControllerImpl.js +104 -0
  60. package/dist/types/current/streaming/MediaQualityMetadata.d.ts +16 -0
  61. package/dist/types/current/streaming/MediaQualityMetadata.d.ts.map +1 -1
  62. package/dist/types/current/streaming/MediaQualityMetadata.js +6 -0
  63. package/dist/types/current/streaming/MediaTimeline.d.ts +6 -0
  64. package/dist/types/current/streaming/MediaTimeline.d.ts.map +1 -1
  65. package/dist/types/current/streaming/SegmentController.d.ts +5 -0
  66. package/dist/types/current/streaming/SegmentController.d.ts.map +1 -1
  67. package/dist/types/current/streaming/SegmentControllerImpl.d.ts +12 -0
  68. package/dist/types/current/streaming/SegmentControllerImpl.d.ts.map +1 -1
  69. package/dist/types/current/streaming/SegmentControllerImpl.js +67 -10
  70. package/dist/types/current/streaming/StreamingEventMap.d.ts +38 -1
  71. package/dist/types/current/streaming/StreamingEventMap.d.ts.map +1 -1
  72. package/dist/types/current/streaming/StreamingEventMap.js +4 -0
  73. package/dist/types/current/streaming/abr/QualitySelectorImpl.d.ts +28 -0
  74. package/dist/types/current/streaming/abr/QualitySelectorImpl.d.ts.map +1 -1
  75. package/dist/types/current/streaming/abr/QualitySelectorImpl.js +39 -4
  76. package/dist/types/current/streaming/buffering/BufferingController.d.ts +37 -0
  77. package/dist/types/current/streaming/buffering/BufferingController.d.ts.map +1 -1
  78. package/dist/types/current/streaming/buffering/BufferingController.js +79 -3
  79. package/dist/types/current/streaming/buffering/MediaSourceController.d.ts +16 -11
  80. package/dist/types/current/streaming/buffering/MediaSourceController.d.ts.map +1 -1
  81. package/dist/types/current/streaming/buffering/MediaSourceController.js +76 -51
  82. package/dist/types/current/streaming/buffering/SourceBufferController.d.ts.map +1 -1
  83. package/dist/types/current/streaming/buffering/SourceBufferController.js +5 -2
  84. package/dist/types/current/streaming/buffering/codecDenylist.d.ts +23 -0
  85. package/dist/types/current/streaming/buffering/codecDenylist.d.ts.map +1 -0
  86. package/dist/types/current/streaming/buffering/codecDenylist.js +62 -0
  87. package/dist/types/current/streaming/createAllowedContentTypesValue.d.ts +30 -0
  88. package/dist/types/current/streaming/createAllowedContentTypesValue.d.ts.map +1 -0
  89. package/dist/types/current/streaming/createAllowedContentTypesValue.js +43 -0
  90. package/dist/types/current/streaming/createDefaultMediaTimelineTransformer.d.ts +4 -1
  91. package/dist/types/current/streaming/createDefaultMediaTimelineTransformer.d.ts.map +1 -1
  92. package/dist/types/current/streaming/createDefaultMediaTimelineTransformer.js +32 -1
  93. package/dist/types/current/streaming/mediaTimelineAccessibilityFilter.d.ts +35 -0
  94. package/dist/types/current/streaming/mediaTimelineAccessibilityFilter.d.ts.map +1 -0
  95. package/dist/types/current/streaming/mediaTimelineAccessibilityFilter.js +75 -0
  96. package/dist/types/current/streaming/mediaTimelineLanguageFilter.d.ts +24 -6
  97. package/dist/types/current/streaming/mediaTimelineLanguageFilter.d.ts.map +1 -1
  98. package/dist/types/current/streaming/mediaTimelineLanguageFilter.js +61 -16
  99. package/dist/types/current/text/SidecarTextTrackController.d.ts +91 -0
  100. package/dist/types/current/text/SidecarTextTrackController.d.ts.map +1 -0
  101. package/dist/types/current/text/SidecarTextTrackController.js +237 -0
  102. package/dist/types/current/text/SidecarTextTrackLoader.d.ts +60 -0
  103. package/dist/types/current/text/SidecarTextTrackLoader.d.ts.map +1 -0
  104. package/dist/types/current/text/SidecarTextTrackLoader.js +144 -0
  105. package/dist/types/current/text/TextTrack.d.ts +125 -0
  106. package/dist/types/current/text/TextTrack.d.ts.map +1 -0
  107. package/dist/types/current/text/TextTrack.js +9 -0
  108. package/dist/types/current/text/VttCueStyle.d.ts +41 -0
  109. package/dist/types/current/text/VttCueStyle.d.ts.map +1 -0
  110. package/dist/types/current/text/VttCueStyle.js +45 -0
  111. package/dist/types/current/text/discoverDashTextTracks.d.ts +24 -0
  112. package/dist/types/current/text/discoverDashTextTracks.d.ts.map +1 -0
  113. package/dist/types/current/text/discoverDashTextTracks.js +109 -0
  114. package/dist/types/current/text/discoverHlsTextTracks.d.ts +19 -0
  115. package/dist/types/current/text/discoverHlsTextTracks.d.ts.map +1 -0
  116. package/dist/types/current/text/discoverHlsTextTracks.js +49 -0
  117. package/dist/types/current/text/parseWebVtt.d.ts +46 -0
  118. package/dist/types/current/text/parseWebVtt.d.ts.map +1 -0
  119. package/dist/types/current/text/parseWebVtt.js +120 -0
  120. package/dist/types/current/text/pickPreferredTextTrack.d.ts +14 -0
  121. package/dist/types/current/text/pickPreferredTextTrack.d.ts.map +1 -0
  122. package/dist/types/current/text/pickPreferredTextTrack.js +68 -0
  123. package/dist/types/current/track/SeekRange.d.ts +9 -0
  124. package/dist/types/current/track/SeekRange.d.ts.map +1 -0
  125. package/dist/types/current/track/SeekRange.js +5 -0
  126. package/dist/types/current/track/Track.d.ts +50 -7
  127. package/dist/types/current/track/Track.d.ts.map +1 -1
  128. package/dist/types/current/track/TrackBase.d.ts +30 -29
  129. package/dist/types/current/track/TrackBase.d.ts.map +1 -1
  130. package/dist/types/current/track/TrackBase.js +68 -16
  131. package/dist/types/current/track/TrackController.d.ts +100 -36
  132. package/dist/types/current/track/TrackController.d.ts.map +1 -1
  133. package/dist/types/current/track/TrackController.js +368 -115
  134. package/dist/types/current/track/TrackFactory.d.ts +23 -3
  135. package/dist/types/current/track/TrackFactory.d.ts.map +1 -1
  136. package/dist/types/current/track/TrackFactory.js +9 -3
  137. package/dist/types/current/track/dash/DashManifestController.d.ts +1 -40
  138. package/dist/types/current/track/dash/DashManifestController.d.ts.map +1 -1
  139. package/dist/types/current/track/dash/DashManifestController.js +1 -79
  140. package/dist/types/current/track/dash/DashMediaQualityMetadataResolver.d.ts.map +1 -1
  141. package/dist/types/current/track/dash/DashMediaQualityMetadataResolver.js +13 -0
  142. package/dist/types/current/track/dash/DashTrack.d.ts +4 -5
  143. package/dist/types/current/track/dash/DashTrack.d.ts.map +1 -1
  144. package/dist/types/current/track/dash/DashTrack.js +3 -5
  145. package/dist/types/current/track/dash/buildDashMediaTimeline.d.ts.map +1 -1
  146. package/dist/types/current/track/dash/buildDashMediaTimeline.js +3 -2
  147. package/dist/types/current/track/dash/createDashContentTypesValue.js +2 -2
  148. package/dist/types/current/track/dash/createDashFactories.d.ts +39 -12
  149. package/dist/types/current/track/dash/createDashFactories.d.ts.map +1 -1
  150. package/dist/types/current/track/dash/createDashFactories.js +33 -5
  151. package/dist/types/current/track/dash/createSegmentControllerFactory.d.ts +0 -5
  152. package/dist/types/current/track/dash/createSegmentControllerFactory.d.ts.map +1 -1
  153. package/dist/types/current/track/dash/timeline/DashRepresentationSegmentProvider.d.ts.map +1 -1
  154. package/dist/types/current/track/dash/timeline/DashRepresentationSegmentProvider.js +2 -1
  155. package/dist/types/current/track/dash/util/mpd.d.ts +10 -0
  156. package/dist/types/current/track/dash/util/mpd.d.ts.map +1 -1
  157. package/dist/types/current/track/dash/util/mpd.js +16 -0
  158. package/dist/types/current/track/hls/HlsManifestController.d.ts +1 -25
  159. package/dist/types/current/track/hls/HlsManifestController.d.ts.map +1 -1
  160. package/dist/types/current/track/hls/HlsManifestController.js +1 -68
  161. package/dist/types/{ts3.7/track/hls/HlsManifestProvider.d.ts → current/track/hls/HlsManifestData.d.ts} +4 -6
  162. package/dist/types/current/track/hls/HlsManifestData.d.ts.map +1 -0
  163. package/dist/types/current/track/hls/HlsManifestData.js +5 -0
  164. package/dist/types/current/track/hls/HlsMediaQualityMetadataResolver.js +9 -6
  165. package/dist/types/current/track/hls/HlsTrack.d.ts +5 -6
  166. package/dist/types/current/track/hls/HlsTrack.d.ts.map +1 -1
  167. package/dist/types/current/track/hls/HlsTrack.js +3 -5
  168. package/dist/types/current/track/hls/buildHlsMediaTimeline.d.ts +8 -1
  169. package/dist/types/current/track/hls/buildHlsMediaTimeline.d.ts.map +1 -1
  170. package/dist/types/current/track/hls/buildHlsMediaTimeline.js +134 -67
  171. package/dist/types/current/track/hls/createDefaultHlsManifestTransformer.d.ts +1 -1
  172. package/dist/types/current/track/hls/createDefaultHlsManifestTransformer.d.ts.map +1 -1
  173. package/dist/types/current/track/hls/createHlsContentTypesValue.d.ts +1 -1
  174. package/dist/types/current/track/hls/createHlsContentTypesValue.d.ts.map +1 -1
  175. package/dist/types/current/track/hls/createHlsFactories.d.ts +40 -13
  176. package/dist/types/current/track/hls/createHlsFactories.d.ts.map +1 -1
  177. package/dist/types/current/track/hls/createHlsFactories.js +35 -6
  178. package/dist/types/current/track/hls/createHlsManifestProvider.d.ts +6 -0
  179. package/dist/types/current/track/hls/createHlsManifestProvider.d.ts.map +1 -0
  180. package/dist/types/current/track/hls/createHlsManifestProvider.js +9 -0
  181. package/dist/types/current/track/hls/createUrlHlsManifestProvider.d.ts +4 -4
  182. package/dist/types/current/track/hls/createUrlHlsManifestProvider.d.ts.map +1 -1
  183. package/dist/types/current/track/hls/createUrlHlsManifestProvider.js +22 -3
  184. package/dist/types/current/track/hls/index.d.ts +1 -1
  185. package/dist/types/current/track/hls/index.d.ts.map +1 -1
  186. package/dist/types/current/track/hls/index.js +1 -1
  187. package/dist/types/current/track/inferLoadOptionsFromUri.d.ts +15 -0
  188. package/dist/types/current/track/inferLoadOptionsFromUri.d.ts.map +1 -0
  189. package/dist/types/current/track/inferLoadOptionsFromUri.js +55 -0
  190. package/dist/types/current/track/mse/MseTrack.d.ts +66 -8
  191. package/dist/types/current/track/mse/MseTrack.d.ts.map +1 -1
  192. package/dist/types/current/track/mse/MseTrack.js +216 -52
  193. package/dist/types/current/track/source/SourceObjectTrack.d.ts +2 -2
  194. package/dist/types/current/track/source/SourceObjectTrack.d.ts.map +1 -1
  195. package/dist/types/current/track/source/SourceTrack.d.ts +2 -2
  196. package/dist/types/current/track/source/SourceTrack.d.ts.map +1 -1
  197. package/dist/types/current/track/source/SourceTrack.js +1 -2
  198. package/dist/types/current/track/source/SourceTrackBase.d.ts +7 -5
  199. package/dist/types/current/track/source/SourceTrackBase.d.ts.map +1 -1
  200. package/dist/types/current/track/source/SourceTrackBase.js +26 -9
  201. package/dist/types/current/tsconfig.tsbuildinfo +1 -1
  202. package/dist/types/current/util/media/codecOverrides.d.ts +33 -0
  203. package/dist/types/current/util/media/codecOverrides.d.ts.map +1 -0
  204. package/dist/types/current/util/media/codecOverrides.js +37 -0
  205. package/dist/types/current/util/media/codecSupport.d.ts +6 -0
  206. package/dist/types/current/util/media/codecSupport.d.ts.map +1 -0
  207. package/dist/types/current/util/media/codecSupport.js +17 -0
  208. package/dist/types/current/util/media/mediaSource.d.ts +5 -0
  209. package/dist/types/current/util/media/mediaSource.d.ts.map +1 -1
  210. package/dist/types/current/util/media/mediaSource.js +6 -1
  211. package/dist/types/current/vinyl/ReadonlyPlaybackStreamingState.d.ts +9 -2
  212. package/dist/types/current/vinyl/ReadonlyPlaybackStreamingState.d.ts.map +1 -1
  213. package/dist/types/current/vinyl/VinylDeps.d.ts +5 -0
  214. package/dist/types/current/vinyl/VinylDeps.d.ts.map +1 -1
  215. package/dist/types/current/vinyl/VinylOptions.d.ts +68 -4
  216. package/dist/types/current/vinyl/VinylOptions.d.ts.map +1 -1
  217. package/dist/types/current/vinyl/VinylOptions.js +17 -2
  218. package/dist/types/current/vinyl/VinylPlayer.d.ts +63 -4
  219. package/dist/types/current/vinyl/VinylPlayer.d.ts.map +1 -1
  220. package/dist/types/current/vinyl/VinylPlayer.js +216 -36
  221. package/dist/types/current/vinyl/createVinylFactories.d.ts +55 -12
  222. package/dist/types/current/vinyl/createVinylFactories.d.ts.map +1 -1
  223. package/dist/types/current/vinyl/createVinylFactories.js +4 -0
  224. package/dist/types/ts3.7/ad/AdBreakInfo.d.ts +160 -0
  225. package/dist/types/ts3.7/ad/AdController.d.ts +243 -0
  226. package/dist/types/ts3.7/ad/AdControllerImpl.d.ts +146 -0
  227. package/dist/types/ts3.7/ad/AdError.d.ts +6 -0
  228. package/dist/types/ts3.7/ad/AdsProvider.d.ts +28 -0
  229. package/dist/types/ts3.7/ad/defaultAdLoadOptionsResolver.d.ts +12 -0
  230. package/dist/types/ts3.7/ad/discoverHlsInterstitials.d.ts +22 -0
  231. package/dist/types/ts3.7/drm/DrmController.d.ts +29 -4
  232. package/dist/types/ts3.7/drm/DrmControllerImpl.d.ts +13 -4
  233. package/dist/types/ts3.7/drm/util/unpackPlayReadyChallenge.d.ts +5 -0
  234. package/dist/types/ts3.7/index.d.ts +151 -126
  235. package/dist/types/ts3.7/playback/PlaybackControllerImpl.d.ts +1 -0
  236. package/dist/types/ts3.7/playback/PlaybackSource.d.ts +1 -1
  237. package/dist/types/ts3.7/playback/ReadonlyPlaybackController.d.ts +6 -0
  238. package/dist/types/ts3.7/streaming/ContentStream.d.ts +8 -1
  239. package/dist/types/ts3.7/streaming/LoadMetric.d.ts +58 -0
  240. package/dist/types/ts3.7/streaming/ManifestController.d.ts +16 -1
  241. package/dist/types/ts3.7/streaming/ManifestControllerImpl.d.ts +40 -0
  242. package/dist/types/ts3.7/streaming/MediaQualityMetadata.d.ts +19 -0
  243. package/dist/types/ts3.7/streaming/MediaTimeline.d.ts +6 -0
  244. package/dist/types/ts3.7/streaming/SegmentController.d.ts +5 -0
  245. package/dist/types/ts3.7/streaming/SegmentControllerImpl.d.ts +12 -0
  246. package/dist/types/ts3.7/streaming/StreamingEventMap.d.ts +42 -1
  247. package/dist/types/ts3.7/streaming/abr/QualitySelectorImpl.d.ts +28 -0
  248. package/dist/types/ts3.7/streaming/buffering/BufferingController.d.ts +37 -0
  249. package/dist/types/ts3.7/streaming/buffering/MediaSourceController.d.ts +16 -11
  250. package/dist/types/ts3.7/streaming/buffering/codecDenylist.d.ts +23 -0
  251. package/dist/types/ts3.7/streaming/createAllowedContentTypesValue.d.ts +30 -0
  252. package/dist/types/ts3.7/streaming/createDefaultMediaTimelineTransformer.d.ts +4 -1
  253. package/dist/types/ts3.7/streaming/mediaTimelineAccessibilityFilter.d.ts +35 -0
  254. package/dist/types/ts3.7/streaming/mediaTimelineLanguageFilter.d.ts +24 -6
  255. package/dist/types/ts3.7/text/SidecarTextTrackController.d.ts +91 -0
  256. package/dist/types/ts3.7/text/SidecarTextTrackLoader.d.ts +60 -0
  257. package/dist/types/ts3.7/text/TextTrack.d.ts +129 -0
  258. package/dist/types/ts3.7/text/VttCueStyle.d.ts +41 -0
  259. package/dist/types/ts3.7/text/discoverDashTextTracks.d.ts +24 -0
  260. package/dist/types/ts3.7/text/discoverHlsTextTracks.d.ts +19 -0
  261. package/dist/types/ts3.7/text/parseWebVtt.d.ts +46 -0
  262. package/dist/types/ts3.7/text/pickPreferredTextTrack.d.ts +14 -0
  263. package/dist/types/ts3.7/track/SeekRange.d.ts +9 -0
  264. package/dist/types/ts3.7/track/Track.d.ts +50 -7
  265. package/dist/types/ts3.7/track/TrackBase.d.ts +21 -29
  266. package/dist/types/ts3.7/track/TrackController.d.ts +102 -37
  267. package/dist/types/ts3.7/track/TrackFactory.d.ts +22 -2
  268. package/dist/types/ts3.7/track/dash/DashManifestController.d.ts +1 -36
  269. package/dist/types/ts3.7/track/dash/DashTrack.d.ts +4 -5
  270. package/dist/types/ts3.7/track/dash/createDashFactories.d.ts +39 -12
  271. package/dist/types/ts3.7/track/dash/createSegmentControllerFactory.d.ts +0 -5
  272. package/dist/types/ts3.7/track/dash/util/mpd.d.ts +10 -0
  273. package/dist/types/ts3.7/track/hls/HlsManifestController.d.ts +1 -22
  274. package/dist/types/{current/track/hls/HlsManifestProvider.d.ts → ts3.7/track/hls/HlsManifestData.d.ts} +4 -6
  275. package/dist/types/ts3.7/track/hls/HlsTrack.d.ts +5 -6
  276. package/dist/types/ts3.7/track/hls/buildHlsMediaTimeline.d.ts +8 -1
  277. package/dist/types/ts3.7/track/hls/createDefaultHlsManifestTransformer.d.ts +1 -1
  278. package/dist/types/ts3.7/track/hls/createHlsContentTypesValue.d.ts +1 -1
  279. package/dist/types/ts3.7/track/hls/createHlsFactories.d.ts +40 -13
  280. package/dist/types/ts3.7/track/hls/createHlsManifestProvider.d.ts +6 -0
  281. package/dist/types/ts3.7/track/hls/createUrlHlsManifestProvider.d.ts +4 -4
  282. package/dist/types/ts3.7/track/hls/index.d.ts +1 -1
  283. package/dist/types/ts3.7/track/inferLoadOptionsFromUri.d.ts +15 -0
  284. package/dist/types/ts3.7/track/mse/MseTrack.d.ts +65 -7
  285. package/dist/types/ts3.7/track/source/SourceObjectTrack.d.ts +2 -2
  286. package/dist/types/ts3.7/track/source/SourceTrack.d.ts +2 -2
  287. package/dist/types/ts3.7/track/source/SourceTrackBase.d.ts +7 -5
  288. package/dist/types/ts3.7/util/media/codecOverrides.d.ts +33 -0
  289. package/dist/types/ts3.7/util/media/codecSupport.d.ts +6 -0
  290. package/dist/types/ts3.7/util/media/mediaSource.d.ts +5 -0
  291. package/dist/types/ts3.7/vinyl/ReadonlyPlaybackStreamingState.d.ts +9 -2
  292. package/dist/types/ts3.7/vinyl/VinylDeps.d.ts +5 -0
  293. package/dist/types/ts3.7/vinyl/VinylOptions.d.ts +68 -4
  294. package/dist/types/ts3.7/vinyl/VinylPlayer.d.ts +33 -4
  295. package/dist/types/ts3.7/vinyl/createVinylFactories.d.ts +55 -12
  296. package/dist/types/ts4.1/ad/AdBreakInfo.d.ts +160 -0
  297. package/dist/types/ts4.1/ad/AdController.d.ts +243 -0
  298. package/dist/types/ts4.1/ad/AdControllerImpl.d.ts +146 -0
  299. package/dist/types/ts4.1/ad/AdError.d.ts +6 -0
  300. package/dist/types/ts4.1/ad/AdsProvider.d.ts +28 -0
  301. package/dist/types/ts4.1/ad/defaultAdLoadOptionsResolver.d.ts +12 -0
  302. package/dist/types/ts4.1/ad/discoverHlsInterstitials.d.ts +22 -0
  303. package/dist/types/ts4.1/drm/DrmController.d.ts +29 -4
  304. package/dist/types/ts4.1/drm/DrmControllerImpl.d.ts +13 -4
  305. package/dist/types/ts4.1/drm/util/unpackPlayReadyChallenge.d.ts +5 -0
  306. package/dist/types/ts4.1/index.d.ts +151 -126
  307. package/dist/types/ts4.1/playback/PlaybackControllerImpl.d.ts +1 -0
  308. package/dist/types/ts4.1/playback/PlaybackSource.d.ts +1 -1
  309. package/dist/types/ts4.1/playback/ReadonlyPlaybackController.d.ts +6 -0
  310. package/dist/types/ts4.1/streaming/ContentStream.d.ts +8 -1
  311. package/dist/types/ts4.1/streaming/LoadMetric.d.ts +58 -0
  312. package/dist/types/ts4.1/streaming/ManifestController.d.ts +16 -1
  313. package/dist/types/ts4.1/streaming/ManifestControllerImpl.d.ts +40 -0
  314. package/dist/types/ts4.1/streaming/MediaQualityMetadata.d.ts +19 -0
  315. package/dist/types/ts4.1/streaming/MediaTimeline.d.ts +6 -0
  316. package/dist/types/ts4.1/streaming/SegmentController.d.ts +5 -0
  317. package/dist/types/ts4.1/streaming/SegmentControllerImpl.d.ts +12 -0
  318. package/dist/types/ts4.1/streaming/StreamingEventMap.d.ts +42 -1
  319. package/dist/types/ts4.1/streaming/abr/QualitySelectorImpl.d.ts +28 -0
  320. package/dist/types/ts4.1/streaming/buffering/BufferingController.d.ts +37 -0
  321. package/dist/types/ts4.1/streaming/buffering/MediaSourceController.d.ts +16 -11
  322. package/dist/types/ts4.1/streaming/buffering/codecDenylist.d.ts +23 -0
  323. package/dist/types/ts4.1/streaming/createAllowedContentTypesValue.d.ts +30 -0
  324. package/dist/types/ts4.1/streaming/createDefaultMediaTimelineTransformer.d.ts +4 -1
  325. package/dist/types/ts4.1/streaming/mediaTimelineAccessibilityFilter.d.ts +35 -0
  326. package/dist/types/ts4.1/streaming/mediaTimelineLanguageFilter.d.ts +24 -6
  327. package/dist/types/ts4.1/text/SidecarTextTrackController.d.ts +92 -0
  328. package/dist/types/ts4.1/text/SidecarTextTrackLoader.d.ts +60 -0
  329. package/dist/types/ts4.1/text/TextTrack.d.ts +129 -0
  330. package/dist/types/ts4.1/text/VttCueStyle.d.ts +41 -0
  331. package/dist/types/ts4.1/text/discoverDashTextTracks.d.ts +24 -0
  332. package/dist/types/ts4.1/text/discoverHlsTextTracks.d.ts +19 -0
  333. package/dist/types/ts4.1/text/parseWebVtt.d.ts +46 -0
  334. package/dist/types/ts4.1/text/pickPreferredTextTrack.d.ts +14 -0
  335. package/dist/types/ts4.1/track/SeekRange.d.ts +9 -0
  336. package/dist/types/ts4.1/track/Track.d.ts +50 -7
  337. package/dist/types/ts4.1/track/TrackBase.d.ts +21 -29
  338. package/dist/types/ts4.1/track/TrackController.d.ts +102 -37
  339. package/dist/types/ts4.1/track/TrackFactory.d.ts +22 -2
  340. package/dist/types/ts4.1/track/dash/DashManifestController.d.ts +1 -36
  341. package/dist/types/ts4.1/track/dash/DashTrack.d.ts +4 -5
  342. package/dist/types/ts4.1/track/dash/createDashFactories.d.ts +39 -12
  343. package/dist/types/ts4.1/track/dash/createSegmentControllerFactory.d.ts +0 -5
  344. package/dist/types/ts4.1/track/dash/util/mpd.d.ts +10 -0
  345. package/dist/types/ts4.1/track/hls/HlsManifestController.d.ts +1 -22
  346. package/dist/types/ts4.1/track/hls/{HlsManifestProvider.d.ts → HlsManifestData.d.ts} +4 -6
  347. package/dist/types/ts4.1/track/hls/HlsTrack.d.ts +5 -6
  348. package/dist/types/ts4.1/track/hls/buildHlsMediaTimeline.d.ts +8 -1
  349. package/dist/types/ts4.1/track/hls/createDefaultHlsManifestTransformer.d.ts +1 -1
  350. package/dist/types/ts4.1/track/hls/createHlsContentTypesValue.d.ts +1 -1
  351. package/dist/types/ts4.1/track/hls/createHlsFactories.d.ts +41 -13
  352. package/dist/types/ts4.1/track/hls/createHlsManifestProvider.d.ts +6 -0
  353. package/dist/types/ts4.1/track/hls/createUrlHlsManifestProvider.d.ts +4 -4
  354. package/dist/types/ts4.1/track/hls/index.d.ts +1 -1
  355. package/dist/types/ts4.1/track/inferLoadOptionsFromUri.d.ts +15 -0
  356. package/dist/types/ts4.1/track/mse/MseTrack.d.ts +65 -7
  357. package/dist/types/ts4.1/track/source/SourceObjectTrack.d.ts +2 -2
  358. package/dist/types/ts4.1/track/source/SourceTrack.d.ts +2 -2
  359. package/dist/types/ts4.1/track/source/SourceTrackBase.d.ts +7 -5
  360. package/dist/types/ts4.1/util/media/codecOverrides.d.ts +33 -0
  361. package/dist/types/ts4.1/util/media/codecSupport.d.ts +6 -0
  362. package/dist/types/ts4.1/util/media/mediaSource.d.ts +5 -0
  363. package/dist/types/ts4.1/vinyl/ReadonlyPlaybackStreamingState.d.ts +9 -2
  364. package/dist/types/ts4.1/vinyl/VinylDeps.d.ts +5 -0
  365. package/dist/types/ts4.1/vinyl/VinylOptions.d.ts +68 -4
  366. package/dist/types/ts4.1/vinyl/VinylPlayer.d.ts +33 -4
  367. package/dist/types/ts4.1/vinyl/createVinylFactories.d.ts +56 -12
  368. package/dist/types/ts4.7/ad/AdBreakInfo.d.ts +160 -0
  369. package/dist/types/ts4.7/ad/AdController.d.ts +243 -0
  370. package/dist/types/ts4.7/ad/AdControllerImpl.d.ts +146 -0
  371. package/dist/types/ts4.7/ad/AdError.d.ts +6 -0
  372. package/dist/types/ts4.7/ad/AdsProvider.d.ts +28 -0
  373. package/dist/types/ts4.7/ad/defaultAdLoadOptionsResolver.d.ts +12 -0
  374. package/dist/types/ts4.7/ad/discoverHlsInterstitials.d.ts +22 -0
  375. package/dist/types/ts4.7/drm/DrmController.d.ts +29 -4
  376. package/dist/types/ts4.7/drm/DrmControllerImpl.d.ts +13 -4
  377. package/dist/types/ts4.7/drm/util/unpackPlayReadyChallenge.d.ts +5 -0
  378. package/dist/types/ts4.7/index.d.ts +151 -126
  379. package/dist/types/ts4.7/playback/PlaybackControllerImpl.d.ts +1 -0
  380. package/dist/types/ts4.7/playback/PlaybackSource.d.ts +1 -1
  381. package/dist/types/ts4.7/playback/ReadonlyPlaybackController.d.ts +6 -0
  382. package/dist/types/ts4.7/streaming/ContentStream.d.ts +8 -1
  383. package/dist/types/ts4.7/streaming/LoadMetric.d.ts +58 -0
  384. package/dist/types/ts4.7/streaming/ManifestController.d.ts +16 -1
  385. package/dist/types/ts4.7/streaming/ManifestControllerImpl.d.ts +43 -0
  386. package/dist/types/ts4.7/streaming/MediaQualityMetadata.d.ts +19 -0
  387. package/dist/types/ts4.7/streaming/MediaTimeline.d.ts +6 -0
  388. package/dist/types/ts4.7/streaming/SegmentController.d.ts +5 -0
  389. package/dist/types/ts4.7/streaming/SegmentControllerImpl.d.ts +12 -0
  390. package/dist/types/ts4.7/streaming/StreamingEventMap.d.ts +42 -1
  391. package/dist/types/ts4.7/streaming/abr/QualitySelectorImpl.d.ts +28 -0
  392. package/dist/types/ts4.7/streaming/buffering/BufferingController.d.ts +37 -0
  393. package/dist/types/ts4.7/streaming/buffering/MediaSourceController.d.ts +16 -11
  394. package/dist/types/ts4.7/streaming/buffering/codecDenylist.d.ts +23 -0
  395. package/dist/types/ts4.7/streaming/createAllowedContentTypesValue.d.ts +30 -0
  396. package/dist/types/ts4.7/streaming/createDefaultMediaTimelineTransformer.d.ts +4 -1
  397. package/dist/types/ts4.7/streaming/mediaTimelineAccessibilityFilter.d.ts +35 -0
  398. package/dist/types/ts4.7/streaming/mediaTimelineLanguageFilter.d.ts +24 -6
  399. package/dist/types/ts4.7/text/SidecarTextTrackController.d.ts +91 -0
  400. package/dist/types/ts4.7/text/SidecarTextTrackLoader.d.ts +60 -0
  401. package/dist/types/ts4.7/text/TextTrack.d.ts +129 -0
  402. package/dist/types/ts4.7/text/VttCueStyle.d.ts +41 -0
  403. package/dist/types/ts4.7/text/discoverDashTextTracks.d.ts +24 -0
  404. package/dist/types/ts4.7/text/discoverHlsTextTracks.d.ts +19 -0
  405. package/dist/types/ts4.7/text/parseWebVtt.d.ts +46 -0
  406. package/dist/types/ts4.7/text/pickPreferredTextTrack.d.ts +14 -0
  407. package/dist/types/ts4.7/track/SeekRange.d.ts +9 -0
  408. package/dist/types/ts4.7/track/Track.d.ts +50 -7
  409. package/dist/types/ts4.7/track/TrackBase.d.ts +30 -29
  410. package/dist/types/ts4.7/track/TrackController.d.ts +102 -37
  411. package/dist/types/ts4.7/track/TrackFactory.d.ts +23 -3
  412. package/dist/types/ts4.7/track/dash/DashManifestController.d.ts +1 -40
  413. package/dist/types/ts4.7/track/dash/DashTrack.d.ts +4 -5
  414. package/dist/types/ts4.7/track/dash/createDashFactories.d.ts +39 -12
  415. package/dist/types/ts4.7/track/dash/createSegmentControllerFactory.d.ts +0 -5
  416. package/dist/types/ts4.7/track/dash/util/mpd.d.ts +10 -0
  417. package/dist/types/ts4.7/track/hls/HlsManifestController.d.ts +1 -25
  418. package/dist/types/ts4.7/track/hls/{HlsManifestProvider.d.ts → HlsManifestData.d.ts} +4 -6
  419. package/dist/types/ts4.7/track/hls/HlsTrack.d.ts +5 -6
  420. package/dist/types/ts4.7/track/hls/buildHlsMediaTimeline.d.ts +8 -1
  421. package/dist/types/ts4.7/track/hls/createDefaultHlsManifestTransformer.d.ts +1 -1
  422. package/dist/types/ts4.7/track/hls/createHlsContentTypesValue.d.ts +1 -1
  423. package/dist/types/ts4.7/track/hls/createHlsFactories.d.ts +40 -13
  424. package/dist/types/ts4.7/track/hls/createHlsManifestProvider.d.ts +6 -0
  425. package/dist/types/ts4.7/track/hls/createUrlHlsManifestProvider.d.ts +4 -4
  426. package/dist/types/ts4.7/track/hls/index.d.ts +1 -1
  427. package/dist/types/ts4.7/track/inferLoadOptionsFromUri.d.ts +15 -0
  428. package/dist/types/ts4.7/track/mse/MseTrack.d.ts +66 -8
  429. package/dist/types/ts4.7/track/source/SourceObjectTrack.d.ts +2 -2
  430. package/dist/types/ts4.7/track/source/SourceTrack.d.ts +2 -2
  431. package/dist/types/ts4.7/track/source/SourceTrackBase.d.ts +7 -5
  432. package/dist/types/ts4.7/util/media/codecOverrides.d.ts +33 -0
  433. package/dist/types/ts4.7/util/media/codecSupport.d.ts +6 -0
  434. package/dist/types/ts4.7/util/media/mediaSource.d.ts +5 -0
  435. package/dist/types/ts4.7/vinyl/ReadonlyPlaybackStreamingState.d.ts +9 -2
  436. package/dist/types/ts4.7/vinyl/VinylDeps.d.ts +5 -0
  437. package/dist/types/ts4.7/vinyl/VinylOptions.d.ts +68 -4
  438. package/dist/types/ts4.7/vinyl/VinylPlayer.d.ts +63 -4
  439. package/dist/types/ts4.7/vinyl/createVinylFactories.d.ts +55 -12
  440. package/dist/unit/types/current/ad/AdController.test.d.ts +2 -0
  441. package/dist/unit/types/current/ad/AdController.test.d.ts.map +1 -0
  442. package/dist/unit/types/current/ad/AdController.test.js +10 -0
  443. package/dist/unit/types/current/ad/AdControllerImpl.test.d.ts +2 -0
  444. package/dist/unit/types/current/ad/AdControllerImpl.test.d.ts.map +1 -0
  445. package/dist/unit/types/current/ad/AdControllerImpl.test.js +1456 -0
  446. package/dist/unit/types/current/ad/defaultAdLoadOptionsResolver.test.d.ts +2 -0
  447. package/dist/unit/types/current/ad/defaultAdLoadOptionsResolver.test.d.ts.map +1 -0
  448. package/dist/unit/types/current/ad/defaultAdLoadOptionsResolver.test.js +56 -0
  449. package/dist/unit/types/current/ad/discoverHlsInterstitials.test.d.ts +2 -0
  450. package/dist/unit/types/current/ad/discoverHlsInterstitials.test.d.ts.map +1 -0
  451. package/dist/unit/types/current/ad/discoverHlsInterstitials.test.js +756 -0
  452. package/dist/unit/types/current/drm/DrmControllerImpl.test.js +205 -4
  453. package/dist/unit/types/current/index.d.ts +117 -98
  454. package/dist/unit/types/current/index.d.ts.map +1 -1
  455. package/dist/unit/types/current/index.js +117 -98
  456. package/dist/unit/types/current/playback/PlaybackControllerImpl.test.js +92 -3
  457. package/dist/unit/types/current/streaming/ContentStream.test.js +11 -0
  458. package/dist/unit/types/current/streaming/ManifestControllerImpl.test.d.ts +2 -0
  459. package/dist/unit/types/current/streaming/ManifestControllerImpl.test.d.ts.map +1 -0
  460. package/dist/unit/types/current/streaming/ManifestControllerImpl.test.js +197 -0
  461. package/dist/unit/types/current/streaming/MediaTimeline.test.js +2 -0
  462. package/dist/unit/types/current/streaming/MseTrack.test.js +478 -14
  463. package/dist/unit/types/current/streaming/SegmentControllerImpl.test.js +66 -0
  464. package/dist/unit/types/current/streaming/StreamingEventMap.test.js +2 -2
  465. package/dist/unit/types/current/streaming/abr/QualitySelectorImpl.test.js +110 -0
  466. package/dist/unit/types/current/streaming/buffering/BufferingController.test.js +123 -21
  467. package/dist/unit/types/current/streaming/buffering/MediaSourceController.test.js +37 -10
  468. package/dist/unit/types/current/streaming/buffering/SourceBufferController.test.js +4 -0
  469. package/dist/unit/types/current/streaming/buffering/codecDenylist.test.d.ts +2 -0
  470. package/dist/unit/types/current/streaming/buffering/codecDenylist.test.d.ts.map +1 -0
  471. package/dist/unit/types/current/streaming/buffering/codecDenylist.test.js +56 -0
  472. package/dist/unit/types/current/streaming/createAllowedContentTypesValue.test.d.ts +2 -0
  473. package/dist/unit/types/current/streaming/createAllowedContentTypesValue.test.d.ts.map +1 -0
  474. package/dist/unit/types/current/streaming/createAllowedContentTypesValue.test.js +77 -0
  475. package/dist/unit/types/current/streaming/createDefaultMediaTimelineTransformer.test.js +144 -2
  476. package/dist/unit/types/current/streaming/mediaTimelineAccessibilityFilter.test.d.ts +2 -0
  477. package/dist/unit/types/current/streaming/mediaTimelineAccessibilityFilter.test.d.ts.map +1 -0
  478. package/dist/unit/types/current/streaming/mediaTimelineAccessibilityFilter.test.js +99 -0
  479. package/dist/unit/types/current/streaming/mediaTimelineFilter.test.js +9 -0
  480. package/dist/unit/types/current/streaming/mediaTimelineLanguageFilter.test.js +92 -3
  481. package/dist/unit/types/current/text/SidecarTextTrackController.test.d.ts +2 -0
  482. package/dist/unit/types/current/text/SidecarTextTrackController.test.d.ts.map +1 -0
  483. package/dist/unit/types/current/text/SidecarTextTrackController.test.js +587 -0
  484. package/dist/unit/types/current/text/SidecarTextTrackLoader.test.d.ts +2 -0
  485. package/dist/unit/types/current/text/SidecarTextTrackLoader.test.d.ts.map +1 -0
  486. package/dist/unit/types/current/text/SidecarTextTrackLoader.test.js +336 -0
  487. package/dist/unit/types/current/text/VttCueStyle.test.d.ts +2 -0
  488. package/dist/unit/types/current/text/VttCueStyle.test.d.ts.map +1 -0
  489. package/dist/unit/types/current/text/VttCueStyle.test.js +76 -0
  490. package/dist/unit/types/current/text/discoverDashTextTracks.test.d.ts +2 -0
  491. package/dist/unit/types/current/text/discoverDashTextTracks.test.d.ts.map +1 -0
  492. package/dist/unit/types/current/text/discoverDashTextTracks.test.js +199 -0
  493. package/dist/unit/types/current/text/discoverHlsTextTracks.test.d.ts +2 -0
  494. package/dist/unit/types/current/text/discoverHlsTextTracks.test.d.ts.map +1 -0
  495. package/dist/unit/types/current/text/discoverHlsTextTracks.test.js +177 -0
  496. package/dist/unit/types/current/text/parseWebVtt.test.d.ts +2 -0
  497. package/dist/unit/types/current/text/parseWebVtt.test.d.ts.map +1 -0
  498. package/dist/unit/types/current/text/parseWebVtt.test.js +212 -0
  499. package/dist/unit/types/current/text/pickPreferredTextTrack.test.d.ts +2 -0
  500. package/dist/unit/types/current/text/pickPreferredTextTrack.test.d.ts.map +1 -0
  501. package/dist/unit/types/current/text/pickPreferredTextTrack.test.js +67 -0
  502. package/dist/unit/types/current/track/TrackBase.test.js +50 -5
  503. package/dist/unit/types/current/track/TrackController.test.js +712 -109
  504. package/dist/unit/types/current/track/TrackFactory.test.js +13 -25
  505. package/dist/unit/types/current/track/dash/createDashContentStreamFactories.test.js +1 -0
  506. package/dist/unit/types/current/track/dash/createDashFactories.test.js +63 -2
  507. package/dist/unit/types/current/track/dash/createSegmentControllerFactory.test.js +1 -0
  508. package/dist/unit/types/current/track/dash/util/mpd.test.js +24 -1
  509. package/dist/unit/types/current/track/hls/HlsManifestController.test.js +4 -4
  510. package/dist/unit/types/current/track/hls/HlsMediaQualityMetadataResolver.test.js +4 -2
  511. package/dist/unit/types/current/track/hls/buildHlsMediaTimeline.test.js +260 -14
  512. package/dist/unit/types/current/track/hls/createHlsContentStreamFactories.test.js +1 -0
  513. package/dist/unit/types/current/track/hls/createHlsFactories.test.js +182 -4
  514. package/dist/unit/types/current/track/hls/createUrlHlsManifestProvider.test.js +19 -0
  515. package/dist/unit/types/current/track/inferLoadOptionsFromUri.test.d.ts +2 -0
  516. package/dist/unit/types/current/track/inferLoadOptionsFromUri.test.d.ts.map +1 -0
  517. package/dist/unit/types/current/track/inferLoadOptionsFromUri.test.js +165 -0
  518. package/dist/unit/types/current/track/source/SourceTrack.test.js +5 -0
  519. package/dist/unit/types/current/track/source/SourceTrackBase.test.js +24 -3
  520. package/dist/unit/types/current/tsconfig.tsbuildinfo +1 -1
  521. package/dist/unit/types/current/util/media/codecOverrides.test.d.ts +2 -0
  522. package/dist/unit/types/current/util/media/codecOverrides.test.d.ts.map +1 -0
  523. package/dist/unit/types/current/util/media/codecOverrides.test.js +42 -0
  524. package/dist/unit/types/current/util/media/codecSupport.test.d.ts +2 -0
  525. package/dist/unit/types/current/util/media/codecSupport.test.d.ts.map +1 -0
  526. package/dist/unit/types/current/util/media/codecSupport.test.js +26 -0
  527. package/dist/unit/types/current/util/media/mediaSource.test.js +6 -0
  528. package/dist/unit/types/current/vinyl/VinylPlayer.test.js +177 -75
  529. package/dist/unit/types/current/vinyl/VinylPlayerAdBreaks.test.d.ts +2 -0
  530. package/dist/unit/types/current/vinyl/VinylPlayerAdBreaks.test.d.ts.map +1 -0
  531. package/dist/unit/types/current/vinyl/VinylPlayerAdBreaks.test.js +142 -0
  532. package/dist/unit/types/current/vinyl/VinylPlayerTextTracks.test.d.ts +2 -0
  533. package/dist/unit/types/current/vinyl/VinylPlayerTextTracks.test.d.ts.map +1 -0
  534. package/dist/unit/types/current/vinyl/VinylPlayerTextTracks.test.js +263 -0
  535. package/dist/vinylTestUtil/index.js +2393 -2232
  536. package/dist/vinylTestUtil/index.js.map +4 -4
  537. package/dist/vinylTestUtil/types/current/assets/vinylTestAssets.d.ts +14 -0
  538. package/dist/vinylTestUtil/types/current/assets/vinylTestAssets.d.ts.map +1 -1
  539. package/dist/vinylTestUtil/types/current/assets/vinylTestAssets.js +49 -30
  540. package/dist/vinylTestUtil/types/current/index.d.ts +53 -51
  541. package/dist/vinylTestUtil/types/current/index.d.ts.map +1 -1
  542. package/dist/vinylTestUtil/types/current/index.js +53 -51
  543. package/dist/vinylTestUtil/types/current/mock/ad/MockAdController.d.ts +15 -0
  544. package/dist/vinylTestUtil/types/current/mock/ad/MockAdController.d.ts.map +1 -0
  545. package/dist/vinylTestUtil/types/current/mock/ad/MockAdController.js +26 -0
  546. package/dist/vinylTestUtil/types/current/mock/dash/MockDashManifestController.d.ts +8 -1
  547. package/dist/vinylTestUtil/types/current/mock/dash/MockDashManifestController.d.ts.map +1 -1
  548. package/dist/vinylTestUtil/types/current/mock/dash/MockDashManifestController.js +15 -0
  549. package/dist/vinylTestUtil/types/current/mock/dash/mockDashManifest.d.ts +12 -12
  550. package/dist/vinylTestUtil/types/current/mock/drm/MockDrmController.d.ts +2 -2
  551. package/dist/vinylTestUtil/types/current/mock/drm/MockDrmController.d.ts.map +1 -1
  552. package/dist/vinylTestUtil/types/current/mock/hls/MockHlsManifestController.d.ts +7 -1
  553. package/dist/vinylTestUtil/types/current/mock/hls/MockHlsManifestController.d.ts.map +1 -1
  554. package/dist/vinylTestUtil/types/current/mock/hls/MockHlsManifestController.js +12 -0
  555. package/dist/vinylTestUtil/types/current/mock/hls/mockHlsManifest.d.ts +3 -3
  556. package/dist/vinylTestUtil/types/current/mock/hls/mockHlsManifest.d.ts.map +1 -1
  557. package/dist/vinylTestUtil/types/current/mock/hls/mockHlsManifest.js +1 -0
  558. package/dist/vinylTestUtil/types/current/mock/player/MockVinylPlayerDependencies.d.ts +8 -0
  559. package/dist/vinylTestUtil/types/current/mock/player/MockVinylPlayerDependencies.d.ts.map +1 -1
  560. package/dist/vinylTestUtil/types/current/mock/player/MockVinylPlayerDependencies.js +17 -1
  561. package/dist/vinylTestUtil/types/current/mock/streaming/MockContentStream.d.ts +2 -1
  562. package/dist/vinylTestUtil/types/current/mock/streaming/MockContentStream.d.ts.map +1 -1
  563. package/dist/vinylTestUtil/types/current/mock/streaming/MockContentStream.js +1 -0
  564. package/dist/vinylTestUtil/types/current/mock/streaming/buffering/MockBufferingController.d.ts +1 -0
  565. package/dist/vinylTestUtil/types/current/mock/streaming/buffering/MockBufferingController.d.ts.map +1 -1
  566. package/dist/vinylTestUtil/types/current/mock/streaming/buffering/MockBufferingController.js +1 -0
  567. package/dist/vinylTestUtil/types/current/mock/streaming/buffering/MockMediaSourceController.d.ts +2 -1
  568. package/dist/vinylTestUtil/types/current/mock/streaming/buffering/MockMediaSourceController.d.ts.map +1 -1
  569. package/dist/vinylTestUtil/types/current/mock/streaming/buffering/MockMediaSourceController.js +2 -1
  570. package/dist/vinylTestUtil/types/current/mock/text/MockTextTrackController.d.ts +10 -0
  571. package/dist/vinylTestUtil/types/current/mock/text/MockTextTrackController.d.ts.map +1 -0
  572. package/dist/vinylTestUtil/types/current/mock/text/MockTextTrackController.js +14 -0
  573. package/dist/vinylTestUtil/types/current/mock/track/MockTrack.d.ts +13 -4
  574. package/dist/vinylTestUtil/types/current/mock/track/MockTrack.d.ts.map +1 -1
  575. package/dist/vinylTestUtil/types/current/mock/track/MockTrack.js +11 -0
  576. package/dist/vinylTestUtil/types/current/mock/track/MockTrackController.d.ts +3 -2
  577. package/dist/vinylTestUtil/types/current/mock/track/MockTrackController.d.ts.map +1 -1
  578. package/dist/vinylTestUtil/types/current/mock/track/MockTrackController.js +2 -1
  579. package/dist/vinylTestUtil/types/current/mock/track/dash/createMockDashDependencies.d.ts +6 -0
  580. package/dist/vinylTestUtil/types/current/mock/track/dash/createMockDashDependencies.d.ts.map +1 -1
  581. package/dist/vinylTestUtil/types/current/mock/track/dash/createMockDashDependencies.js +8 -1
  582. package/dist/vinylTestUtil/types/current/mock/track/hls/createMockHlsDependencies.d.ts +4 -0
  583. package/dist/vinylTestUtil/types/current/mock/track/hls/createMockHlsDependencies.d.ts.map +1 -1
  584. package/dist/vinylTestUtil/types/current/mock/track/hls/createMockHlsDependencies.js +6 -1
  585. package/dist/vinylTestUtil/types/current/player/createVinylSuite.d.ts.map +1 -1
  586. package/dist/vinylTestUtil/types/current/player/createVinylSuite.js +18 -7
  587. package/dist/vinylTestUtil/types/current/tsconfig.tsbuildinfo +1 -1
  588. package/dist/vinylTestUtil/types/current/util/playback/eventPromises.d.ts.map +1 -1
  589. package/dist/vinylTestUtil/types/current/util/playback/eventPromises.js +1 -1
  590. package/dist/vinylTestUtil/types/current/util/playback/expectTrackCanSeek.d.ts.map +1 -1
  591. package/dist/vinylTestUtil/types/current/util/playback/expectTrackCanSeek.js +5 -2
  592. package/dist/vinylTestUtil/types/current/util/playback/expectTrackPlays.js +3 -3
  593. package/dist/vinylTestUtil/types/current/util/playback/expectTrackPlaysUntil.d.ts.map +1 -1
  594. package/dist/vinylTestUtil/types/current/util/playback/expectTrackPlaysUntil.js +11 -7
  595. package/dist/vinylTestUtil/types/ts3.7/assets/vinylTestAssets.d.ts +14 -0
  596. package/dist/vinylTestUtil/types/ts3.7/index.d.ts +53 -51
  597. package/dist/vinylTestUtil/types/ts3.7/mock/ad/MockAdController.d.ts +15 -0
  598. package/dist/vinylTestUtil/types/ts3.7/mock/dash/MockDashManifestController.d.ts +8 -1
  599. package/dist/vinylTestUtil/types/ts3.7/mock/dash/mockDashManifest.d.ts +12 -12
  600. package/dist/vinylTestUtil/types/ts3.7/mock/drm/MockDrmController.d.ts +2 -2
  601. package/dist/vinylTestUtil/types/ts3.7/mock/hls/MockHlsManifestController.d.ts +7 -1
  602. package/dist/vinylTestUtil/types/ts3.7/mock/hls/mockHlsManifest.d.ts +3 -3
  603. package/dist/vinylTestUtil/types/ts3.7/mock/player/MockVinylPlayerDependencies.d.ts +8 -0
  604. package/dist/vinylTestUtil/types/ts3.7/mock/streaming/MockContentStream.d.ts +2 -1
  605. package/dist/vinylTestUtil/types/ts3.7/mock/streaming/buffering/MockBufferingController.d.ts +1 -0
  606. package/dist/vinylTestUtil/types/ts3.7/mock/streaming/buffering/MockMediaSourceController.d.ts +2 -1
  607. package/dist/vinylTestUtil/types/ts3.7/mock/text/MockTextTrackController.d.ts +10 -0
  608. package/dist/vinylTestUtil/types/ts3.7/mock/track/MockTrack.d.ts +13 -4
  609. package/dist/vinylTestUtil/types/ts3.7/mock/track/MockTrackController.d.ts +3 -2
  610. package/dist/vinylTestUtil/types/ts3.7/mock/track/dash/createMockDashDependencies.d.ts +6 -0
  611. package/dist/vinylTestUtil/types/ts3.7/mock/track/hls/createMockHlsDependencies.d.ts +4 -0
  612. package/dist/vinylTestUtil/types/ts4.1/assets/vinylTestAssets.d.ts +14 -0
  613. package/dist/vinylTestUtil/types/ts4.1/index.d.ts +53 -51
  614. package/dist/vinylTestUtil/types/ts4.1/mock/ad/MockAdController.d.ts +15 -0
  615. package/dist/vinylTestUtil/types/ts4.1/mock/dash/MockDashManifestController.d.ts +8 -1
  616. package/dist/vinylTestUtil/types/ts4.1/mock/dash/mockDashManifest.d.ts +12 -12
  617. package/dist/vinylTestUtil/types/ts4.1/mock/drm/MockDrmController.d.ts +2 -2
  618. package/dist/vinylTestUtil/types/ts4.1/mock/hls/MockHlsManifestController.d.ts +7 -1
  619. package/dist/vinylTestUtil/types/ts4.1/mock/hls/mockHlsManifest.d.ts +3 -3
  620. package/dist/vinylTestUtil/types/ts4.1/mock/player/MockVinylPlayerDependencies.d.ts +8 -0
  621. package/dist/vinylTestUtil/types/ts4.1/mock/streaming/MockContentStream.d.ts +2 -1
  622. package/dist/vinylTestUtil/types/ts4.1/mock/streaming/buffering/MockBufferingController.d.ts +1 -0
  623. package/dist/vinylTestUtil/types/ts4.1/mock/streaming/buffering/MockMediaSourceController.d.ts +2 -1
  624. package/dist/vinylTestUtil/types/ts4.1/mock/text/MockTextTrackController.d.ts +10 -0
  625. package/dist/vinylTestUtil/types/ts4.1/mock/track/MockTrack.d.ts +13 -4
  626. package/dist/vinylTestUtil/types/ts4.1/mock/track/MockTrackController.d.ts +3 -2
  627. package/dist/vinylTestUtil/types/ts4.1/mock/track/dash/createMockDashDependencies.d.ts +6 -0
  628. package/dist/vinylTestUtil/types/ts4.1/mock/track/hls/createMockHlsDependencies.d.ts +4 -0
  629. package/dist/vinylTestUtil/types/ts4.7/assets/vinylTestAssets.d.ts +14 -0
  630. package/dist/vinylTestUtil/types/ts4.7/index.d.ts +53 -51
  631. package/dist/vinylTestUtil/types/ts4.7/mock/ad/MockAdController.d.ts +15 -0
  632. package/dist/vinylTestUtil/types/ts4.7/mock/dash/MockDashManifestController.d.ts +8 -1
  633. package/dist/vinylTestUtil/types/ts4.7/mock/dash/mockDashManifest.d.ts +12 -12
  634. package/dist/vinylTestUtil/types/ts4.7/mock/drm/MockDrmController.d.ts +2 -2
  635. package/dist/vinylTestUtil/types/ts4.7/mock/hls/MockHlsManifestController.d.ts +7 -1
  636. package/dist/vinylTestUtil/types/ts4.7/mock/hls/mockHlsManifest.d.ts +3 -3
  637. package/dist/vinylTestUtil/types/ts4.7/mock/player/MockVinylPlayerDependencies.d.ts +8 -0
  638. package/dist/vinylTestUtil/types/ts4.7/mock/streaming/MockContentStream.d.ts +2 -1
  639. package/dist/vinylTestUtil/types/ts4.7/mock/streaming/buffering/MockBufferingController.d.ts +1 -0
  640. package/dist/vinylTestUtil/types/ts4.7/mock/streaming/buffering/MockMediaSourceController.d.ts +2 -1
  641. package/dist/vinylTestUtil/types/ts4.7/mock/text/MockTextTrackController.d.ts +10 -0
  642. package/dist/vinylTestUtil/types/ts4.7/mock/track/MockTrack.d.ts +13 -4
  643. package/dist/vinylTestUtil/types/ts4.7/mock/track/MockTrackController.d.ts +3 -2
  644. package/dist/vinylTestUtil/types/ts4.7/mock/track/dash/createMockDashDependencies.d.ts +6 -0
  645. package/dist/vinylTestUtil/types/ts4.7/mock/track/hls/createMockHlsDependencies.d.ts +4 -0
  646. package/docs/ADS.md +264 -0
  647. package/docs/USAGE.md +142 -9
  648. package/package.json +18 -18
  649. package/dist/types/current/track/hls/HlsManifestProvider.d.ts.map +0 -1
  650. package/dist/unit/types/current/track/dash/DashManifestController.test.d.ts +0 -2
  651. package/dist/unit/types/current/track/dash/DashManifestController.test.d.ts.map +0 -1
  652. package/dist/unit/types/current/track/dash/DashManifestController.test.js +0 -186
  653. /package/dist/types/current/{track/hls/HlsManifestProvider.js → ad/AdBreakInfo.js} +0 -0
@@ -0,0 +1,68 @@
1
+ /*
2
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ import { languageRelatedness } from '../track/filters/languageFilter';
6
+ /**
7
+ * Resolves the preferred-text-language option to an ordered list of BCP 47
8
+ * tags, most-preferred first. Unlike the audio equivalent, `null` resolves to
9
+ * an empty list (no preference) rather than falling back to
10
+ * `navigator.languages` — captions default to off.
11
+ */
12
+ function resolvePreferredTextLanguages(preferred) {
13
+ if (typeof preferred === 'string')
14
+ return [preferred];
15
+ if (preferred)
16
+ return preferred;
17
+ return [];
18
+ }
19
+ /**
20
+ * Chooses the text track that best matches the preferred language(s), or null
21
+ * when none relate (or there is no preference / no tracks).
22
+ *
23
+ * Language dominates: a track is ranked first by which preference it relates to
24
+ * (earlier entries win) and how closely (see {@link languageRelatedness}).
25
+ * Within a single language, a full track is preferred over a forced-only track
26
+ * (a user asking for a caption language wants the full captions, not just the
27
+ * forced foreign-dialogue cues), and a manifest-default track breaks any
28
+ * remaining tie.
29
+ */
30
+ export function pickPreferredTextTrack(tracks, preferred) {
31
+ const prefs = resolvePreferredTextLanguages(preferred);
32
+ if (tracks.length === 0 || prefs.length === 0)
33
+ return null;
34
+ let best = null;
35
+ let bestScore = 0;
36
+ for (const track of tracks) {
37
+ const score = scoreTextTrack(track, prefs);
38
+ if (score > bestScore) {
39
+ bestScore = score;
40
+ best = track;
41
+ }
42
+ }
43
+ return best;
44
+ }
45
+ /**
46
+ * Scores a track against the ordered preference list. 0 means unrelated to
47
+ * every preference (never selected). Preference position and language
48
+ * relatedness are weighted so they dominate the full/forced/default tiebreaks.
49
+ */
50
+ function scoreTextTrack(track, prefs) {
51
+ if (track.language == null)
52
+ return 0;
53
+ let best = 0;
54
+ for (let i = 0; i < prefs.length; i++) {
55
+ const rel = languageRelatedness(prefs[i], track.language);
56
+ if (rel > 0) {
57
+ best = Math.max(best, (prefs.length - i) * 100 + rel * 10);
58
+ }
59
+ }
60
+ if (best === 0)
61
+ return 0;
62
+ // Tiebreaks within the same language: prefer full over forced, then default.
63
+ if (!track.forced)
64
+ best += 2;
65
+ if (track.default)
66
+ best += 1;
67
+ return best;
68
+ }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * The seekable time range on the media timeline, in seconds.
3
+ * `end` will be `Infinity` when a live stream.
4
+ */
5
+ export type SeekRange = {
6
+ readonly start: number;
7
+ readonly end: number;
8
+ };
9
+ //# sourceMappingURL=SeekRange.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SeekRange.d.ts","sourceRoot":"","sources":["../../../../src/track/SeekRange.ts"],"names":[],"mappings":"AAKA;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAA"}
@@ -0,0 +1,5 @@
1
+ /*
2
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ export {};
@@ -1,11 +1,18 @@
1
- import type { AnyRecord, Disposable, LogTarget, ReadonlyEventHost, ReadonlyRanges, ReadonlySet } from '@amazon/vinyl-util';
1
+ import type { AnyRecord, Covariant, Disposable, EventHandler, LogTarget, Maybe, ReadonlyEventHost, ReadonlyRanges, ReadonlySet, SignalOptions, Unsubscribe } from '@amazon/vinyl-util';
2
2
  import type { ContentType, MediaQualityMetadata } from '../streaming/MediaQualityMetadata';
3
3
  import type { StreamingEventMap } from '../streaming/StreamingEventMap';
4
+ import type { ReadonlyTextTrackController, TextTrackController } from '../text/TextTrack';
5
+ import type { SeekRange } from './SeekRange';
6
+ import type { TrackAds } from '../ad/AdBreakInfo';
7
+ import type { TrackConfigOptions } from './TrackFactory';
8
+ export type { SeekRange } from './SeekRange';
4
9
  /**
5
10
  * All events a track may emit.
6
11
  * Streaming-related events are separated as they will be bubbled by the player.
7
12
  */
8
- export type TrackEventMap = StreamingEventMap;
13
+ export type TrackEventMap = StreamingEventMap & {
14
+ readonly adsChange: AnyRecord;
15
+ };
9
16
  /**
10
17
  * An identifier for a Track, used for referencing a track.
11
18
  */
@@ -93,10 +100,13 @@ export interface StreamingState extends ReadonlyStreamingState {
93
100
  /**
94
101
  * Resets the track to recover from error states.
95
102
  * This will reset failed segments and clear error conditions to allow streaming to resume.
103
+ *
104
+ * @param hard If true, the track will reset the playback state and
105
+ * recreate media sources.
96
106
  */
97
- reset(): void;
107
+ reset(hard?: boolean): void;
98
108
  }
99
- export interface ReadonlyTrack extends ReadonlyStreamingState, LogTarget {
109
+ export interface ReadonlyTrack extends ReadonlyEventHost<TrackEventMap>, ReadonlyStreamingState, LogTarget {
100
110
  /**
101
111
  * The track identifier.
102
112
  */
@@ -122,18 +132,44 @@ export interface ReadonlyTrack extends ReadonlyStreamingState, LogTarget {
122
132
  * The last error that occurred in this track, or null if no error.
123
133
  */
124
134
  readonly error: Error | null;
135
+ /**
136
+ * Controller for sidecar text tracks discovered for this track, or null
137
+ * if the track type does not surface text tracks.
138
+ */
139
+ readonly textTrackController: ReadonlyTextTrackController | null;
140
+ /**
141
+ * The seekable range on the media timeline, or null when not yet known
142
+ * (e.g. before the manifest is loaded). Based on the media timeline, not
143
+ * the element's native seekable ranges.
144
+ */
145
+ readonly seekRange: SeekRange | null;
146
+ /**
147
+ * Resolves to the ads for this track.
148
+ * The track's ads may change if the media timeline changes.
149
+ *
150
+ * @see {@link TrackEventMap} — the `adsChange` event.
151
+ */
152
+ getAds(): Promise<TrackAds>;
153
+ readonly __eventMapType: Covariant<TrackEventMap>;
154
+ hasListeners(type: keyof TrackEventMap): boolean;
155
+ on<K extends keyof TrackEventMap>(type: K, handler: EventHandler<TrackEventMap[K]>, options?: SignalOptions): Unsubscribe;
125
156
  }
126
157
  /**
127
158
  * One track is active on the track controller at a time.
128
159
  */
129
- export interface Track<LoadOptionsType extends AnyRecord = AnyRecord> extends ReadonlyTrack, StreamingState, Disposable {
160
+ export interface Track<ConfigType extends TrackConfigOptions = TrackConfigOptions> extends ReadonlyTrack, StreamingState, Disposable {
161
+ /**
162
+ * Mutable view of {@link ReadonlyTrack.textTrackController} that allows
163
+ * selecting the active text track.
164
+ */
165
+ readonly textTrackController: TextTrackController | null;
130
166
  /**
131
167
  * Provides configuration to the track and begins preloading (if applicable).
132
168
  *
133
169
  * @param trackOptions Configuration provided by the TrackController.
134
170
  * @param loadOptions Configuration from `TrackLoadOptions.config`, provided by the Application.
135
171
  */
136
- preload(trackOptions: TrackPreloadOptions, loadOptions: LoadOptionsType): void;
172
+ preload(trackOptions: TrackPreloadOptions, loadOptions: Maybe<ConfigType>): void;
137
173
  /**
138
174
  * Sets this track as active, deactivating any currently active track.
139
175
  * This should set sources on the playback source and add any listeners needed for shared
@@ -141,7 +177,7 @@ export interface Track<LoadOptionsType extends AnyRecord = AnyRecord> extends Re
141
177
  *
142
178
  * @param loadOptions Configuration from `TrackLoadOptions.config`, provided by the Application.
143
179
  */
144
- activate(loadOptions: LoadOptionsType): void;
180
+ activate(loadOptions: Maybe<ConfigType>): void;
145
181
  /**
146
182
  * Sets this track as inactive.
147
183
  * This should unset sources, and remove any listeners. Tracks do not implement disposable,
@@ -149,5 +185,12 @@ export interface Track<LoadOptionsType extends AnyRecord = AnyRecord> extends Re
149
185
  * are no longer references to the track.
150
186
  */
151
187
  deactivate(): void;
188
+ /**
189
+ * True if this track is disposed.
190
+ */
191
+ readonly disposed: boolean;
192
+ readonly __eventMapType: Covariant<TrackEventMap>;
193
+ hasListeners(type: keyof TrackEventMap): boolean;
194
+ on<K extends keyof TrackEventMap>(type: K, handler: EventHandler<TrackEventMap[K]>, options?: SignalOptions): Unsubscribe;
152
195
  }
153
196
  //# sourceMappingURL=Track.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Track.d.ts","sourceRoot":"","sources":["../../../../src/track/Track.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACR,SAAS,EACT,UAAU,EACV,SAAS,EACT,iBAAiB,EACjB,cAAc,EACd,WAAW,EACd,MAAM,oBAAoB,CAAA;AAC3B,OAAO,KAAK,EACR,WAAW,EACX,oBAAoB,EACvB,MAAM,mCAAmC,CAAA;AAC1C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAA;AAEvE;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,iBAAiB,CAAA;AAE7C;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAA;AAE7B;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAA;AAEhC;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAChC;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAA;CACpC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,sBAAuB,SAAQ,iBAAiB,CAAC,iBAAiB,CAAC;IAChF;;;OAGG;IACH,QAAQ,CAAC,aAAa,EAAE,cAAc,CAAA;IAEtC;;OAEG;IACH,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC,WAAW,CAAC,CAAA;IAE/C;;;OAGG;IACH,QAAQ,CAAC,SAAS,EAAE,SAAS,oBAAoB,EAAE,GAAG,IAAI,CAAA;IAE1D;;;OAGG;IACH,QAAQ,CAAC,mBAAmB,EAAE,SAAS,oBAAoB,EAAE,GAAG,IAAI,CAAA;IAEpE;;;;;;;;;OASG;IACH,mBAAmB,CAAC,WAAW,EAAE,WAAW,GAAG,oBAAoB,GAAG,IAAI,CAAA;IAE1E;;;;;;OAMG;IACH,mBAAmB,CAAC,WAAW,EAAE,WAAW,GAAG,oBAAoB,GAAG,IAAI,CAAA;IAE1E;;;;;;OAMG;IACH,kBAAkB,CAAC,WAAW,EAAE,WAAW,GAAG,oBAAoB,GAAG,IAAI,CAAA;CAC5E;AAED,MAAM,WAAW,cAAe,SAAQ,sBAAsB;IAC1D;;OAEG;IACH,aAAa,IAAI,IAAI,CAAA;IAErB;;;OAGG;IACH,KAAK,IAAI,IAAI,CAAA;CAChB;AAED,MAAM,WAAW,aAAc,SAAQ,sBAAsB,EAAE,SAAS;IACpE;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAA;IAEtB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;IAE1B;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IAExB;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAE1B;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAA;IAEnB;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,KAAK,CAAC,eAAe,SAAS,SAAS,GAAG,SAAS,CAChE,SAAQ,aAAa,EAAE,cAAc,EAAE,UAAU;IACjD;;;;;OAKG;IACH,OAAO,CACH,YAAY,EAAE,mBAAmB,EACjC,WAAW,EAAE,eAAe,GAC7B,IAAI,CAAA;IAEP;;;;;;OAMG;IACH,QAAQ,CAAC,WAAW,EAAE,eAAe,GAAG,IAAI,CAAA;IAE5C;;;;;OAKG;IACH,UAAU,IAAI,IAAI,CAAA;CACrB"}
1
+ {"version":3,"file":"Track.d.ts","sourceRoot":"","sources":["../../../../src/track/Track.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,12 @@
1
- import type { ObjectSchema } from '@amazon/vinyl-validation';
2
1
  import { EventHostImpl, type Maybe, type ReadonlyRanges, type ReadonlySet } from '@amazon/vinyl-util';
3
2
  import type { PlaybackController } from '../playback/PlaybackController';
4
3
  import type { Track, TrackEventMap, TrackPreloadOptions, TrackTypeId, TrackUri } from './Track';
4
+ import type { SeekRange } from './SeekRange';
5
5
  import { type DrmController } from '../drm/DrmController';
6
6
  import type { ContentType, MediaQualityMetadata } from '../streaming/MediaQualityMetadata';
7
- import { type DrmOptions } from '../drm/DrmOptions';
7
+ import type { TextTrackController } from '../text/TextTrack';
8
+ import type { TrackAds } from '../ad/AdBreakInfo';
9
+ import type { TrackConfigOptions } from './TrackFactory';
8
10
  /**
9
11
  * Dependencies for TrackBase.
10
12
  */
@@ -18,29 +20,10 @@ export interface TrackBaseDeps {
18
20
  */
19
21
  readonly drmController: DrmController;
20
22
  }
21
- /**
22
- * General configuration for tracks set in track load options.
23
- */
24
- export interface TrackBaseOptions {
25
- /**
26
- * The time to seek to when the track has been activated.
27
- * For MSE tracks this will affect pre-fetching.
28
- */
29
- readonly startTime?: Maybe<number>;
30
- /**
31
- * Extra application data to associate with the track.
32
- */
33
- readonly extra?: any;
34
- /**
35
- * DRM Configuration overrides for this track.
36
- */
37
- readonly drm?: Partial<DrmOptions>;
38
- }
39
- export declare const trackBaseOptionsValidator: ObjectSchema<TrackBaseOptions>;
40
23
  /**
41
24
  * A base class for all tracks.
42
25
  */
43
- export declare abstract class TrackBase<EventMap extends TrackEventMap = TrackEventMap, LoadOptionsType extends TrackBaseOptions = TrackBaseOptions> extends EventHostImpl<EventMap> implements Track<LoadOptionsType> {
26
+ export declare abstract class TrackBase<EventMap extends TrackEventMap = TrackEventMap, ConfigType extends TrackConfigOptions = TrackConfigOptions> extends EventHostImpl<EventMap> implements Track<ConfigType> {
44
27
  /**
45
28
  * The identifier of this track, used as the key in the track cache.
46
29
  */
@@ -54,11 +37,22 @@ export declare abstract class TrackBase<EventMap extends TrackEventMap = TrackEv
54
37
  /**
55
38
  * The current load options, if this is an active track.
56
39
  */
57
- protected loadOptions: LoadOptionsType | null;
40
+ protected loadOptions: Maybe<ConfigType>;
58
41
  protected readonly errorHandler: (error: any) => void;
59
42
  protected readonly disposer: import("@amazon/vinyl-util").Disposer;
60
43
  protected drmSessionAbort: import("@amazon/vinyl-util").AbortSlot;
61
44
  get fetchedRanges(): ReadonlyRanges;
45
+ /**
46
+ * Default text track controller is null. Tracks that surface text tracks
47
+ * (e.g. {@link MseTrack}) override this getter.
48
+ */
49
+ get textTrackController(): TextTrackController | null;
50
+ /**
51
+ * The presentation seek range of the media.
52
+ * Most often {start=0, end=duration} but may be different depending on the
53
+ * media timeline.
54
+ */
55
+ get seekRange(): SeekRange | null;
62
56
  abstract get contentTypes(): ReadonlySet<ContentType>;
63
57
  abstract get qualities(): readonly MediaQualityMetadata[] | null;
64
58
  abstract get qualitiesUnfiltered(): readonly MediaQualityMetadata[] | null;
@@ -70,6 +64,7 @@ export declare abstract class TrackBase<EventMap extends TrackEventMap = TrackEv
70
64
  */
71
65
  protected _error: Error | null;
72
66
  private _active;
67
+ private _seekRange;
73
68
  protected constructor(
74
69
  /**
75
70
  * The identifier of this track, used as the key in the track cache.
@@ -79,31 +74,37 @@ export declare abstract class TrackBase<EventMap extends TrackEventMap = TrackEv
79
74
  * The track type.
80
75
  */
81
76
  type: TrackTypeId, deps: TrackBaseDeps);
77
+ toString(): string;
82
78
  get error(): Error | null;
83
- preload(_trackOptions: TrackPreloadOptions, _loadOptions: LoadOptionsType): void;
79
+ preload(_trackOptions: TrackPreloadOptions, _loadOptions: Maybe<ConfigType>): void;
84
80
  get extra(): any;
85
81
  get active(): boolean;
86
82
  get disposed(): boolean;
87
- activate(loadOptions: LoadOptionsType): void;
83
+ activate(loadOptions: Maybe<ConfigType>): void;
88
84
  /**
89
85
  * The track has been activated.
90
86
  * Operations on shared resources such as the playback controller may only be done while the
91
87
  * track is currently active. For example if there is a loading operation before the
92
88
  * playback source is set, isActive must be checked before the property is changed.
93
89
  */
94
- abstract onActivated(loadOptions: LoadOptionsType): void;
90
+ abstract onActivated(loadOptions: Maybe<ConfigType>): void;
95
91
  deactivate(): void;
96
92
  abstract onDeactivated(): void;
97
- toString(): string;
98
- protected closeDrmSessions(): void;
99
93
  abstract clearPrefetch(): void;
94
+ protected closeDrmSessions(): void;
95
+ /**
96
+ * Resolves to this track's ads.
97
+ * Implementations may override to provide ad breaks.
98
+ */
99
+ getAds(): Promise<TrackAds>;
100
+ protected setSeekRange(value: SeekRange): void;
100
101
  /**
101
102
  * Resets the track to recover from error states.
102
103
  * Base implementation does nothing.
103
104
  *
104
105
  * Overrides should dispatch 'reset' after resetting error state.
105
106
  */
106
- reset(): void;
107
+ reset(hard?: boolean): void;
107
108
  dispose(): void;
108
109
  }
109
110
  //# sourceMappingURL=TrackBase.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TrackBase.d.ts","sourceRoot":"","sources":["../../../../src/track/TrackBase.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TrackBase.d.ts","sourceRoot":"","sources":["../../../../src/track/TrackBase.ts"],"names":[],"mappings":"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"}
@@ -2,14 +2,7 @@
2
2
  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
3
  * SPDX-License-Identifier: Apache-2.0
4
4
  */
5
- import { any, number, object } from '@amazon/vinyl-validation';
6
- import { createAbortSlot, createDisposer, emptyRanges, EventHostImpl, isSilentError, logDebug, noop, } from '@amazon/vinyl-util';
7
- import { drmOptionsValidator } from '../drm/DrmOptions';
8
- export const trackBaseOptionsValidator = object({
9
- extra: any().optional(),
10
- startTime: number().maybe().optional(),
11
- drm: drmOptionsValidator.partial().optional(),
12
- });
5
+ import { createAbortSlot, createDisposer, emptyRanges, equalDeep, EventHostImpl, isSilentError, logDebug, noop, } from '@amazon/vinyl-util';
13
6
  /**
14
7
  * A base class for all tracks.
15
8
  */
@@ -40,11 +33,27 @@ export class TrackBase extends EventHostImpl {
40
33
  get fetchedRanges() {
41
34
  return emptyRanges;
42
35
  }
36
+ /**
37
+ * Default text track controller is null. Tracks that surface text tracks
38
+ * (e.g. {@link MseTrack}) override this getter.
39
+ */
40
+ get textTrackController() {
41
+ return null;
42
+ }
43
+ /**
44
+ * The presentation seek range of the media.
45
+ * Most often {start=0, end=duration} but may be different depending on the
46
+ * media timeline.
47
+ */
48
+ get seekRange() {
49
+ return this._seekRange;
50
+ }
43
51
  /**
44
52
  * Sets on handleError, cleared on 'reset'.
45
53
  */
46
54
  _error = null;
47
55
  _active = false;
56
+ _seekRange = null;
48
57
  constructor(
49
58
  /**
50
59
  * The identifier of this track, used as the key in the track cache.
@@ -59,6 +68,9 @@ export class TrackBase extends EventHostImpl {
59
68
  this.type = type;
60
69
  this.deps = deps;
61
70
  }
71
+ toString() {
72
+ return `[${this[Symbol.toStringTag]}#${this.uri}]`;
73
+ }
62
74
  get error() {
63
75
  return this._error;
64
76
  }
@@ -80,9 +92,9 @@ export class TrackBase extends EventHostImpl {
80
92
  this._active = true;
81
93
  logDebug(this, 'activate', this.uri);
82
94
  this.deps.playbackController
83
- .seekTo(loadOptions.startTime ?? 0)
95
+ .seekTo(loadOptions?.startTime ?? 0)
84
96
  .catch(noop);
85
- this.deps.drmController.configure(loadOptions.drm);
97
+ this.deps.drmController.configure(loadOptions?.drm);
86
98
  this.onActivated(loadOptions);
87
99
  }
88
100
  deactivate() {
@@ -95,24 +107,64 @@ export class TrackBase extends EventHostImpl {
95
107
  this.onDeactivated();
96
108
  this.closeDrmSessions();
97
109
  }
98
- toString() {
99
- return `[${this[Symbol.toStringTag]}#${this.uri}]`;
100
- }
101
110
  closeDrmSessions() {
102
111
  this.drmSessionAbort.abort();
103
112
  }
113
+ /**
114
+ * Resolves to this track's ads.
115
+ * Implementations may override to provide ad breaks.
116
+ */
117
+ getAds() {
118
+ return Promise.resolve({
119
+ adBreaks: [],
120
+ trackUri: this.uri,
121
+ });
122
+ }
123
+ setSeekRange(value) {
124
+ const prev = this._seekRange;
125
+ if (equalDeep(prev, value))
126
+ return;
127
+ const previous = this._seekRange;
128
+ this._seekRange = value;
129
+ logDebug(this, `seekRangeChange start=${value.start}, end=${value.end}`);
130
+ this.dispatch('seekRangeChange', {
131
+ previous,
132
+ current: value,
133
+ });
134
+ }
104
135
  /**
105
136
  * Resets the track to recover from error states.
106
137
  * Base implementation does nothing.
107
138
  *
108
139
  * Overrides should dispatch 'reset' after resetting error state.
109
140
  */
110
- reset() {
111
- if (this._error == null) {
141
+ reset(hard = false) {
142
+ if (!hard && !this._error) {
112
143
  logDebug(this, 'reset no-op');
113
144
  return;
114
145
  }
115
- logDebug(this, 'reset');
146
+ if (hard) {
147
+ // On a hard reset, deactivate/activate the track,
148
+ // restore playback seek and playing state.
149
+ if (this._active) {
150
+ const loadOptions = this.loadOptions;
151
+ const { playbackController } = this.deps;
152
+ const wasPaused = playbackController.paused || playbackController.ended;
153
+ const time = playbackController.currentTime;
154
+ this.onDeactivated();
155
+ // Clear the prefetch on a hard reset, in the case of codecs unsupported, the prefetch would
156
+ // otherwise contain unsupported segments.
157
+ this.clearPrefetch();
158
+ this.onActivated(loadOptions);
159
+ playbackController.seekTo(time).catch(noop);
160
+ if (!wasPaused)
161
+ playbackController.play().catch(noop);
162
+ }
163
+ else {
164
+ this.clearPrefetch();
165
+ }
166
+ }
167
+ logDebug(this, 'reset, hard:', hard);
116
168
  this._error = null;
117
169
  this.dispatch('reset', {});
118
170
  }