@amazon/vinyl 1.1.1 → 1.2.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 (446) hide show
  1. package/dist/index.cjs +276 -200
  2. package/dist/index.cjs.map +4 -4
  3. package/dist/index.js +280 -203
  4. package/dist/index.js.map +4 -4
  5. package/dist/test/benchmark.es5.js +169 -232
  6. package/dist/test/benchmark.js +1475 -1933
  7. package/dist/test/benchmark.js.map +4 -4
  8. package/dist/test/integ.es5.js +771 -394
  9. package/dist/test/integ.js +6063 -5273
  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/client/Capabilities.d.ts.map +1 -1
  15. package/dist/types/current/client/CapabilitiesImpl.d.ts.map +1 -1
  16. package/dist/types/current/drm/DrmController.d.ts +2 -2
  17. package/dist/types/current/drm/DrmController.d.ts.map +1 -1
  18. package/dist/types/current/drm/DrmControllerImpl.d.ts +3 -3
  19. package/dist/types/current/drm/DrmControllerImpl.d.ts.map +1 -1
  20. package/dist/types/current/drm/DrmControllerImpl.js +7 -7
  21. package/dist/types/current/drm/DrmKeySystemResolver.d.ts +1 -1
  22. package/dist/types/current/drm/DrmKeySystemResolver.d.ts.map +1 -1
  23. package/dist/types/current/drm/DrmKeySystemResolver.js +1 -1
  24. package/dist/types/current/drm/DrmOptions.d.ts +1 -1
  25. package/dist/types/current/drm/DrmOptions.d.ts.map +1 -1
  26. package/dist/types/current/drm/DrmOptions.js +1 -1
  27. package/dist/types/current/drm/commonEme/CommonEme.d.ts +2 -2
  28. package/dist/types/current/drm/commonEme/CommonEme.d.ts.map +1 -1
  29. package/dist/types/current/drm/commonEme/CommonEmeFactory.d.ts +1 -1
  30. package/dist/types/current/drm/commonEme/CommonEmeFactory.d.ts.map +1 -1
  31. package/dist/types/current/drm/commonEme/MsCommonEme.d.ts +1 -1
  32. package/dist/types/current/drm/commonEme/MsCommonEme.d.ts.map +1 -1
  33. package/dist/types/current/drm/commonEme/MsCommonEme.js +1 -1
  34. package/dist/types/current/drm/commonEme/StandardCommonEme.d.ts +1 -1
  35. package/dist/types/current/drm/commonEme/StandardCommonEme.d.ts.map +1 -1
  36. package/dist/types/current/drm/commonEme/WebKitCommonEme.d.ts +2 -2
  37. package/dist/types/current/drm/commonEme/WebKitCommonEme.d.ts.map +1 -1
  38. package/dist/types/current/drm/commonEme/WebKitCommonEme.js +1 -1
  39. package/dist/types/current/drm/commonEme/createDrmErrorHandler.js +1 -1
  40. package/dist/types/current/drm/licenseProvider/LicenseProvider.d.ts +1 -1
  41. package/dist/types/current/drm/licenseProvider/LicenseProvider.d.ts.map +1 -1
  42. package/dist/types/current/global/environment.d.ts +6 -2
  43. package/dist/types/current/global/environment.d.ts.map +1 -1
  44. package/dist/types/current/global/environment.js +4 -3
  45. package/dist/types/current/global/initializeVinylGlobal.js +1 -1
  46. package/dist/types/current/patch/media/MediaElementPatchOptions.js +1 -1
  47. package/dist/types/current/patch/media/patchMediaElement.js +1 -1
  48. package/dist/types/current/patch/media/patches/createPreventStallsPatch.d.ts +1 -1
  49. package/dist/types/current/patch/media/patches/createPreventStallsPatch.d.ts.map +1 -1
  50. package/dist/types/current/patch/media/patches/createUnreliablePlaybackEventsPatch.d.ts +1 -1
  51. package/dist/types/current/patch/media/patches/createUnreliablePlaybackEventsPatch.d.ts.map +1 -1
  52. package/dist/types/current/playback/PlaybackControllerImpl.d.ts +1 -1
  53. package/dist/types/current/playback/PlaybackControllerImpl.d.ts.map +1 -1
  54. package/dist/types/current/playback/PlaybackControllerImpl.js +4 -4
  55. package/dist/types/current/playback/ReadonlyPlaybackController.d.ts.map +1 -1
  56. package/dist/types/current/playback/error/ReportableMediaError.js +1 -1
  57. package/dist/types/current/playback/logging/playbackStateLoggingHandler.d.ts +1 -1
  58. package/dist/types/current/playback/logging/playbackStateLoggingHandler.d.ts.map +1 -1
  59. package/dist/types/current/playback/logging/playbackStateLoggingHandler.js +1 -1
  60. package/dist/types/current/playback/nextHasMetadata.d.ts +1 -1
  61. package/dist/types/current/playback/nextHasMetadata.d.ts.map +1 -1
  62. package/dist/types/current/streaming/ContentStream.d.ts +4 -4
  63. package/dist/types/current/streaming/ContentStream.d.ts.map +1 -1
  64. package/dist/types/current/streaming/ContentStreamingOptions.d.ts +2 -2
  65. package/dist/types/current/streaming/ContentStreamingOptions.d.ts.map +1 -1
  66. package/dist/types/current/streaming/MediaQualityMetadata.d.ts +2 -2
  67. package/dist/types/current/streaming/MediaQualityMetadata.d.ts.map +1 -1
  68. package/dist/types/current/streaming/MediaQualityMetadata.js +1 -1
  69. package/dist/types/current/streaming/MediaTimeline.d.ts +6 -5
  70. package/dist/types/current/streaming/MediaTimeline.d.ts.map +1 -1
  71. package/dist/types/current/streaming/SegmentController.d.ts +2 -7
  72. package/dist/types/current/streaming/SegmentController.d.ts.map +1 -1
  73. package/dist/types/current/streaming/SegmentControllerImpl.d.ts +5 -6
  74. package/dist/types/current/streaming/SegmentControllerImpl.d.ts.map +1 -1
  75. package/dist/types/current/streaming/SegmentControllerImpl.js +5 -15
  76. package/dist/types/current/streaming/SegmentReference.d.ts +1 -1
  77. package/dist/types/current/streaming/SegmentReference.d.ts.map +1 -1
  78. package/dist/types/current/streaming/StreamingEventMap.d.ts +1 -1
  79. package/dist/types/current/streaming/StreamingEventMap.d.ts.map +1 -1
  80. package/dist/types/current/streaming/abr/QualitySelector.d.ts +1 -1
  81. package/dist/types/current/streaming/abr/QualitySelector.d.ts.map +1 -1
  82. package/dist/types/current/streaming/abr/QualitySelectorImpl.d.ts +18 -3
  83. package/dist/types/current/streaming/abr/QualitySelectorImpl.d.ts.map +1 -1
  84. package/dist/types/current/streaming/abr/QualitySelectorImpl.js +8 -2
  85. package/dist/types/current/streaming/buffering/BufferingController.d.ts +3 -13
  86. package/dist/types/current/streaming/buffering/BufferingController.d.ts.map +1 -1
  87. package/dist/types/current/streaming/buffering/BufferingController.js +1 -24
  88. package/dist/types/current/streaming/buffering/MediaSourceController.d.ts +41 -15
  89. package/dist/types/current/streaming/buffering/MediaSourceController.d.ts.map +1 -1
  90. package/dist/types/current/streaming/buffering/MediaSourceController.js +74 -17
  91. package/dist/types/current/streaming/buffering/SourceBufferController.d.ts +1 -1
  92. package/dist/types/current/streaming/buffering/SourceBufferController.d.ts.map +1 -1
  93. package/dist/types/current/streaming/createDefaultMediaTimelineTransformer.d.ts +1 -1
  94. package/dist/types/current/streaming/createDefaultMediaTimelineTransformer.d.ts.map +1 -1
  95. package/dist/types/current/streaming/createDefaultMediaTimelineTransformer.js +2 -2
  96. package/dist/types/current/streaming/mediaTimelineFilter.d.ts +3 -3
  97. package/dist/types/current/streaming/mediaTimelineFilter.d.ts.map +1 -1
  98. package/dist/types/current/streaming/mediaTimelineFilter.js +1 -1
  99. package/dist/types/current/streaming/mediaTimelineLanguageFilter.d.ts +1 -1
  100. package/dist/types/current/streaming/mediaTimelineLanguageFilter.d.ts.map +1 -1
  101. package/dist/types/current/streaming/util/segment.d.ts +1 -1
  102. package/dist/types/current/streaming/util/segment.d.ts.map +1 -1
  103. package/dist/types/current/track/AutoResetController.d.ts +37 -12
  104. package/dist/types/current/track/AutoResetController.d.ts.map +1 -1
  105. package/dist/types/current/track/AutoResetController.js +38 -28
  106. package/dist/types/current/track/Track.d.ts.map +1 -1
  107. package/dist/types/current/track/TrackBase.d.ts.map +1 -1
  108. package/dist/types/current/track/TrackController.d.ts +2 -2
  109. package/dist/types/current/track/TrackController.d.ts.map +1 -1
  110. package/dist/types/current/track/TrackFactory.d.ts +1 -1
  111. package/dist/types/current/track/TrackFactory.d.ts.map +1 -1
  112. package/dist/types/current/track/createSegmentDataProvider.d.ts.map +1 -1
  113. package/dist/types/current/track/createVinylTrackFactories.d.ts +5 -5
  114. package/dist/types/current/track/createVinylTrackFactories.d.ts.map +1 -1
  115. package/dist/types/current/track/createVinylTrackFactories.js +4 -4
  116. package/dist/types/current/track/dash/DashManifestController.d.ts +1 -1
  117. package/dist/types/current/track/dash/DashManifestController.d.ts.map +1 -1
  118. package/dist/types/current/track/dash/DashMediaQualityMetadataResolver.d.ts.map +1 -1
  119. package/dist/types/current/track/dash/DashMediaQualityMetadataResolver.js +1 -1
  120. package/dist/types/current/track/dash/DashTrack.d.ts +4 -4
  121. package/dist/types/current/track/dash/DashTrack.d.ts.map +1 -1
  122. package/dist/types/current/track/dash/DashTrack.js +2 -2
  123. package/dist/types/current/track/dash/buildDashMediaTimeline.d.ts +2 -2
  124. package/dist/types/current/track/dash/buildDashMediaTimeline.d.ts.map +1 -1
  125. package/dist/types/current/track/dash/buildDashMediaTimeline.js +2 -2
  126. package/dist/types/current/track/dash/createDashContentStreamFactories.d.ts.map +1 -1
  127. package/dist/types/current/track/dash/createDashContentTypesValue.d.ts +2 -2
  128. package/dist/types/current/track/dash/createDashContentTypesValue.d.ts.map +1 -1
  129. package/dist/types/current/track/dash/createDashContentTypesValue.js +1 -1
  130. package/dist/types/current/track/dash/createDashFactories.d.ts +12 -12
  131. package/dist/types/current/track/dash/createDashFactories.d.ts.map +1 -1
  132. package/dist/types/current/track/dash/createDashFactories.js +8 -8
  133. package/dist/types/current/track/dash/createDashManifestProvider.d.ts +1 -1
  134. package/dist/types/current/track/dash/createDashManifestProvider.d.ts.map +1 -1
  135. package/dist/types/current/track/dash/createDashManifestProvider.js +1 -1
  136. package/dist/types/current/track/dash/createDefaultDashManifestTransformer.d.ts +1 -1
  137. package/dist/types/current/track/dash/createDefaultDashManifestTransformer.d.ts.map +1 -1
  138. package/dist/types/current/track/dash/createDefaultDashManifestTransformer.js +1 -1
  139. package/dist/types/current/track/dash/createSegmentControllerFactory.d.ts.map +1 -1
  140. package/dist/types/current/track/dash/manifestTransformUtils.d.ts +1 -1
  141. package/dist/types/current/track/dash/manifestTransformUtils.d.ts.map +1 -1
  142. package/dist/types/current/track/dash/timeline/DashRepresentationSegmentProvider.d.ts +3 -3
  143. package/dist/types/current/track/dash/timeline/DashRepresentationSegmentProvider.d.ts.map +1 -1
  144. package/dist/types/current/track/dash/timeline/DashRepresentationSegmentProvider.js +3 -3
  145. package/dist/types/current/track/dash/urlDashManifestProvider.d.ts +1 -1
  146. package/dist/types/current/track/dash/urlDashManifestProvider.d.ts.map +1 -1
  147. package/dist/types/current/track/dash/util/mimeType.d.ts.map +1 -1
  148. package/dist/types/current/track/dash/util/mimeType.js +1 -1
  149. package/dist/types/current/track/dash/util/mpd.d.ts +3 -2
  150. package/dist/types/current/track/dash/util/mpd.d.ts.map +1 -1
  151. package/dist/types/current/track/dash/util/mpd.js +13 -3
  152. package/dist/types/current/track/dash/util/uriResolution.js +1 -1
  153. package/dist/types/current/track/filters/keySystemFilter.d.ts.map +1 -1
  154. package/dist/types/current/track/filters/resourceTypeFilter.d.ts.map +1 -1
  155. package/dist/types/current/track/filters/sampleRateFilter.d.ts.map +1 -1
  156. package/dist/types/current/track/hls/HlsTrack.d.ts.map +1 -1
  157. package/dist/types/current/track/hls/buildHlsMediaTimeline.d.ts +3 -3
  158. package/dist/types/current/track/hls/buildHlsMediaTimeline.d.ts.map +1 -1
  159. package/dist/types/current/track/hls/buildHlsMediaTimeline.js +16 -14
  160. package/dist/types/current/track/hls/createDefaultHlsManifestTransformer.d.ts +1 -1
  161. package/dist/types/current/track/hls/createDefaultHlsManifestTransformer.d.ts.map +1 -1
  162. package/dist/types/current/track/hls/createHlsContentStreamFactories.d.ts.map +1 -1
  163. package/dist/types/current/track/hls/util/hlsSegmentTime.d.ts +1 -1
  164. package/dist/types/current/track/hls/util/hlsSegmentTime.d.ts.map +1 -1
  165. package/dist/types/current/track/hls/util/hlsSegmentTime.js +1 -1
  166. package/dist/types/current/track/mse/MseTrack.d.ts +2 -2
  167. package/dist/types/current/track/mse/MseTrack.d.ts.map +1 -1
  168. package/dist/types/current/track/mse/MseTrack.js +2 -1
  169. package/dist/types/current/track/mse/codec.d.ts.map +1 -1
  170. package/dist/types/current/track/source/FixedPlaybackQuality.d.ts +1 -1
  171. package/dist/types/current/track/source/FixedPlaybackQuality.d.ts.map +1 -1
  172. package/dist/types/current/track/source/SourceObjectTrack.d.ts +4 -4
  173. package/dist/types/current/track/source/SourceObjectTrack.d.ts.map +1 -1
  174. package/dist/types/current/track/source/SourceObjectTrack.js +2 -2
  175. package/dist/types/current/track/source/SourceTrack.d.ts +4 -4
  176. package/dist/types/current/track/source/SourceTrack.d.ts.map +1 -1
  177. package/dist/types/current/track/source/SourceTrack.js +2 -2
  178. package/dist/types/current/track/source/SourceTrackBase.d.ts +2 -2
  179. package/dist/types/current/track/source/SourceTrackBase.d.ts.map +1 -1
  180. package/dist/types/current/track/source/SourceTrackBase.js +2 -2
  181. package/dist/types/current/tsconfig.tsbuildinfo +1 -1
  182. package/dist/types/current/vinyl/ReadonlyPlaybackStreamingState.d.ts.map +1 -1
  183. package/dist/types/current/vinyl/VinylDeps.d.ts +1 -1
  184. package/dist/types/current/vinyl/VinylDeps.d.ts.map +1 -1
  185. package/dist/types/current/vinyl/VinylOptions.d.ts.map +1 -1
  186. package/dist/types/current/vinyl/VinylPatchOptions.d.ts.map +1 -1
  187. package/dist/types/current/vinyl/VinylPlayer.d.ts +26 -2
  188. package/dist/types/current/vinyl/VinylPlayer.d.ts.map +1 -1
  189. package/dist/types/current/vinyl/VinylPlayer.js +18 -3
  190. package/dist/types/current/vinyl/createVinylFactories.d.ts +9 -11
  191. package/dist/types/current/vinyl/createVinylFactories.d.ts.map +1 -1
  192. package/dist/types/current/vinyl/createVinylFactories.js +2 -2
  193. package/dist/types/ts3.7/drm/DrmController.d.ts +2 -2
  194. package/dist/types/ts3.7/drm/DrmControllerImpl.d.ts +3 -3
  195. package/dist/types/ts3.7/drm/DrmKeySystemResolver.d.ts +1 -1
  196. package/dist/types/ts3.7/drm/DrmOptions.d.ts +1 -1
  197. package/dist/types/ts3.7/drm/commonEme/CommonEme.d.ts +2 -2
  198. package/dist/types/ts3.7/drm/commonEme/CommonEmeFactory.d.ts +1 -1
  199. package/dist/types/ts3.7/drm/commonEme/MsCommonEme.d.ts +1 -1
  200. package/dist/types/ts3.7/drm/commonEme/StandardCommonEme.d.ts +1 -1
  201. package/dist/types/ts3.7/drm/commonEme/WebKitCommonEme.d.ts +2 -2
  202. package/dist/types/ts3.7/drm/licenseProvider/LicenseProvider.d.ts +1 -1
  203. package/dist/types/ts3.7/global/environment.d.ts +6 -2
  204. package/dist/types/ts3.7/patch/media/patches/createPreventStallsPatch.d.ts +1 -1
  205. package/dist/types/ts3.7/patch/media/patches/createUnreliablePlaybackEventsPatch.d.ts +1 -1
  206. package/dist/types/ts3.7/playback/PlaybackControllerImpl.d.ts +1 -1
  207. package/dist/types/ts3.7/playback/logging/playbackStateLoggingHandler.d.ts +1 -1
  208. package/dist/types/ts3.7/playback/nextHasMetadata.d.ts +1 -1
  209. package/dist/types/ts3.7/streaming/ContentStream.d.ts +4 -4
  210. package/dist/types/ts3.7/streaming/ContentStreamingOptions.d.ts +2 -2
  211. package/dist/types/ts3.7/streaming/MediaQualityMetadata.d.ts +2 -2
  212. package/dist/types/ts3.7/streaming/MediaTimeline.d.ts +6 -5
  213. package/dist/types/ts3.7/streaming/SegmentController.d.ts +2 -7
  214. package/dist/types/ts3.7/streaming/SegmentControllerImpl.d.ts +5 -6
  215. package/dist/types/ts3.7/streaming/SegmentReference.d.ts +1 -1
  216. package/dist/types/ts3.7/streaming/StreamingEventMap.d.ts +1 -1
  217. package/dist/types/ts3.7/streaming/abr/QualitySelector.d.ts +1 -1
  218. package/dist/types/ts3.7/streaming/abr/QualitySelectorImpl.d.ts +18 -3
  219. package/dist/types/ts3.7/streaming/buffering/BufferingController.d.ts +3 -13
  220. package/dist/types/ts3.7/streaming/buffering/MediaSourceController.d.ts +41 -15
  221. package/dist/types/ts3.7/streaming/buffering/SourceBufferController.d.ts +1 -1
  222. package/dist/types/ts3.7/streaming/createDefaultMediaTimelineTransformer.d.ts +1 -1
  223. package/dist/types/ts3.7/streaming/mediaTimelineFilter.d.ts +3 -3
  224. package/dist/types/ts3.7/streaming/mediaTimelineLanguageFilter.d.ts +1 -1
  225. package/dist/types/ts3.7/streaming/util/segment.d.ts +1 -1
  226. package/dist/types/ts3.7/track/AutoResetController.d.ts +37 -12
  227. package/dist/types/ts3.7/track/TrackController.d.ts +2 -2
  228. package/dist/types/ts3.7/track/TrackFactory.d.ts +1 -1
  229. package/dist/types/ts3.7/track/createVinylTrackFactories.d.ts +5 -5
  230. package/dist/types/ts3.7/track/dash/DashManifestController.d.ts +1 -1
  231. package/dist/types/ts3.7/track/dash/DashTrack.d.ts +4 -4
  232. package/dist/types/ts3.7/track/dash/buildDashMediaTimeline.d.ts +2 -2
  233. package/dist/types/ts3.7/track/dash/createDashContentTypesValue.d.ts +2 -2
  234. package/dist/types/ts3.7/track/dash/createDashFactories.d.ts +12 -12
  235. package/dist/types/ts3.7/track/dash/createDashManifestProvider.d.ts +1 -1
  236. package/dist/types/ts3.7/track/dash/createDefaultDashManifestTransformer.d.ts +1 -1
  237. package/dist/types/ts3.7/track/dash/manifestTransformUtils.d.ts +1 -1
  238. package/dist/types/ts3.7/track/dash/timeline/DashRepresentationSegmentProvider.d.ts +3 -3
  239. package/dist/types/ts3.7/track/dash/urlDashManifestProvider.d.ts +1 -1
  240. package/dist/types/ts3.7/track/dash/util/mpd.d.ts +3 -2
  241. package/dist/types/ts3.7/track/hls/buildHlsMediaTimeline.d.ts +3 -3
  242. package/dist/types/ts3.7/track/hls/createDefaultHlsManifestTransformer.d.ts +1 -1
  243. package/dist/types/ts3.7/track/hls/util/hlsSegmentTime.d.ts +1 -1
  244. package/dist/types/ts3.7/track/mse/MseTrack.d.ts +2 -2
  245. package/dist/types/ts3.7/track/source/FixedPlaybackQuality.d.ts +1 -1
  246. package/dist/types/ts3.7/track/source/SourceObjectTrack.d.ts +4 -4
  247. package/dist/types/ts3.7/track/source/SourceTrack.d.ts +4 -4
  248. package/dist/types/ts3.7/track/source/SourceTrackBase.d.ts +2 -2
  249. package/dist/types/ts3.7/vinyl/VinylDeps.d.ts +1 -1
  250. package/dist/types/ts3.7/vinyl/VinylPlayer.d.ts +18 -2
  251. package/dist/types/ts3.7/vinyl/createVinylFactories.d.ts +9 -11
  252. package/dist/types/ts4.1/drm/DrmController.d.ts +2 -2
  253. package/dist/types/ts4.1/drm/DrmControllerImpl.d.ts +3 -3
  254. package/dist/types/ts4.1/drm/DrmKeySystemResolver.d.ts +1 -1
  255. package/dist/types/ts4.1/drm/DrmOptions.d.ts +1 -1
  256. package/dist/types/ts4.1/drm/commonEme/CommonEme.d.ts +2 -2
  257. package/dist/types/ts4.1/drm/commonEme/CommonEmeFactory.d.ts +1 -1
  258. package/dist/types/ts4.1/drm/commonEme/MsCommonEme.d.ts +1 -1
  259. package/dist/types/ts4.1/drm/commonEme/StandardCommonEme.d.ts +1 -1
  260. package/dist/types/ts4.1/drm/commonEme/WebKitCommonEme.d.ts +2 -2
  261. package/dist/types/ts4.1/drm/licenseProvider/LicenseProvider.d.ts +1 -1
  262. package/dist/types/ts4.1/global/environment.d.ts +6 -2
  263. package/dist/types/ts4.1/patch/media/patches/createPreventStallsPatch.d.ts +1 -1
  264. package/dist/types/ts4.1/patch/media/patches/createUnreliablePlaybackEventsPatch.d.ts +1 -1
  265. package/dist/types/ts4.1/playback/PlaybackControllerImpl.d.ts +1 -1
  266. package/dist/types/ts4.1/playback/logging/playbackStateLoggingHandler.d.ts +1 -1
  267. package/dist/types/ts4.1/playback/nextHasMetadata.d.ts +1 -1
  268. package/dist/types/ts4.1/streaming/ContentStream.d.ts +4 -4
  269. package/dist/types/ts4.1/streaming/ContentStreamingOptions.d.ts +2 -2
  270. package/dist/types/ts4.1/streaming/MediaQualityMetadata.d.ts +2 -2
  271. package/dist/types/ts4.1/streaming/MediaTimeline.d.ts +6 -5
  272. package/dist/types/ts4.1/streaming/SegmentController.d.ts +2 -7
  273. package/dist/types/ts4.1/streaming/SegmentControllerImpl.d.ts +5 -6
  274. package/dist/types/ts4.1/streaming/SegmentReference.d.ts +1 -1
  275. package/dist/types/ts4.1/streaming/StreamingEventMap.d.ts +1 -1
  276. package/dist/types/ts4.1/streaming/abr/QualitySelector.d.ts +1 -1
  277. package/dist/types/ts4.1/streaming/abr/QualitySelectorImpl.d.ts +18 -3
  278. package/dist/types/ts4.1/streaming/buffering/BufferingController.d.ts +3 -13
  279. package/dist/types/ts4.1/streaming/buffering/MediaSourceController.d.ts +41 -15
  280. package/dist/types/ts4.1/streaming/buffering/SourceBufferController.d.ts +1 -1
  281. package/dist/types/ts4.1/streaming/createDefaultMediaTimelineTransformer.d.ts +1 -1
  282. package/dist/types/ts4.1/streaming/mediaTimelineFilter.d.ts +3 -3
  283. package/dist/types/ts4.1/streaming/mediaTimelineLanguageFilter.d.ts +1 -1
  284. package/dist/types/ts4.1/streaming/util/segment.d.ts +1 -1
  285. package/dist/types/ts4.1/track/AutoResetController.d.ts +37 -12
  286. package/dist/types/ts4.1/track/TrackController.d.ts +2 -2
  287. package/dist/types/ts4.1/track/TrackFactory.d.ts +1 -1
  288. package/dist/types/ts4.1/track/createVinylTrackFactories.d.ts +5 -5
  289. package/dist/types/ts4.1/track/dash/DashManifestController.d.ts +1 -1
  290. package/dist/types/ts4.1/track/dash/DashTrack.d.ts +4 -4
  291. package/dist/types/ts4.1/track/dash/buildDashMediaTimeline.d.ts +2 -2
  292. package/dist/types/ts4.1/track/dash/createDashContentTypesValue.d.ts +2 -2
  293. package/dist/types/ts4.1/track/dash/createDashFactories.d.ts +12 -12
  294. package/dist/types/ts4.1/track/dash/createDashManifestProvider.d.ts +1 -1
  295. package/dist/types/ts4.1/track/dash/createDefaultDashManifestTransformer.d.ts +1 -1
  296. package/dist/types/ts4.1/track/dash/manifestTransformUtils.d.ts +1 -1
  297. package/dist/types/ts4.1/track/dash/timeline/DashRepresentationSegmentProvider.d.ts +3 -3
  298. package/dist/types/ts4.1/track/dash/urlDashManifestProvider.d.ts +1 -1
  299. package/dist/types/ts4.1/track/dash/util/mpd.d.ts +3 -2
  300. package/dist/types/ts4.1/track/hls/buildHlsMediaTimeline.d.ts +3 -3
  301. package/dist/types/ts4.1/track/hls/createDefaultHlsManifestTransformer.d.ts +1 -1
  302. package/dist/types/ts4.1/track/hls/util/hlsSegmentTime.d.ts +1 -1
  303. package/dist/types/ts4.1/track/mse/MseTrack.d.ts +3 -3
  304. package/dist/types/ts4.1/track/source/FixedPlaybackQuality.d.ts +1 -1
  305. package/dist/types/ts4.1/track/source/SourceObjectTrack.d.ts +5 -5
  306. package/dist/types/ts4.1/track/source/SourceTrack.d.ts +5 -5
  307. package/dist/types/ts4.1/track/source/SourceTrackBase.d.ts +3 -3
  308. package/dist/types/ts4.1/vinyl/VinylDeps.d.ts +1 -1
  309. package/dist/types/ts4.1/vinyl/VinylPlayer.d.ts +18 -2
  310. package/dist/types/ts4.1/vinyl/createVinylFactories.d.ts +9 -11
  311. package/dist/types/ts4.7/drm/DrmController.d.ts +2 -2
  312. package/dist/types/ts4.7/drm/DrmControllerImpl.d.ts +3 -3
  313. package/dist/types/ts4.7/drm/DrmKeySystemResolver.d.ts +1 -1
  314. package/dist/types/ts4.7/drm/DrmOptions.d.ts +1 -1
  315. package/dist/types/ts4.7/drm/commonEme/CommonEme.d.ts +2 -2
  316. package/dist/types/ts4.7/drm/commonEme/CommonEmeFactory.d.ts +1 -1
  317. package/dist/types/ts4.7/drm/commonEme/MsCommonEme.d.ts +1 -1
  318. package/dist/types/ts4.7/drm/commonEme/StandardCommonEme.d.ts +1 -1
  319. package/dist/types/ts4.7/drm/commonEme/WebKitCommonEme.d.ts +2 -2
  320. package/dist/types/ts4.7/drm/licenseProvider/LicenseProvider.d.ts +1 -1
  321. package/dist/types/ts4.7/global/environment.d.ts +6 -2
  322. package/dist/types/ts4.7/patch/media/patches/createPreventStallsPatch.d.ts +1 -1
  323. package/dist/types/ts4.7/patch/media/patches/createUnreliablePlaybackEventsPatch.d.ts +1 -1
  324. package/dist/types/ts4.7/playback/PlaybackControllerImpl.d.ts +1 -1
  325. package/dist/types/ts4.7/playback/logging/playbackStateLoggingHandler.d.ts +1 -1
  326. package/dist/types/ts4.7/playback/nextHasMetadata.d.ts +1 -1
  327. package/dist/types/ts4.7/streaming/ContentStream.d.ts +4 -4
  328. package/dist/types/ts4.7/streaming/ContentStreamingOptions.d.ts +2 -2
  329. package/dist/types/ts4.7/streaming/MediaQualityMetadata.d.ts +2 -2
  330. package/dist/types/ts4.7/streaming/MediaTimeline.d.ts +6 -5
  331. package/dist/types/ts4.7/streaming/SegmentController.d.ts +2 -7
  332. package/dist/types/ts4.7/streaming/SegmentControllerImpl.d.ts +5 -6
  333. package/dist/types/ts4.7/streaming/SegmentReference.d.ts +1 -1
  334. package/dist/types/ts4.7/streaming/StreamingEventMap.d.ts +1 -1
  335. package/dist/types/ts4.7/streaming/abr/QualitySelector.d.ts +1 -1
  336. package/dist/types/ts4.7/streaming/abr/QualitySelectorImpl.d.ts +18 -3
  337. package/dist/types/ts4.7/streaming/buffering/BufferingController.d.ts +3 -13
  338. package/dist/types/ts4.7/streaming/buffering/MediaSourceController.d.ts +41 -15
  339. package/dist/types/ts4.7/streaming/buffering/SourceBufferController.d.ts +1 -1
  340. package/dist/types/ts4.7/streaming/createDefaultMediaTimelineTransformer.d.ts +1 -1
  341. package/dist/types/ts4.7/streaming/mediaTimelineFilter.d.ts +3 -3
  342. package/dist/types/ts4.7/streaming/mediaTimelineLanguageFilter.d.ts +1 -1
  343. package/dist/types/ts4.7/streaming/util/segment.d.ts +1 -1
  344. package/dist/types/ts4.7/track/AutoResetController.d.ts +37 -12
  345. package/dist/types/ts4.7/track/TrackController.d.ts +2 -2
  346. package/dist/types/ts4.7/track/TrackFactory.d.ts +1 -1
  347. package/dist/types/ts4.7/track/createVinylTrackFactories.d.ts +5 -5
  348. package/dist/types/ts4.7/track/dash/DashManifestController.d.ts +1 -1
  349. package/dist/types/ts4.7/track/dash/DashTrack.d.ts +4 -4
  350. package/dist/types/ts4.7/track/dash/buildDashMediaTimeline.d.ts +2 -2
  351. package/dist/types/ts4.7/track/dash/createDashContentTypesValue.d.ts +2 -2
  352. package/dist/types/ts4.7/track/dash/createDashFactories.d.ts +12 -12
  353. package/dist/types/ts4.7/track/dash/createDashManifestProvider.d.ts +1 -1
  354. package/dist/types/ts4.7/track/dash/createDefaultDashManifestTransformer.d.ts +1 -1
  355. package/dist/types/ts4.7/track/dash/manifestTransformUtils.d.ts +1 -1
  356. package/dist/types/ts4.7/track/dash/timeline/DashRepresentationSegmentProvider.d.ts +3 -3
  357. package/dist/types/ts4.7/track/dash/urlDashManifestProvider.d.ts +1 -1
  358. package/dist/types/ts4.7/track/dash/util/mpd.d.ts +3 -2
  359. package/dist/types/ts4.7/track/hls/buildHlsMediaTimeline.d.ts +3 -3
  360. package/dist/types/ts4.7/track/hls/createDefaultHlsManifestTransformer.d.ts +1 -1
  361. package/dist/types/ts4.7/track/hls/util/hlsSegmentTime.d.ts +1 -1
  362. package/dist/types/ts4.7/track/mse/MseTrack.d.ts +2 -2
  363. package/dist/types/ts4.7/track/source/FixedPlaybackQuality.d.ts +1 -1
  364. package/dist/types/ts4.7/track/source/SourceObjectTrack.d.ts +4 -4
  365. package/dist/types/ts4.7/track/source/SourceTrack.d.ts +4 -4
  366. package/dist/types/ts4.7/track/source/SourceTrackBase.d.ts +2 -2
  367. package/dist/types/ts4.7/vinyl/VinylDeps.d.ts +1 -1
  368. package/dist/types/ts4.7/vinyl/VinylPlayer.d.ts +26 -2
  369. package/dist/types/ts4.7/vinyl/createVinylFactories.d.ts +9 -11
  370. package/dist/unit/types/current/streaming/MediaTimeline.test.js +6 -1
  371. package/dist/unit/types/current/streaming/MseTrack.test.js +4 -0
  372. package/dist/unit/types/current/streaming/SegmentControllerImpl.test.js +3 -33
  373. package/dist/unit/types/current/streaming/abr/QualitySelectorImpl.test.js +73 -0
  374. package/dist/unit/types/current/streaming/buffering/BufferingController.test.js +1 -41
  375. package/dist/unit/types/current/streaming/buffering/MediaSourceController.test.js +97 -17
  376. package/dist/unit/types/current/streaming/createDefaultMediaTimelineTransformer.test.js +6 -0
  377. package/dist/unit/types/current/streaming/mediaTimelineFilter.test.js +2 -0
  378. package/dist/unit/types/current/streaming/mediaTimelineLanguageFilter.test.js +7 -0
  379. package/dist/unit/types/current/track/AutoResetController.test.js +134 -22
  380. package/dist/unit/types/current/track/dash/createDashContentStreamFactories.test.js +5 -1
  381. package/dist/unit/types/current/track/dash/createSegmentControllerFactory.test.js +5 -1
  382. package/dist/unit/types/current/track/dash/util/mpd.test.js +29 -0
  383. package/dist/unit/types/current/track/hls/buildHlsMediaTimeline.test.js +16 -8
  384. package/dist/unit/types/current/track/hls/createHlsContentStreamFactories.test.js +5 -1
  385. package/dist/unit/types/current/tsconfig.tsbuildinfo +1 -1
  386. package/dist/unit/types/current/vinyl/VinylPlayer.test.js +35 -0
  387. package/dist/vinylTestUtil/index.js +20 -14
  388. package/dist/vinylTestUtil/index.js.map +2 -2
  389. package/dist/vinylTestUtil/types/current/media/FrequencyAnalyzer.js +1 -1
  390. package/dist/vinylTestUtil/types/current/mediaSource/ControlledMediaSource.d.ts.map +1 -1
  391. package/dist/vinylTestUtil/types/current/mock/dash/mockDashManifest.d.ts +12 -12
  392. package/dist/vinylTestUtil/types/current/mock/dom/ms/MockMSMediaKeySession.d.ts +2 -2
  393. package/dist/vinylTestUtil/types/current/mock/dom/webkit/MockWebKitMediaKeySession.d.ts +2 -2
  394. package/dist/vinylTestUtil/types/current/mock/player/MockVinylPlayerDependencies.d.ts +6 -6
  395. package/dist/vinylTestUtil/types/current/mock/player/MockVinylPlayerDependencies.d.ts.map +1 -1
  396. package/dist/vinylTestUtil/types/current/mock/player/MockVinylPlayerDependencies.js +7 -7
  397. package/dist/vinylTestUtil/types/current/mock/streaming/MockSegmentController.d.ts +0 -1
  398. package/dist/vinylTestUtil/types/current/mock/streaming/MockSegmentController.d.ts.map +1 -1
  399. package/dist/vinylTestUtil/types/current/mock/streaming/MockSegmentController.js +0 -1
  400. package/dist/vinylTestUtil/types/current/mock/streaming/buffering/MockMediaSourceController.d.ts +0 -1
  401. package/dist/vinylTestUtil/types/current/mock/streaming/buffering/MockMediaSourceController.d.ts.map +1 -1
  402. package/dist/vinylTestUtil/types/current/mock/streaming/buffering/MockMediaSourceController.js +0 -1
  403. package/dist/vinylTestUtil/types/current/mock/track/MockAutoResetController.d.ts +1 -0
  404. package/dist/vinylTestUtil/types/current/mock/track/MockAutoResetController.d.ts.map +1 -1
  405. package/dist/vinylTestUtil/types/current/mock/track/MockAutoResetController.js +1 -0
  406. package/dist/vinylTestUtil/types/current/mock/track/dash/createMockDashDependencies.d.ts +5 -5
  407. package/dist/vinylTestUtil/types/current/mock/track/dash/createMockDashDependencies.d.ts.map +1 -1
  408. package/dist/vinylTestUtil/types/current/mock/track/dash/createMockDashDependencies.js +11 -7
  409. package/dist/vinylTestUtil/types/current/mock/track/hls/createMockHlsDependencies.d.ts +5 -5
  410. package/dist/vinylTestUtil/types/current/mock/track/hls/createMockHlsDependencies.d.ts.map +1 -1
  411. package/dist/vinylTestUtil/types/current/mock/track/hls/createMockHlsDependencies.js +11 -7
  412. package/dist/vinylTestUtil/types/current/player/createVinylSuite.js +1 -1
  413. package/dist/vinylTestUtil/types/current/tsconfig.tsbuildinfo +1 -1
  414. package/dist/vinylTestUtil/types/current/util/playback/expectTrackCanSeek.js +1 -1
  415. package/dist/vinylTestUtil/types/current/util/playback/expectTrackPlays.js +2 -2
  416. package/dist/vinylTestUtil/types/current/util/playback/expectTrackPlaysUntil.d.ts.map +1 -1
  417. package/dist/vinylTestUtil/types/current/util/playback/expectTrackPlaysUntil.js +1 -2
  418. package/dist/vinylTestUtil/types/ts3.7/mock/dash/mockDashManifest.d.ts +12 -12
  419. package/dist/vinylTestUtil/types/ts3.7/mock/dom/ms/MockMSMediaKeySession.d.ts +2 -2
  420. package/dist/vinylTestUtil/types/ts3.7/mock/dom/webkit/MockWebKitMediaKeySession.d.ts +2 -2
  421. package/dist/vinylTestUtil/types/ts3.7/mock/player/MockVinylPlayerDependencies.d.ts +6 -6
  422. package/dist/vinylTestUtil/types/ts3.7/mock/streaming/MockSegmentController.d.ts +0 -1
  423. package/dist/vinylTestUtil/types/ts3.7/mock/streaming/buffering/MockMediaSourceController.d.ts +0 -1
  424. package/dist/vinylTestUtil/types/ts3.7/mock/track/MockAutoResetController.d.ts +1 -0
  425. package/dist/vinylTestUtil/types/ts3.7/mock/track/dash/createMockDashDependencies.d.ts +5 -5
  426. package/dist/vinylTestUtil/types/ts3.7/mock/track/hls/createMockHlsDependencies.d.ts +5 -5
  427. package/dist/vinylTestUtil/types/ts4.1/mock/dash/mockDashManifest.d.ts +12 -12
  428. package/dist/vinylTestUtil/types/ts4.1/mock/dom/ms/MockMSMediaKeySession.d.ts +2 -2
  429. package/dist/vinylTestUtil/types/ts4.1/mock/dom/webkit/MockWebKitMediaKeySession.d.ts +2 -2
  430. package/dist/vinylTestUtil/types/ts4.1/mock/player/MockVinylPlayerDependencies.d.ts +6 -6
  431. package/dist/vinylTestUtil/types/ts4.1/mock/streaming/MockSegmentController.d.ts +0 -1
  432. package/dist/vinylTestUtil/types/ts4.1/mock/streaming/buffering/MockMediaSourceController.d.ts +0 -1
  433. package/dist/vinylTestUtil/types/ts4.1/mock/track/MockAutoResetController.d.ts +1 -0
  434. package/dist/vinylTestUtil/types/ts4.1/mock/track/dash/createMockDashDependencies.d.ts +5 -5
  435. package/dist/vinylTestUtil/types/ts4.1/mock/track/hls/createMockHlsDependencies.d.ts +5 -5
  436. package/dist/vinylTestUtil/types/ts4.7/mock/dash/mockDashManifest.d.ts +12 -12
  437. package/dist/vinylTestUtil/types/ts4.7/mock/dom/ms/MockMSMediaKeySession.d.ts +2 -2
  438. package/dist/vinylTestUtil/types/ts4.7/mock/dom/webkit/MockWebKitMediaKeySession.d.ts +2 -2
  439. package/dist/vinylTestUtil/types/ts4.7/mock/player/MockVinylPlayerDependencies.d.ts +6 -6
  440. package/dist/vinylTestUtil/types/ts4.7/mock/streaming/MockSegmentController.d.ts +0 -1
  441. package/dist/vinylTestUtil/types/ts4.7/mock/streaming/buffering/MockMediaSourceController.d.ts +0 -1
  442. package/dist/vinylTestUtil/types/ts4.7/mock/track/MockAutoResetController.d.ts +1 -0
  443. package/dist/vinylTestUtil/types/ts4.7/mock/track/dash/createMockDashDependencies.d.ts +5 -5
  444. package/dist/vinylTestUtil/types/ts4.7/mock/track/hls/createMockHlsDependencies.d.ts +5 -5
  445. package/docs/USAGE.md +33 -0
  446. package/package.json +13 -15
@@ -18,7 +18,7 @@ import { LoudnessNormalizationControllerImpl } from '../playback/loudness/Loudne
18
18
  import { AutoResetControllerImpl, AutoResetControllerImplDeps, AutoResetControllerImplOptions } from '../track/AutoResetController';
19
19
  import { Dependencies, Factories } from '@amazon/vinyl-di';
20
20
  import { ContentStreamingOptions } from '../streaming/ContentStreamingOptions';
21
- import { VinylOptions } from '../vinyl/VinylOptions';
21
+ import { VinylOptions } from './VinylOptions';
22
22
  import { ObservableValue } from '@amazon/vinyl-observable';
23
23
  /**
24
24
  * Configuration used by the default dependency factories for Vinyl.
@@ -81,15 +81,13 @@ export declare function createVinylFactories(options: VinylDependencyOptions): {
81
81
  }) => LoudnessNormalizationControllerImpl;
82
82
  capabilities: (deps: CapabilitiesImplDeps) => CapabilitiesImpl;
83
83
  requestInterceptor: () => typeof noop;
84
- trackFactory: (deps: VinylTrackFactoryDeps) => import("../track/TrackFactory").TrackFactory<import("..").SourceObjectTrackLoadOptions | import("..").SourceTrackLoadOptions | import("..").DashTrackLoadOptions | import("..").HlsTrackLoadOptions>;
84
+ trackFactory: (deps: VinylTrackFactoryDeps) => import("..").TrackFactory<import("..").SourceObjectTrackLoadOptions | import("..").SourceTrackLoadOptions | import("..").DashTrackLoadOptions | import("..").HlsTrackLoadOptions>;
85
85
  trackController: (deps: TrackControllerImplDeps<any>) => TrackControllerImpl<any>;
86
- drmKeySystemResolver: () => import("../drm/DrmKeySystemResolver").DrmKeySystemResolver;
86
+ drmKeySystemResolver: () => import("..").DrmKeySystemResolver;
87
87
  drmController: (deps: DrmControllerImplDeps) => DrmControllerImpl;
88
88
  commonEme: typeof commonEmeFactory;
89
89
  autoResetController: (deps: AutoResetControllerImplDeps) => AutoResetControllerImpl;
90
- createDashFactories: (deps: import("../track/dash/createDashFactories").DashFactoryDeps) => (/**
91
- * Configuration for segmented streaming tracks (hls / dash).
92
- */ loadOptions: import("..").DashTrackLoadOptions) => {
90
+ createDashFactories: (deps: import("..").DashFactoryDeps) => (loadOptions: import("..").DashTrackLoadOptions) => {
93
91
  contentTypesValue: typeof import("..").createDashContentTypesValue;
94
92
  baseUrlSelector: () => import("..").BaseUrlSelector;
95
93
  segmentRequestInit: () => import("@amazon/vinyl-util").Maybe<Readonly<Omit<RequestInit, "signal">>>;
@@ -112,7 +110,7 @@ export declare function createVinylFactories(options: VinylDependencyOptions): {
112
110
  contentStreamFactory: typeof import("..").createContentStreamFactory;
113
111
  qualitySelector: (deps: {
114
112
  options: ObservableValue<Pick<VinylOptions, "abr">>;
115
- }) => import("../streaming/abr/QualitySelectorImpl").QualitySelectorImpl;
113
+ }) => import("..").QualitySelectorImpl;
116
114
  manifestTransformed: typeof import("..").createDefaultDashManifestTransformer;
117
115
  mediaTimeline: (deps: import("..").BuildDashMediaTimelineDeps & {
118
116
  readonly manifestTransformed: ObservableValue<Promise<import("..").DashManifestData>>;
@@ -124,12 +122,12 @@ export declare function createVinylFactories(options: VinylDependencyOptions): {
124
122
  }>>;
125
123
  playbackController: import("@amazon/vinyl-di").Factory<import("..").PlaybackController>;
126
124
  playbackSource: import("@amazon/vinyl-di").Factory<import("..").PlaybackSource>;
127
- drmKeySystemResolver: import("@amazon/vinyl-di").Factory<import("../drm/DrmKeySystemResolver").DrmKeySystemResolver>;
125
+ drmKeySystemResolver: import("@amazon/vinyl-di").Factory<import("..").DrmKeySystemResolver>;
128
126
  requestInterceptor: import("@amazon/vinyl-di").Factory<import("@amazon/vinyl-util").RequestInterceptor>;
129
127
  drmController: import("@amazon/vinyl-di").Factory<import("..").DrmController>;
130
128
  capabilities: import("@amazon/vinyl-di").Factory<import("..").Capabilities>;
131
129
  };
132
- createHlsFactories: (deps: import("../track/hls/createHlsFactories").HlsFactoryDeps) => (loadOptions: import("..").HlsTrackLoadOptions) => {
130
+ createHlsFactories: (deps: import("..").HlsFactoryDeps) => (loadOptions: import("..").HlsTrackLoadOptions) => {
133
131
  contentTypesValue: typeof import("..").createHlsContentTypesValue;
134
132
  manifestController: () => import("..").HlsManifestControllerImpl;
135
133
  manifestTransformed: typeof import("..").createDefaultHlsManifestTransformer;
@@ -149,7 +147,7 @@ export declare function createVinylFactories(options: VinylDependencyOptions): {
149
147
  contentStreamFactory: typeof import("..").createContentStreamFactory;
150
148
  qualitySelector: (deps: {
151
149
  options: ObservableValue<Pick<VinylOptions, "abr">>;
152
- }) => import("../streaming/abr/QualitySelectorImpl").QualitySelectorImpl;
150
+ }) => import("..").QualitySelectorImpl;
153
151
  mediaTimeline: (deps: import("..").BuildHlsMediaTimelineDeps & {
154
152
  readonly manifestTransformed: ObservableValue<Promise<import("..").HlsManifestData>>;
155
153
  }) => ObservableValue<Promise<import("..").MediaTimeline>>;
@@ -160,7 +158,7 @@ export declare function createVinylFactories(options: VinylDependencyOptions): {
160
158
  }>>;
161
159
  playbackController: import("@amazon/vinyl-di").Factory<import("..").PlaybackController>;
162
160
  playbackSource: import("@amazon/vinyl-di").Factory<import("..").PlaybackSource>;
163
- drmKeySystemResolver: import("@amazon/vinyl-di").Factory<import("../drm/DrmKeySystemResolver").DrmKeySystemResolver>;
161
+ drmKeySystemResolver: import("@amazon/vinyl-di").Factory<import("..").DrmKeySystemResolver>;
164
162
  requestInterceptor: import("@amazon/vinyl-di").Factory<import("@amazon/vinyl-util").RequestInterceptor>;
165
163
  drmController: import("@amazon/vinyl-di").Factory<import("..").DrmController>;
166
164
  capabilities: import("@amazon/vinyl-di").Factory<import("..").Capabilities>;
@@ -1,9 +1,9 @@
1
1
  import type { AnyRecord, Maybe, ReadonlyAbort, ReadonlyEventHost } from '@amazon/vinyl-util';
2
2
  import type { DrmInitDataType } from '../streaming/DrmInitDataType';
3
- import type { DrmKeySystem } from '../drm/DrmKeySystem';
3
+ import type { DrmKeySystem } from './DrmKeySystem';
4
4
  import type { MediaFormatMetadata } from '../streaming/MediaQualityMetadata';
5
5
  import type { BasicErrorEvent } from '../event/BasicErrorEvent';
6
- import type { DrmOptions } from '../drm/DrmOptions';
6
+ import type { DrmOptions } from './DrmOptions';
7
7
  export interface DrmControllerEventMap {
8
8
  /**
9
9
  * A DRM error occurred.
@@ -1,8 +1,8 @@
1
1
  import type { Maybe, ReadonlyAbort } from '@amazon/vinyl-util';
2
2
  import { EventHostImpl } from '@amazon/vinyl-util';
3
- import type { DrmOptions } from '../drm/DrmOptions';
4
- import type { DrmController, DrmControllerEventMap, DrmKeySystemSupport } from '../drm/DrmController';
5
- import type { CommonEme, CommonMediaKeyMessageEvent, CommonMediaKeys, CommonMediaKeySession } from '../drm/commonEme/CommonEme';
3
+ import type { DrmOptions } from './DrmOptions';
4
+ import type { DrmController, DrmControllerEventMap, DrmKeySystemSupport } from './DrmController';
5
+ import type { CommonEme, CommonMediaKeyMessageEvent, CommonMediaKeys, CommonMediaKeySession } from './commonEme/CommonEme';
6
6
  import type { MediaFormatMetadata } from '../streaming/MediaQualityMetadata';
7
7
  /**
8
8
  * The number of seconds a license request will be allowed before timing out.
@@ -1,5 +1,5 @@
1
1
  import type { ReadonlyRecord } from '@amazon/vinyl-util';
2
- import { DrmKeySystem } from '../drm/DrmKeySystem';
2
+ import { DrmKeySystem } from './DrmKeySystem';
3
3
  /**
4
4
  * Given a ContentProtection schemeIdUri, returns the {@link DrmKeySystem} it represents.
5
5
  * Not all scheme ids will match to a DrmKeySystem. If none are matched, null is returned.
@@ -3,7 +3,7 @@ import type { DrmInitDataType } from '../streaming/DrmInitDataType';
3
3
  import type { MediaFormatMetadata } from '../streaming/MediaQualityMetadata';
4
4
  import type { ObjectSchema, ValueSchema } from '@amazon/vinyl-validation';
5
5
  import { DrmKeySystem } from './DrmKeySystem';
6
- import type { LicenseProvider, LicenseServerOptions } from '../drm/licenseProvider/LicenseProvider';
6
+ import type { LicenseProvider, LicenseServerOptions } from './licenseProvider/LicenseProvider';
7
7
  /**
8
8
  * DrmRobustness is the requested security level for audio or video decryption.
9
9
  */
@@ -2,10 +2,10 @@
2
2
  * An common interface to unify multiple EME implementations.
3
3
  * @module
4
4
  */
5
- import type { DrmKeySystem } from '../../drm/DrmKeySystem';
5
+ import type { DrmKeySystem } from '../DrmKeySystem';
6
6
  import type { Json, ReadonlyEventHost, Unsubscribe } from '@amazon/vinyl-util';
7
7
  import { ReportableError } from '@amazon/vinyl-util';
8
- import type { EncryptedInitData } from '../../drm/commonEme/EncryptedInitData';
8
+ import type { EncryptedInitData } from './EncryptedInitData';
9
9
  import type { DrmInitDataType } from '../../streaming/DrmInitDataType';
10
10
  import type { BasicErrorEvent } from '../../event/BasicErrorEvent';
11
11
  /**
@@ -1,4 +1,4 @@
1
- import type { CommonEme } from '../../drm/commonEme/CommonEme';
1
+ import type { CommonEme } from './CommonEme';
2
2
  /**
3
3
  * Common EME Factory provides the first supported implementation of CommonEme.
4
4
  * The priority is WebKit, Standard, then MS.
@@ -2,7 +2,7 @@ import type { Disposable, Unsubscribe } from '@amazon/vinyl-util';
2
2
  import { EventHostImpl } from '@amazon/vinyl-util';
3
3
  import type { CommonEme, CommonMediaKeys, CommonMediaKeySession, CommonMediaKeySessionEventMap, CommonMediaKeySystemAccess } from './CommonEme';
4
4
  import { MediaKeySessionErrorType } from './CommonEme';
5
- import type { DrmKeySystem } from '../../drm/DrmKeySystem';
5
+ import type { DrmKeySystem } from '../DrmKeySystem';
6
6
  import type { EncryptedInitData } from './EncryptedInitData';
7
7
  import type { DrmInitDataType } from '../../streaming/DrmInitDataType';
8
8
  declare global {
@@ -1,7 +1,7 @@
1
1
  import type { Disposable, Unsubscribe } from '@amazon/vinyl-util';
2
2
  import { EventHostImpl } from '@amazon/vinyl-util';
3
3
  import type { CommonEme, CommonMediaEncryptedEvent, CommonMediaKeys, CommonMediaKeySession, CommonMediaKeySessionEventMap, CommonMediaKeySystemAccess } from './CommonEme';
4
- import type { DrmKeySystem } from '../../drm/DrmKeySystem';
4
+ import type { DrmKeySystem } from '../DrmKeySystem';
5
5
  import type { EncryptedInitData } from './EncryptedInitData';
6
6
  import type { DrmInitDataType } from '../../streaming/DrmInitDataType';
7
7
  /**
@@ -3,8 +3,8 @@ import type { Disposable } from '@amazon/vinyl-util';
3
3
  import { EventHostImpl } from '@amazon/vinyl-util';
4
4
  import type { CommonEme, CommonMediaEncryptedEvent, CommonMediaKeys, CommonMediaKeySession, CommonMediaKeySessionEventMap, CommonMediaKeySystemAccess } from './CommonEme';
5
5
  import { MediaKeySessionErrorType } from './CommonEme';
6
- import type { DrmKeySystem } from '../../drm/DrmKeySystem';
7
- import type { EncryptedInitData } from '../../drm/commonEme/EncryptedInitData';
6
+ import type { DrmKeySystem } from '../DrmKeySystem';
7
+ import type { EncryptedInitData } from './EncryptedInitData';
8
8
  import type { DrmInitDataType } from '../../streaming/DrmInitDataType';
9
9
  declare global {
10
10
  interface HTMLMediaElementEventMap extends HTMLElementEventMap {
@@ -1,5 +1,5 @@
1
1
  import type { Maybe, ReadonlyAbort } from '@amazon/vinyl-util';
2
- import type { DrmKeySystem } from '../../drm/DrmKeySystem';
2
+ import type { DrmKeySystem } from '../DrmKeySystem';
3
3
  import type { ObjectSchema } from '@amazon/vinyl-validation';
4
4
  /**
5
5
  * LicenseProvider handles requesting DRM licenses for specific key systems.
@@ -1,6 +1,10 @@
1
+ declare global {
2
+ var __VINYL_VERSION__: string | undefined;
3
+ }
1
4
  /**
2
- * process.env.VINYL_VERSION will be null in node unit tests, but in the built library it is
3
- * replaced by the webpack DefinePlugin with the package.version.
5
+ * `globalThis.__VINYL_VERSION__` is replaced at build time with the package.version via
6
+ * esbuild's `define` option. In unit tests and unbundled dev builds the replacement does not
7
+ * happen and the global is undefined, so we fall through to a placeholder version.
4
8
  */
5
9
  export declare const vinylVersion: import("@amazon/vinyl-util").Version;
6
10
  //# sourceMappingURL=environment.d.ts.map
@@ -1,4 +1,4 @@
1
- import type { HtmlMediaElementPatch } from '../../../patch/media/HtmlMediaElementPatch';
1
+ import type { HtmlMediaElementPatch } from '../HtmlMediaElementPatch';
2
2
  /**
3
3
  * The number of timeupdate events stuck at the same position before attempting to jiggle the playhead.
4
4
  * @private
@@ -1,4 +1,4 @@
1
- import type { HtmlMediaElementPatch } from '../../../patch/media/HtmlMediaElementPatch';
1
+ import type { HtmlMediaElementPatch } from '../HtmlMediaElementPatch';
2
2
  /**
3
3
  * The interval (in seconds) to poll for time progress in a media element.
4
4
  *
@@ -3,7 +3,7 @@ import { EventHostImpl } from '@amazon/vinyl-util';
3
3
  import type { PlaybackController } from './PlaybackController';
4
4
  import type { PlaybackControllerEventMap } from './ReadonlyPlaybackController';
5
5
  import { PlaybackReadyState } from './ReadonlyPlaybackController';
6
- import type { LoudnessNormalizationController } from '../playback/loudness/LoudnessNormalizationController';
6
+ import type { LoudnessNormalizationController } from './loudness/LoudnessNormalizationController';
7
7
  export interface PlaybackControllerImplOptions {
8
8
  /**
9
9
  * An affordance when comparing the last currentTime and the new currentTime after a seek.
@@ -1,5 +1,5 @@
1
1
  import type { Disposable } from '@amazon/vinyl-util';
2
- import type { ReadonlyPlaybackController } from '../../playback/ReadonlyPlaybackController';
2
+ import type { ReadonlyPlaybackController } from '../ReadonlyPlaybackController';
3
3
  /**
4
4
  * The number of seconds to throttle timeupdate logs.
5
5
  * Logs will not be emitted for timeupdate events less than this interval.
@@ -1,4 +1,4 @@
1
- import type { PlaybackControllerEventMap, ReadonlyPlaybackController } from '../playback/ReadonlyPlaybackController';
1
+ import type { PlaybackControllerEventMap, ReadonlyPlaybackController } from './ReadonlyPlaybackController';
2
2
  import type { AnyRecord, NextEventAsPromiseOptions } from '@amazon/vinyl-util';
3
3
  export declare function nextHasMetadata(controller: ReadonlyPlaybackController, options?: NextEventAsPromiseOptions<PlaybackControllerEventMap, 'loadedMetadata'>): Promise<AnyRecord>;
4
4
  //# sourceMappingURL=nextHasMetadata.d.ts.map
@@ -1,9 +1,9 @@
1
1
  import type { Disposable, Maybe, ReadonlyEventHost, ReadonlyRanges } from '@amazon/vinyl-util';
2
2
  import { EventHostImpl } from '@amazon/vinyl-util';
3
- import type { StreamingEventMap } from '../streaming/StreamingEventMap';
4
- import type { SegmentController } from '../streaming/SegmentController';
5
- import type { BufferingController } from '../streaming/buffering/BufferingController';
6
- import type { ContentType, MediaQualityMetadata } from '../streaming/MediaQualityMetadata';
3
+ import type { StreamingEventMap } from './StreamingEventMap';
4
+ import type { SegmentController } from './SegmentController';
5
+ import type { BufferingController } from './buffering/BufferingController';
6
+ import type { ContentType, MediaQualityMetadata } from './MediaQualityMetadata';
7
7
  import type { Factories } from '@amazon/vinyl-di';
8
8
  /**
9
9
  * Creates a new ContentStream for the given content type.
@@ -1,5 +1,5 @@
1
- import type { SegmentControllerImplOptions } from '../streaming/SegmentControllerImpl';
2
- import type { BufferingControllerImplOptions } from '../streaming/buffering/BufferingController';
1
+ import type { SegmentControllerImplOptions } from './SegmentControllerImpl';
2
+ import type { BufferingControllerImplOptions } from './buffering/BufferingController';
3
3
  export interface ContentStreamingOptions {
4
4
  /**
5
5
  * Configuration for the segment controller.
@@ -1,7 +1,7 @@
1
1
  import type { Maybe, MutableDeep } from '@amazon/vinyl-util';
2
2
  import type { ObjectSchema } from '@amazon/vinyl-validation';
3
- import type { DescriptorRecord } from '../streaming/DescriptorRecord';
4
- import type { DrmInitDataType } from '../streaming/DrmInitDataType';
3
+ import type { DescriptorRecord } from './DescriptorRecord';
4
+ import type { DrmInitDataType } from './DrmInitDataType';
5
5
  import type { CencEncryptionScheme } from '../drm/CencEncryptionScheme';
6
6
  import { DrmKeySystem } from '../drm/DrmKeySystem';
7
7
  import type { FrameRate } from '@amazon/vinyl-mpd-parser';
@@ -1,6 +1,6 @@
1
- import type { SegmentReference } from '../streaming/SegmentReference';
2
- import type { SegmentDataProvider } from '../streaming/SegmentDataSlot';
3
- import type { MediaQualityMetadata } from '../streaming/MediaQualityMetadata';
1
+ import type { SegmentReference } from './SegmentReference';
2
+ import type { SegmentDataProvider } from './SegmentDataSlot';
3
+ import type { MediaQualityMetadata } from './MediaQualityMetadata';
4
4
  /**
5
5
  * Represents a single quality within a period, providing access to its metadata
6
6
  * and segment data.
@@ -34,9 +34,10 @@ export interface MediaTimeline {
34
34
  readonly minBufferTime: number;
35
35
  /**
36
36
  * The total duration of the media, in seconds.
37
- * Returns null if duration cannot be determined.
37
+ * Returns `Infinity` for live streams.
38
+ * Rejects when there are no segments to derive a duration from.
38
39
  */
39
- getDuration?(): Promise<number | null>;
40
+ getDuration(): Promise<number>;
40
41
  }
41
42
  /**
42
43
  * Gets the period spanning the given presentation time.
@@ -1,7 +1,7 @@
1
1
  import type { AnyRecord, Disposable, ReadonlyAbort, ReadonlyEventHost, ReadonlyRanges } from '@amazon/vinyl-util';
2
- import type { SegmentReference } from '../streaming/SegmentReference';
2
+ import type { SegmentReference } from './SegmentReference';
3
3
  import type { ChangeEvent } from '../event/ChangeEvent';
4
- import type { MediaQualityMetadata } from '../streaming/MediaQualityMetadata';
4
+ import type { MediaQualityMetadata } from './MediaQualityMetadata';
5
5
  /**
6
6
  * Forward-snap tolerance, in seconds, applied when looking up a segment by time.
7
7
  *
@@ -48,11 +48,6 @@ export interface ReadonlySegmentController extends ReadonlyEventHost<SegmentCont
48
48
  * The most recently requested quality metadata.
49
49
  */
50
50
  readonly streamingQuality: MediaQualityMetadata | null;
51
- /**
52
- * The duration of the media, in seconds.
53
- * Returns null if duration cannot be determined.
54
- */
55
- getDuration(): Promise<number | null>;
56
51
  /**
57
52
  * Returns a Promise for a segment covering the given time, with quality chosen by
58
53
  * the configured `QualitySelector`. Resolves to `null` if no media exists at that
@@ -1,12 +1,12 @@
1
1
  import type { ReadonlyAbort, ReadonlyRanges } from '@amazon/vinyl-util';
2
2
  import { EventHostImpl } from '@amazon/vinyl-util';
3
3
  import type { ReadonlyPlaybackController } from '../playback/ReadonlyPlaybackController';
4
- import type { PrefetchOptions, SegmentController, SegmentControllerEventMap } from '../streaming/SegmentController';
5
- import type { SegmentReference } from '../streaming/SegmentReference';
6
- import type { ContentType, MediaQualityMetadata } from '../streaming/MediaQualityMetadata';
4
+ import type { PrefetchOptions, SegmentController, SegmentControllerEventMap } from './SegmentController';
5
+ import type { SegmentReference } from './SegmentReference';
6
+ import type { ContentType, MediaQualityMetadata } from './MediaQualityMetadata';
7
7
  import type { ObservableValue } from '@amazon/vinyl-observable';
8
- import type { MediaTimeline } from '../streaming/MediaTimeline';
9
- import type { QualitySelector } from '../streaming/abr/QualitySelector';
8
+ import type { MediaTimeline } from './MediaTimeline';
9
+ import type { QualitySelector } from './abr/QualitySelector';
10
10
  /**
11
11
  * The interval to check if additional segments should be prefetched.
12
12
  */
@@ -74,7 +74,6 @@ export declare class SegmentControllerImpl extends EventHostImpl<SegmentControll
74
74
  private _cachedPeriod;
75
75
  constructor(deps: SegmentControllerImplDeps, contentType: ContentType, options?: Partial<SegmentControllerImplOptions>);
76
76
  get error(): (Error | null);
77
- getDuration(): Promise<number | null>;
78
77
  /**
79
78
  * Gets the period at the given time, using a cache for the last returned period.
80
79
  */
@@ -1,4 +1,4 @@
1
- import type { MediaQualityMetadata } from '../streaming/MediaQualityMetadata';
1
+ import type { MediaQualityMetadata } from './MediaQualityMetadata';
2
2
  export interface MediaSegmentMetadata {
3
3
  /**
4
4
  * The timestamp offset of the segment.
@@ -1,5 +1,5 @@
1
1
  import type { ChangeEvent } from '../event/ChangeEvent';
2
- import type { ContentType, MediaQualityMetadata } from '../streaming/MediaQualityMetadata';
2
+ import type { ContentType, MediaQualityMetadata } from './MediaQualityMetadata';
3
3
  import type { BasicErrorEvent } from '../event/BasicErrorEvent';
4
4
  import type { AnyRecord } from '@amazon/vinyl-util';
5
5
  /**
@@ -1,4 +1,4 @@
1
- import type { MediaQualityMetadata } from '../../streaming/MediaQualityMetadata';
1
+ import type { MediaQualityMetadata } from '../MediaQualityMetadata';
2
2
  export interface PrefetchState {
3
3
  /**
4
4
  * The number of seconds currently prefetched.
@@ -1,7 +1,7 @@
1
- import type { PrefetchState, QualitySelector } from '../../streaming/abr/QualitySelector';
2
- import type { Disposable, LogTarget } from '@amazon/vinyl-util';
1
+ import type { PrefetchState, QualitySelector } from './QualitySelector';
2
+ import type { Disposable, LogTarget, Maybe } from '@amazon/vinyl-util';
3
3
  import type { ObjectSchema } from '@amazon/vinyl-validation';
4
- import type { MediaQualityMetadata } from '../../streaming/MediaQualityMetadata';
4
+ import type { MediaQualityMetadata } from '../MediaQualityMetadata';
5
5
  import type { ObservableValue } from '@amazon/vinyl-observable';
6
6
  export interface QualitySelectorImplOptions {
7
7
  /**
@@ -52,6 +52,20 @@ export interface QualitySelectorImplOptions {
52
52
  * Default: false
53
53
  */
54
54
  readonly restrictDecoderChangeOnAudioAbrUp?: boolean;
55
+ /**
56
+ * Maximum bandwidth in bits per second a quality may use to be selectable.
57
+ *
58
+ * Soft cap: if no qualities fit within the limit (including when set to 0),
59
+ * the quality with the lowest bandwidth is selected so playback is still
60
+ * possible.
61
+ *
62
+ * Has no effect when {@link strategy} is {@link AbrStrategy.LOWEST} or
63
+ * {@link AbrStrategy.HIGHEST}, since those strategies pin the selection
64
+ * regardless of bandwidth.
65
+ *
66
+ * Default: null (no limit).
67
+ */
68
+ readonly maxBandwidth?: Maybe<number>;
55
69
  }
56
70
  export declare enum AbrStrategy {
57
71
  /**
@@ -82,6 +96,7 @@ export declare const defaultQualitySelectorImplOptions: {
82
96
  readonly bandwidthMultiplierLow: 0.4;
83
97
  readonly bandwidthMultiplierHigh: 0.9;
84
98
  readonly restrictDecoderChangeOnAudioAbrUp: false;
99
+ readonly maxBandwidth: null;
85
100
  };
86
101
  export interface QualitySelectorImplDeps {
87
102
  readonly options: ObservableValue<QualitySelectorImplOptions>;
@@ -2,17 +2,11 @@ import type { AnyRecord, Clearable, Disposable, ReadonlyEventHost } from '@amazo
2
2
  import { EventHostImpl } from '@amazon/vinyl-util';
3
3
  import type { ReadonlyPlaybackController } from '../../playback/ReadonlyPlaybackController';
4
4
  import type { SourceBufferController } from './SourceBufferController';
5
- import type { ReadonlySegmentController } from '../../streaming/SegmentController';
5
+ import type { ReadonlySegmentController } from '../SegmentController';
6
6
  import type { BasicErrorEvent } from '../../event/BasicErrorEvent';
7
7
  import type { ChangeEvent } from '../../event/ChangeEvent';
8
- import type { ContentType, MediaQualityMetadata } from '../../streaming/MediaQualityMetadata';
9
- import type { MediaSourceController } from '../../streaming/buffering/MediaSourceController';
10
- /**
11
- * Chrome 52 has decoding errors when duration is set to the mediaPresentationDuration.
12
- * Adds a slight padding as a workaround.
13
- * @private
14
- */
15
- export declare const DURATION_PADDING = 0.1;
8
+ import type { ContentType, MediaQualityMetadata } from '../MediaQualityMetadata';
9
+ import type { MediaSourceController } from './MediaSourceController';
16
10
  /**
17
11
  * The interval to throttle polling the buffer.
18
12
  * Reset after a seek.
@@ -168,10 +162,6 @@ export declare class BufferingControllerImpl extends EventHostImpl<BufferingCont
168
162
  deactivate(): void;
169
163
  reset(): void;
170
164
  get busy(): boolean;
171
- /**
172
- * Enqueues a duration update.
173
- */
174
- private refreshDuration;
175
165
  /**
176
166
  * Resets the throttle and polls the buffer on the next frame.
177
167
  */
@@ -1,8 +1,16 @@
1
1
  import type { AnyRecord, Disposable, Json, LogTarget, ReadonlyEventHost } from '@amazon/vinyl-util';
2
2
  import { EventHostImpl, ReportableError } from '@amazon/vinyl-util';
3
- import type { ContentTypesValue } from '../../streaming/ContentTypesValue';
3
+ import type { ObservableValue } from '@amazon/vinyl-observable';
4
+ import type { ContentTypesValue } from '../ContentTypesValue';
4
5
  import type { BasicErrorEvent } from '../../event/BasicErrorEvent';
5
- import type { ContentType } from '../../streaming/MediaQualityMetadata';
6
+ import type { ContentType } from '../MediaQualityMetadata';
7
+ import type { MediaTimeline } from '../MediaTimeline';
8
+ /**
9
+ * Chrome 52 has decoding errors when duration is set to the mediaPresentationDuration.
10
+ * Adds a slight padding as a workaround.
11
+ * @private
12
+ */
13
+ export declare const DURATION_PADDING = 0.1;
6
14
  export interface SourceBufferRef extends Disposable {
7
15
  /**
8
16
  * The source buffer.
@@ -23,7 +31,8 @@ export interface MediaSourceControllerEventMap {
23
31
  */
24
32
  readonly sourceOpen: AnyRecord;
25
33
  /**
26
- * All source buffers have been created and data may be appended.
34
+ * All source buffers have been created, the media source duration has been set, and data
35
+ * may be appended.
27
36
  */
28
37
  readonly readyToAppend: AnyRecord;
29
38
  /**
@@ -36,20 +45,12 @@ export interface ReadonlyMediaSourceController extends ReadonlyEventHost<MediaSo
36
45
  * Returns the parent media source ready state.
37
46
  */
38
47
  readonly readyState: ReadyState;
39
- /**
40
- * Gets the media source's duration.
41
- */
42
- readonly duration: number;
43
48
  /**
44
49
  * True if all source buffers have been created and data may be appended.
45
50
  */
46
51
  readonly readyToAppend: boolean;
47
52
  }
48
53
  export interface MediaSourceController extends ReadonlyMediaSourceController {
49
- /**
50
- * Sets/gets the media source's duration.
51
- */
52
- duration: number;
53
54
  /**
54
55
  * Constructs a new SourceBuffer with the given content type and mime type.
55
56
  */
@@ -73,21 +74,46 @@ export interface MediaSourceControllerImplDeps {
73
74
  * Provides the streams that must be created before appending.
74
75
  */
75
76
  readonly contentTypesValue: ContentTypesValue;
77
+ /**
78
+ * The media timeline used to determine duration.
79
+ */
80
+ readonly mediaTimelineTransformed: ObservableValue<Promise<MediaTimeline>>;
76
81
  }
77
82
  export declare class MediaSourceControllerImpl extends EventHostImpl<MediaSourceControllerEventMap> implements MediaSourceController, LogTarget {
83
+ private readonly deps;
78
84
  get [Symbol.toStringTag](): string;
79
- private sourceBufferCount;
85
+ private readonly sourceBuffers;
80
86
  private readonly mediaSource;
81
87
  private readonly disposer;
82
88
  private contentTypes;
89
+ private durationSet;
90
+ /**
91
+ * Token for the in-flight duration update; used to discard stale results when
92
+ * the timeline changes or the source closes mid-fetch.
93
+ */
94
+ private durationToken;
83
95
  constructor(deps: MediaSourceControllerImplDeps);
96
+ private get sourceBufferCount();
97
+ private readonly errorHandler;
98
+ /**
99
+ * Subscription to mediaTimelineTransformed; only attached while the media source is open
100
+ * so the timeline pipeline isn't forced to evaluate before the source has opened.
101
+ */
102
+ private timelineSub;
84
103
  private initializeEvents;
85
- get duration(): number;
86
- set duration(value: number);
104
+ /**
105
+ * Sets the duration on the media source from the current media timeline.
106
+ * Live streams use LIVE_DURATION since not all browsers support +Infinity duration.
107
+ *
108
+ * MSE throws InvalidStateError if duration is set while any source buffer is updating,
109
+ * so we wait for all tracked source buffers to be idle first.
110
+ */
111
+ private refreshDuration;
87
112
  get readyState(): ReadyState;
88
113
  createSourceBuffer(contentType: ContentType, mimeType: string): SourceBufferRef;
89
114
  /**
90
- * Emits a 'readyToAppend' event if all source buffers have been created.
115
+ * Emits a 'readyToAppend' event if all source buffers have been created and the duration
116
+ * has been applied to the media source.
91
117
  */
92
118
  private readonly checkReady;
93
119
  endOfStream(error?: EndOfStreamError): void;
@@ -1,6 +1,6 @@
1
1
  import type { Disposable, LogTarget, ReadonlyRanges, Task } from '@amazon/vinyl-util';
2
2
  import type { MediaSourceController } from './MediaSourceController';
3
- import type { ContentType } from '../../streaming/MediaQualityMetadata';
3
+ import type { ContentType } from '../MediaQualityMetadata';
4
4
  export declare const APPEND_WINDOW_START_OFFSET = 0.05;
5
5
  export declare const APPEND_WINDOW_END_OFFSET = 0.01;
6
6
  export declare const READY_TO_APPEND_TIMEOUT = 30;
@@ -1,7 +1,7 @@
1
1
  import type { ObservableValue } from '@amazon/vinyl-observable';
2
2
  import type { Capabilities } from '../client/Capabilities';
3
3
  import type { DrmController } from '../drm/DrmController';
4
- import type { MediaTimeline } from '../streaming/MediaTimeline';
4
+ import type { MediaTimeline } from './MediaTimeline';
5
5
  export interface DefaultMediaTimelineTransformerDeps {
6
6
  readonly capabilities: Capabilities;
7
7
  readonly drmController: DrmController;
@@ -1,5 +1,5 @@
1
- import type { MediaTimeline } from '../streaming/MediaTimeline';
2
- import type { MediaQualityMetadata } from '../streaming/MediaQualityMetadata';
1
+ import type { MediaTimeline } from './MediaTimeline';
2
+ import type { MediaQualityMetadata } from './MediaQualityMetadata';
3
3
  import type { FilterPredicate, FilterPredicateAsync, Maybe } from '@amazon/vinyl-util';
4
4
  /**
5
5
  * Filters qualities in a MediaTimeline using a synchronous predicate.
@@ -14,5 +14,5 @@ export declare function filterTimelineQualitiesAsync(filter: FilterPredicateAsyn
14
14
  /**
15
15
  * Creates a language filter predicate for use with filterTimelineQualities.
16
16
  */
17
- export { createLanguageFilter } from '../streaming/mediaTimelineLanguageFilter';
17
+ export { createLanguageFilter } from './mediaTimelineLanguageFilter';
18
18
  //# sourceMappingURL=mediaTimelineFilter.d.ts.map
@@ -1,4 +1,4 @@
1
- import type { MediaQualityMetadata } from '../streaming/MediaQualityMetadata';
1
+ import type { MediaQualityMetadata } from './MediaQualityMetadata';
2
2
  import type { FilterPredicate } from '@amazon/vinyl-util';
3
3
  /**
4
4
  * Creates a filter predicate that keeps qualities matching the preferred language.
@@ -1,4 +1,4 @@
1
- import type { MediaSegmentMetadata } from '../../streaming/SegmentReference';
1
+ import type { MediaSegmentMetadata } from '../SegmentReference';
2
2
  /**
3
3
  * Returns the segment whose range covers `time` (`startTime <= time < endTime`), or
4
4
  * — when `affordance > 0` — the next segment if `time` falls within `affordance`