@amazon/vinyl 3.0.1 → 3.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 (268) hide show
  1. package/dist/index.cjs +1103 -1042
  2. package/dist/index.cjs.map +4 -4
  3. package/dist/index.js +810 -739
  4. package/dist/index.js.map +4 -4
  5. package/dist/test/benchmark.js.map +2 -2
  6. package/dist/test/integ.es5.js +394 -388
  7. package/dist/test/integ.js +2626 -2032
  8. package/dist/test/integ.js.map +4 -4
  9. package/dist/test/jasmine.css +50 -3
  10. package/dist/test/jasmineHtml.es5.js +195 -155
  11. package/dist/test/jasmineHtml.js +2938 -1833
  12. package/dist/test/jasmineHtml.js.map +3 -3
  13. package/dist/types/current/ad/AdControllerImpl.d.ts.map +1 -1
  14. package/dist/types/current/ad/AdControllerImpl.js +4 -1
  15. package/dist/types/current/ad/discoverHlsInterstitials.d.ts.map +1 -1
  16. package/dist/types/current/ad/discoverHlsInterstitials.js +2 -2
  17. package/dist/types/current/drm/DrmControllerImpl.d.ts +19 -1
  18. package/dist/types/current/drm/DrmControllerImpl.d.ts.map +1 -1
  19. package/dist/types/current/drm/DrmControllerImpl.js +101 -58
  20. package/dist/types/current/drm/licenseProvider/defaultLicenseProvider.d.ts.map +1 -1
  21. package/dist/types/current/drm/licenseProvider/defaultLicenseProvider.js +2 -2
  22. package/dist/types/current/index.d.ts +3 -6
  23. package/dist/types/current/index.d.ts.map +1 -1
  24. package/dist/types/current/index.js +3 -6
  25. package/dist/types/current/playback/PlaybackControllerImpl.d.ts +15 -0
  26. package/dist/types/current/playback/PlaybackControllerImpl.d.ts.map +1 -1
  27. package/dist/types/current/playback/PlaybackControllerImpl.js +100 -9
  28. package/dist/types/current/playback/ReadonlyPlaybackController.d.ts +27 -1
  29. package/dist/types/current/playback/ReadonlyPlaybackController.d.ts.map +1 -1
  30. package/dist/types/current/playback/ReadonlyPlaybackController.js +16 -0
  31. package/dist/types/current/playback/createStallDetector.d.ts +43 -0
  32. package/dist/types/current/playback/createStallDetector.d.ts.map +1 -0
  33. package/dist/types/current/playback/createStallDetector.js +101 -0
  34. package/dist/types/current/playback/createStallMonitor.d.ts +45 -0
  35. package/dist/types/current/playback/createStallMonitor.d.ts.map +1 -0
  36. package/dist/types/current/playback/createStallMonitor.js +94 -0
  37. package/dist/types/current/streaming/AudioOptions.d.ts +27 -0
  38. package/dist/types/current/streaming/AudioOptions.d.ts.map +1 -1
  39. package/dist/types/current/streaming/AudioOptions.js +5 -1
  40. package/dist/types/current/streaming/ContentStream.d.ts +0 -5
  41. package/dist/types/current/streaming/ContentStream.d.ts.map +1 -1
  42. package/dist/types/current/streaming/ContentStream.js +0 -4
  43. package/dist/types/current/streaming/LoadMetric.d.ts +15 -1
  44. package/dist/types/current/streaming/LoadMetric.d.ts.map +1 -1
  45. package/dist/types/current/streaming/StreamingEventMap.d.ts +1 -5
  46. package/dist/types/current/streaming/StreamingEventMap.d.ts.map +1 -1
  47. package/dist/types/current/streaming/StreamingEventMap.js +0 -1
  48. package/dist/types/current/streaming/buffering/BufferingController.d.ts +0 -11
  49. package/dist/types/current/streaming/buffering/BufferingController.d.ts.map +1 -1
  50. package/dist/types/current/streaming/buffering/BufferingController.js +0 -13
  51. package/dist/types/current/streaming/createDefaultMediaTimelineTransformer.d.ts.map +1 -1
  52. package/dist/types/current/streaming/createDefaultMediaTimelineTransformer.js +13 -4
  53. package/dist/types/current/streaming/mediaTimelineFilter.d.ts +4 -2
  54. package/dist/types/current/streaming/mediaTimelineFilter.d.ts.map +1 -1
  55. package/dist/types/current/streaming/mediaTimelineFilter.js +23 -8
  56. package/dist/types/current/text/SidecarTextTrackLoader.d.ts.map +1 -1
  57. package/dist/types/current/text/SidecarTextTrackLoader.js +4 -4
  58. package/dist/types/current/text/TextTrack.d.ts.map +1 -1
  59. package/dist/types/current/track/TrackController.d.ts.map +1 -1
  60. package/dist/types/current/track/TrackController.js +8 -2
  61. package/dist/types/current/track/createSegmentDataProvider.d.ts.map +1 -1
  62. package/dist/types/current/track/createSegmentDataProvider.js +6 -3
  63. package/dist/types/current/track/dash/DashMediaQualityMetadataResolver.d.ts +10 -6
  64. package/dist/types/current/track/dash/DashMediaQualityMetadataResolver.d.ts.map +1 -1
  65. package/dist/types/current/track/dash/DashMediaQualityMetadataResolver.js +13 -8
  66. package/dist/types/current/track/dash/createDashFactories.d.ts +1 -1
  67. package/dist/types/current/track/dash/timeline/DashRepresentationSegmentProvider.d.ts.map +1 -1
  68. package/dist/types/current/track/dash/timeline/DashRepresentationSegmentProvider.js +71 -3
  69. package/dist/types/current/track/dash/urlDashManifestProvider.js +2 -2
  70. package/dist/types/current/track/dash/util/mpd.d.ts +6 -0
  71. package/dist/types/current/track/dash/util/mpd.d.ts.map +1 -1
  72. package/dist/types/current/track/dash/util/mpd.js +24 -3
  73. package/dist/types/current/track/filters/resourceTypeFilter.d.ts +4 -0
  74. package/dist/types/current/track/filters/resourceTypeFilter.d.ts.map +1 -1
  75. package/dist/types/current/track/filters/resourceTypeFilter.js +4 -0
  76. package/dist/types/current/track/filters/sampleRateFilter.d.ts +25 -7
  77. package/dist/types/current/track/filters/sampleRateFilter.d.ts.map +1 -1
  78. package/dist/types/current/track/filters/sampleRateFilter.js +52 -24
  79. package/dist/types/current/track/hls/createHlsFactories.d.ts +1 -1
  80. package/dist/types/current/track/hls/createUrlHlsManifestProvider.d.ts.map +1 -1
  81. package/dist/types/current/track/hls/createUrlHlsManifestProvider.js +3 -3
  82. package/dist/types/current/track/mse/MseTrack.d.ts +0 -17
  83. package/dist/types/current/track/mse/MseTrack.d.ts.map +1 -1
  84. package/dist/types/current/track/mse/MseTrack.js +1 -45
  85. package/dist/types/current/tsconfig.tsbuildinfo +1 -1
  86. package/dist/types/current/util/media/mimeType.d.ts +8 -0
  87. package/dist/types/current/util/media/mimeType.d.ts.map +1 -0
  88. package/dist/types/current/util/media/mimeType.js +13 -0
  89. package/dist/types/current/vinyl/VinylPlayer.d.ts +5 -0
  90. package/dist/types/current/vinyl/VinylPlayer.d.ts.map +1 -1
  91. package/dist/types/current/vinyl/VinylPlayer.js +23 -1
  92. package/dist/types/current/vinyl/createVinylFactories.d.ts +7 -16
  93. package/dist/types/current/vinyl/createVinylFactories.d.ts.map +1 -1
  94. package/dist/types/current/vinyl/createVinylFactories.js +2 -12
  95. package/dist/types/ts3.7/drm/DrmControllerImpl.d.ts +19 -1
  96. package/dist/types/ts3.7/index.d.ts +3 -6
  97. package/dist/types/ts3.7/playback/PlaybackControllerImpl.d.ts +15 -0
  98. package/dist/types/ts3.7/playback/ReadonlyPlaybackController.d.ts +28 -0
  99. package/dist/types/ts3.7/playback/createStallDetector.d.ts +43 -0
  100. package/dist/types/ts3.7/playback/createStallMonitor.d.ts +45 -0
  101. package/dist/types/ts3.7/streaming/AudioOptions.d.ts +27 -0
  102. package/dist/types/ts3.7/streaming/ContentStream.d.ts +0 -5
  103. package/dist/types/ts3.7/streaming/LoadMetric.d.ts +15 -1
  104. package/dist/types/ts3.7/streaming/StreamingEventMap.d.ts +0 -5
  105. package/dist/types/ts3.7/streaming/buffering/BufferingController.d.ts +0 -11
  106. package/dist/types/ts3.7/streaming/mediaTimelineFilter.d.ts +4 -2
  107. package/dist/types/ts3.7/track/dash/DashMediaQualityMetadataResolver.d.ts +10 -6
  108. package/dist/types/ts3.7/track/dash/createDashFactories.d.ts +1 -1
  109. package/dist/types/ts3.7/track/dash/util/mpd.d.ts +6 -0
  110. package/dist/types/ts3.7/track/filters/resourceTypeFilter.d.ts +4 -0
  111. package/dist/types/ts3.7/track/filters/sampleRateFilter.d.ts +25 -7
  112. package/dist/types/ts3.7/track/hls/createHlsFactories.d.ts +1 -1
  113. package/dist/types/ts3.7/track/mse/MseTrack.d.ts +0 -17
  114. package/dist/types/ts3.7/util/media/mimeType.d.ts +8 -0
  115. package/dist/types/ts3.7/vinyl/VinylPlayer.d.ts +5 -0
  116. package/dist/types/ts3.7/vinyl/createVinylFactories.d.ts +7 -16
  117. package/dist/types/ts4.1/drm/DrmControllerImpl.d.ts +19 -1
  118. package/dist/types/ts4.1/index.d.ts +3 -6
  119. package/dist/types/ts4.1/playback/PlaybackControllerImpl.d.ts +15 -0
  120. package/dist/types/ts4.1/playback/ReadonlyPlaybackController.d.ts +28 -0
  121. package/dist/types/ts4.1/playback/createStallDetector.d.ts +43 -0
  122. package/dist/types/ts4.1/playback/createStallMonitor.d.ts +45 -0
  123. package/dist/types/ts4.1/streaming/AudioOptions.d.ts +27 -0
  124. package/dist/types/ts4.1/streaming/ContentStream.d.ts +0 -5
  125. package/dist/types/ts4.1/streaming/LoadMetric.d.ts +15 -1
  126. package/dist/types/ts4.1/streaming/StreamingEventMap.d.ts +0 -5
  127. package/dist/types/ts4.1/streaming/buffering/BufferingController.d.ts +0 -11
  128. package/dist/types/ts4.1/streaming/mediaTimelineFilter.d.ts +4 -2
  129. package/dist/types/ts4.1/track/dash/DashMediaQualityMetadataResolver.d.ts +10 -6
  130. package/dist/types/ts4.1/track/dash/createDashFactories.d.ts +1 -1
  131. package/dist/types/ts4.1/track/dash/util/mpd.d.ts +6 -0
  132. package/dist/types/ts4.1/track/filters/resourceTypeFilter.d.ts +4 -0
  133. package/dist/types/ts4.1/track/filters/sampleRateFilter.d.ts +25 -7
  134. package/dist/types/ts4.1/track/hls/createHlsFactories.d.ts +1 -1
  135. package/dist/types/ts4.1/track/mse/MseTrack.d.ts +0 -17
  136. package/dist/types/ts4.1/util/media/mimeType.d.ts +8 -0
  137. package/dist/types/ts4.1/vinyl/VinylPlayer.d.ts +5 -0
  138. package/dist/types/ts4.1/vinyl/createVinylFactories.d.ts +7 -16
  139. package/dist/types/ts4.7/drm/DrmControllerImpl.d.ts +19 -1
  140. package/dist/types/ts4.7/index.d.ts +3 -6
  141. package/dist/types/ts4.7/playback/PlaybackControllerImpl.d.ts +15 -0
  142. package/dist/types/ts4.7/playback/ReadonlyPlaybackController.d.ts +28 -0
  143. package/dist/types/ts4.7/playback/createStallDetector.d.ts +43 -0
  144. package/dist/types/ts4.7/playback/createStallMonitor.d.ts +45 -0
  145. package/dist/types/ts4.7/streaming/AudioOptions.d.ts +27 -0
  146. package/dist/types/ts4.7/streaming/ContentStream.d.ts +0 -5
  147. package/dist/types/ts4.7/streaming/LoadMetric.d.ts +15 -1
  148. package/dist/types/ts4.7/streaming/StreamingEventMap.d.ts +0 -5
  149. package/dist/types/ts4.7/streaming/buffering/BufferingController.d.ts +0 -11
  150. package/dist/types/ts4.7/streaming/mediaTimelineFilter.d.ts +4 -2
  151. package/dist/types/ts4.7/track/dash/DashMediaQualityMetadataResolver.d.ts +10 -6
  152. package/dist/types/ts4.7/track/dash/createDashFactories.d.ts +1 -1
  153. package/dist/types/ts4.7/track/dash/util/mpd.d.ts +6 -0
  154. package/dist/types/ts4.7/track/filters/resourceTypeFilter.d.ts +4 -0
  155. package/dist/types/ts4.7/track/filters/sampleRateFilter.d.ts +25 -7
  156. package/dist/types/ts4.7/track/hls/createHlsFactories.d.ts +1 -1
  157. package/dist/types/ts4.7/track/mse/MseTrack.d.ts +0 -17
  158. package/dist/types/ts4.7/util/media/mimeType.d.ts +8 -0
  159. package/dist/types/ts4.7/vinyl/VinylPlayer.d.ts +5 -0
  160. package/dist/types/ts4.7/vinyl/createVinylFactories.d.ts +7 -16
  161. package/dist/unit/types/current/ad/AdControllerImpl.test.js +27 -1
  162. package/dist/unit/types/current/drm/DrmControllerImpl.test.js +146 -9
  163. package/dist/unit/types/current/index.d.ts +3 -4
  164. package/dist/unit/types/current/index.d.ts.map +1 -1
  165. package/dist/unit/types/current/index.js +3 -4
  166. package/dist/unit/types/current/playback/PlaybackControllerImpl.test.js +165 -0
  167. package/dist/unit/types/current/playback/createStallDetector.test.d.ts +2 -0
  168. package/dist/unit/types/current/playback/createStallDetector.test.d.ts.map +1 -0
  169. package/dist/unit/types/current/playback/createStallDetector.test.js +163 -0
  170. package/dist/unit/types/current/playback/createStallMonitor.test.d.ts +2 -0
  171. package/dist/unit/types/current/playback/createStallMonitor.test.d.ts.map +1 -0
  172. package/dist/unit/types/current/playback/createStallMonitor.test.js +125 -0
  173. package/dist/unit/types/current/streaming/ContentStream.test.js +0 -11
  174. package/dist/unit/types/current/streaming/MseTrack.test.js +49 -73
  175. package/dist/unit/types/current/streaming/abr/QualitySelectorImpl.test.js +1 -1
  176. package/dist/unit/types/current/streaming/buffering/BufferingController.test.js +0 -21
  177. package/dist/unit/types/current/streaming/createDefaultMediaTimelineTransformer.test.js +133 -0
  178. package/dist/unit/types/current/streaming/mediaTimelineFilter.test.js +60 -54
  179. package/dist/unit/types/current/track/TrackController.test.js +61 -1
  180. package/dist/unit/types/current/track/createSegmentDataProvider.test.js +18 -0
  181. package/dist/unit/types/current/track/dash/DashMediaQualityMetadataResolver.test.js +46 -14
  182. package/dist/unit/types/current/track/dash/createSegmentControllerFactory.test.js +1 -0
  183. package/dist/unit/types/current/track/dash/timeline/DashRepresentationSegmentProvider.test.js +114 -0
  184. package/dist/unit/types/current/track/dash/util/mpd.test.js +37 -0
  185. package/dist/unit/types/current/track/filters/resourceTypeFilter.test.js +7 -0
  186. package/dist/unit/types/current/track/filters/sampleRateFilter.test.js +211 -34
  187. package/dist/unit/types/current/track/source/SourceObjectTrack.test.js +1 -1
  188. package/dist/unit/types/current/tsconfig.tsbuildinfo +1 -1
  189. package/dist/unit/types/current/util/media/mimeType.test.d.ts +2 -0
  190. package/dist/unit/types/current/util/media/mimeType.test.d.ts.map +1 -0
  191. package/dist/unit/types/current/util/media/mimeType.test.js +22 -0
  192. package/dist/unit/types/current/vinyl/VinylPlayer.test.js +33 -2
  193. package/dist/unit/types/current/vinyl/createVinylFactories.test.js +2 -36
  194. package/dist/vinylTestUtil/index.js +6 -4
  195. package/dist/vinylTestUtil/index.js.map +2 -2
  196. package/dist/vinylTestUtil/types/current/assets/vinylTestAssets.d.ts +1 -0
  197. package/dist/vinylTestUtil/types/current/assets/vinylTestAssets.d.ts.map +1 -1
  198. package/dist/vinylTestUtil/types/current/assets/vinylTestAssets.js +1 -0
  199. package/dist/vinylTestUtil/types/current/media/FrequencyAnalyzer.d.ts.map +1 -1
  200. package/dist/vinylTestUtil/types/current/mock/streaming/MockContentStream.d.ts +0 -1
  201. package/dist/vinylTestUtil/types/current/mock/streaming/MockContentStream.d.ts.map +1 -1
  202. package/dist/vinylTestUtil/types/current/mock/streaming/MockContentStream.js +0 -1
  203. package/dist/vinylTestUtil/types/current/mock/streaming/buffering/MockBufferingController.d.ts +0 -1
  204. package/dist/vinylTestUtil/types/current/mock/streaming/buffering/MockBufferingController.d.ts.map +1 -1
  205. package/dist/vinylTestUtil/types/current/mock/streaming/buffering/MockBufferingController.js +0 -1
  206. package/dist/vinylTestUtil/types/current/tsconfig.tsbuildinfo +1 -1
  207. package/dist/vinylTestUtil/types/current/util/playback/eventPromises.js +1 -1
  208. package/dist/vinylTestUtil/types/current/util/playback/expectTrackCanSeek.d.ts.map +1 -1
  209. package/dist/vinylTestUtil/types/current/util/playback/expectTrackCanSeek.js +9 -1
  210. package/dist/vinylTestUtil/types/ts3.7/assets/vinylTestAssets.d.ts +1 -0
  211. package/dist/vinylTestUtil/types/ts3.7/mock/streaming/MockContentStream.d.ts +0 -1
  212. package/dist/vinylTestUtil/types/ts3.7/mock/streaming/buffering/MockBufferingController.d.ts +0 -1
  213. package/dist/vinylTestUtil/types/ts4.1/assets/vinylTestAssets.d.ts +1 -0
  214. package/dist/vinylTestUtil/types/ts4.1/mock/streaming/MockContentStream.d.ts +0 -1
  215. package/dist/vinylTestUtil/types/ts4.1/mock/streaming/buffering/MockBufferingController.d.ts +0 -1
  216. package/dist/vinylTestUtil/types/ts4.7/assets/vinylTestAssets.d.ts +1 -0
  217. package/dist/vinylTestUtil/types/ts4.7/mock/streaming/MockContentStream.d.ts +0 -1
  218. package/dist/vinylTestUtil/types/ts4.7/mock/streaming/buffering/MockBufferingController.d.ts +0 -1
  219. package/docs/USAGE.md +29 -0
  220. package/package.json +11 -10
  221. package/dist/types/current/patch/media/HtmlMediaElementPatch.d.ts +0 -3
  222. package/dist/types/current/patch/media/HtmlMediaElementPatch.d.ts.map +0 -1
  223. package/dist/types/current/patch/media/HtmlMediaElementPatch.js +0 -5
  224. package/dist/types/current/patch/media/MediaElementPatchOptions.d.ts +0 -19
  225. package/dist/types/current/patch/media/MediaElementPatchOptions.d.ts.map +0 -1
  226. package/dist/types/current/patch/media/MediaElementPatchOptions.js +0 -16
  227. package/dist/types/current/patch/media/patchMediaElement.d.ts +0 -9
  228. package/dist/types/current/patch/media/patchMediaElement.d.ts.map +0 -1
  229. package/dist/types/current/patch/media/patchMediaElement.js +0 -15
  230. package/dist/types/current/patch/media/patches/createPreventStallsPatch.d.ts +0 -17
  231. package/dist/types/current/patch/media/patches/createPreventStallsPatch.d.ts.map +0 -1
  232. package/dist/types/current/patch/media/patches/createPreventStallsPatch.js +0 -55
  233. package/dist/types/current/patch/media/patches/createUnreliablePlaybackEventsPatch.d.ts +0 -26
  234. package/dist/types/current/patch/media/patches/createUnreliablePlaybackEventsPatch.d.ts.map +0 -1
  235. package/dist/types/current/patch/media/patches/createUnreliablePlaybackEventsPatch.js +0 -218
  236. package/dist/types/current/vinyl/VinylPatchOptions.d.ts +0 -10
  237. package/dist/types/current/vinyl/VinylPatchOptions.d.ts.map +0 -1
  238. package/dist/types/current/vinyl/VinylPatchOptions.js +0 -11
  239. package/dist/types/ts3.7/patch/media/HtmlMediaElementPatch.d.ts +0 -3
  240. package/dist/types/ts3.7/patch/media/MediaElementPatchOptions.d.ts +0 -19
  241. package/dist/types/ts3.7/patch/media/patchMediaElement.d.ts +0 -9
  242. package/dist/types/ts3.7/patch/media/patches/createPreventStallsPatch.d.ts +0 -17
  243. package/dist/types/ts3.7/patch/media/patches/createUnreliablePlaybackEventsPatch.d.ts +0 -26
  244. package/dist/types/ts3.7/vinyl/VinylPatchOptions.d.ts +0 -10
  245. package/dist/types/ts4.1/patch/media/HtmlMediaElementPatch.d.ts +0 -3
  246. package/dist/types/ts4.1/patch/media/MediaElementPatchOptions.d.ts +0 -19
  247. package/dist/types/ts4.1/patch/media/patchMediaElement.d.ts +0 -9
  248. package/dist/types/ts4.1/patch/media/patches/createPreventStallsPatch.d.ts +0 -17
  249. package/dist/types/ts4.1/patch/media/patches/createUnreliablePlaybackEventsPatch.d.ts +0 -26
  250. package/dist/types/ts4.1/vinyl/VinylPatchOptions.d.ts +0 -10
  251. package/dist/types/ts4.7/patch/media/HtmlMediaElementPatch.d.ts +0 -3
  252. package/dist/types/ts4.7/patch/media/MediaElementPatchOptions.d.ts +0 -19
  253. package/dist/types/ts4.7/patch/media/patchMediaElement.d.ts +0 -9
  254. package/dist/types/ts4.7/patch/media/patches/createPreventStallsPatch.d.ts +0 -17
  255. package/dist/types/ts4.7/patch/media/patches/createUnreliablePlaybackEventsPatch.d.ts +0 -26
  256. package/dist/types/ts4.7/vinyl/VinylPatchOptions.d.ts +0 -10
  257. package/dist/unit/types/current/patch/media/MediaElementPatchOptions.test.d.ts +0 -2
  258. package/dist/unit/types/current/patch/media/MediaElementPatchOptions.test.d.ts.map +0 -1
  259. package/dist/unit/types/current/patch/media/MediaElementPatchOptions.test.js +0 -17
  260. package/dist/unit/types/current/patch/media/patchMediaElement.test.d.ts +0 -2
  261. package/dist/unit/types/current/patch/media/patchMediaElement.test.d.ts.map +0 -1
  262. package/dist/unit/types/current/patch/media/patchMediaElement.test.js +0 -36
  263. package/dist/unit/types/current/patch/media/patches/createPreventStallsPatch.test.d.ts +0 -2
  264. package/dist/unit/types/current/patch/media/patches/createPreventStallsPatch.test.d.ts.map +0 -1
  265. package/dist/unit/types/current/patch/media/patches/createPreventStallsPatch.test.js +0 -93
  266. package/dist/unit/types/current/patch/media/patches/createUnreliablePlaybackEventsPatch.test.d.ts +0 -2
  267. package/dist/unit/types/current/patch/media/patches/createUnreliablePlaybackEventsPatch.test.d.ts.map +0 -1
  268. package/dist/unit/types/current/patch/media/patches/createUnreliablePlaybackEventsPatch.test.js +0 -423
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Extracts the container subtype from a MIME type, lowercased — the portion
3
+ * after the `/`, ignoring any parameters. For example
4
+ * `video/webm; codecs="vp9"` → `webm` and `audio/mp4` → `mp4`. Returns an empty
5
+ * string when the MIME type has no subtype.
6
+ */
7
+ export declare function mimeSubtype(mimeType: string): string;
8
+ //# sourceMappingURL=mimeType.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mimeType.d.ts","sourceRoot":"","sources":["../../../../../src/util/media/mimeType.ts"],"names":[],"mappings":"AAKA;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEpD"}
@@ -0,0 +1,13 @@
1
+ /*
2
+ * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
+ * SPDX-License-Identifier: Apache-2.0
4
+ */
5
+ /**
6
+ * Extracts the container subtype from a MIME type, lowercased — the portion
7
+ * after the `/`, ignoring any parameters. For example
8
+ * `video/webm; codecs="vp9"` → `webm` and `audio/mp4` → `mp4`. Returns an empty
9
+ * string when the MIME type has no subtype.
10
+ */
11
+ export function mimeSubtype(mimeType) {
12
+ return mimeType.split(';', 1)[0].trim().toLowerCase().split('/')[1] ?? '';
13
+ }
@@ -66,6 +66,11 @@ export declare class VinylPlayer<TrackLoadOptionsType extends TrackLoadOptions =
66
66
  * @see createVinylPlayer
67
67
  */
68
68
  protected constructor(factories: Factories<VinylDeps<TrackLoadOptionsType, OptionsType>>);
69
+ /**
70
+ * Logs each republished load span once at the verbose level, formatting its
71
+ * bounds as ISO date strings and its duration in milliseconds.
72
+ */
73
+ protected initializeLoadSpanLogging(): void;
69
74
  protected redispatchSubControllerEvents(): void;
70
75
  /**
71
76
  * Certain track events are redispatched on the player for the current track.
@@ -1 +1 @@
1
- {"version":3,"file":"VinylPlayer.d.ts","sourceRoot":"","sources":["../../../../src/vinyl/VinylPlayer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VinylPlayer.d.ts","sourceRoot":"","sources":["../../../../src/vinyl/VinylPlayer.ts"],"names":[],"mappings":"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"}
@@ -2,7 +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 { createDisposer, emptyRanges, equalDeep, EventHostImpl, logDebug, logInfo, logWarn, redispatchEvents, } from '@amazon/vinyl-util';
5
+ import { createDisposer, emptyRanges, equalDeep, EventHostImpl, getLogLevel, logDebug, logInfo, LogLevel, logVerbose, logWarn, redispatchEvents, } from '@amazon/vinyl-util';
6
6
  import { createContainer, } from '@amazon/vinyl-di';
7
7
  import { playerRegistryRef } from '../global/PlayerRegistry';
8
8
  import { ALL_PLAYBACK_STATE_EVENTS, } from '../playback/ReadonlyPlaybackController';
@@ -60,8 +60,30 @@ export class VinylPlayer extends EventHostImpl {
60
60
  playerRegistryRef.value.addPlayer(this);
61
61
  this.redispatchSubControllerEvents();
62
62
  this.redispatchCurrentTrackEvents();
63
+ this.initializeLoadSpanLogging();
63
64
  this.initializeAutoResetHandling();
64
65
  }
66
+ /**
67
+ * Logs each republished load span once at the verbose level, formatting its
68
+ * bounds as ISO date strings and its duration in milliseconds.
69
+ */
70
+ initializeLoadSpanLogging() {
71
+ this.disposer.add(this.on('loadSpan', (span) => {
72
+ // logVerbose would drop the record when verbose is off, but the
73
+ // date/duration formatting below would still run; guard it.
74
+ if (getLogLevel() > LogLevel.VERBOSE)
75
+ return;
76
+ logVerbose(this, 'loadSpan', {
77
+ kind: span.kind,
78
+ trackUri: span.trackUri,
79
+ mimeType: span.mimeType,
80
+ contentType: span.contentType,
81
+ startTime: new Date(span.startTime).toISOString(),
82
+ endTime: new Date(span.endTime).toISOString(),
83
+ durationMs: (span.endTime - span.startTime).toFixed(2),
84
+ });
85
+ }));
86
+ }
65
87
  redispatchSubControllerEvents() {
66
88
  const add = this.disposer.add;
67
89
  add(redispatchEvents(this, this.playbackController, ALL_PLAYBACK_STATE_EVENTS.filter(notResetEvent)));
@@ -1,6 +1,6 @@
1
1
  import type { CapabilitiesImplDeps } from '../client/CapabilitiesImpl';
2
2
  import { CapabilitiesImpl } from '../client/CapabilitiesImpl';
3
- import type { Merge, PartialDeep, PatchedRef } from '@amazon/vinyl-util';
3
+ import type { Merge, PartialDeep } from '@amazon/vinyl-util';
4
4
  import { noop } from '@amazon/vinyl-util';
5
5
  import type { PlaybackControllerImplDeps, PlaybackControllerImplOptions } from '../playback/PlaybackControllerImpl';
6
6
  import { PlaybackControllerImpl } from '../playback/PlaybackControllerImpl';
@@ -9,7 +9,6 @@ import { PlaybackSourceImpl } from '../playback/PlaybackSourceImpl';
9
9
  import { type VinylTrackFactoryDeps } from '../track/createVinylTrackFactories';
10
10
  import type { TrackControllerImplDeps, TrackControllerImplOptions } from '../track/TrackController';
11
11
  import { TrackControllerImpl } from '../track/TrackController';
12
- import type { VinylPatchOptions } from './VinylPatchOptions';
13
12
  import { type QualitySelectorImplOptions } from '../streaming/abr/QualitySelectorImpl';
14
13
  import { AdControllerImpl, type AdControllerImplDeps, type AdControllerImplOptions } from '../ad/AdControllerImpl';
15
14
  import { type MediaTextTrackProvider } from '../text/mediaTextTrackProvider';
@@ -41,11 +40,6 @@ export interface VinylDependencyOptions {
41
40
  * `'hidden'`; without one they render natively. See `TextTrackRenderer`.
42
41
  */
43
42
  readonly textTrackRenderer?: TextTrackRenderer;
44
- /**
45
- * Flags for patches that should be applied browser-specifically.
46
- * These will be defaulted based on the user-agent.
47
- */
48
- readonly patches?: PartialDeep<VinylPatchOptions>;
49
43
  /**
50
44
  * Configuration for the track controller.
51
45
  */
@@ -82,12 +76,7 @@ export interface VinylDependencyOptions {
82
76
  */
83
77
  export declare function createVinylFactories(options: VinylDependencyOptions): NoInfer<{
84
78
  options: (_deps: import("@amazon/vinyl-util").AnyRecord, add: import("@amazon/vinyl-util").AddDisposable) => import("@amazon/vinyl-observable").MutableValue<VinylOptions>;
85
- patchedMedia: () => PatchedRef<HTMLMediaElement>;
86
- media: (deps: {
87
- readonly patchedMedia: {
88
- readonly patched: HTMLMediaElement;
89
- };
90
- }) => HTMLMediaElement;
79
+ media: () => HTMLMediaElement;
91
80
  textTrackProvider: (deps: {
92
81
  readonly media: HTMLMediaElement;
93
82
  }) => MediaTextTrackProvider;
@@ -153,7 +142,7 @@ export declare function createVinylFactories(options: VinylDependencyOptions): N
153
142
  readonly manifestTransformed: ObservableValue<Promise<import("..").DashManifestData>>;
154
143
  readonly options: ObservableValue<Pick<VinylOptions, "text">>;
155
144
  }) => import("..").SidecarTextTrackController;
156
- options: import("@amazon/vinyl-di").Factory<ObservableValue<Pick<VinylOptions, "audio" | "text" | "abr" | "allowedContentTypes">>>;
145
+ options: import("@amazon/vinyl-di").Factory<ObservableValue<Pick<VinylOptions, "text" | "audio" | "abr" | "allowedContentTypes">>>;
157
146
  playbackController: import("@amazon/vinyl-di").Factory<import("..").PlaybackController>;
158
147
  playbackSource: import("@amazon/vinyl-di").Factory<import("..").PlaybackSource>;
159
148
  drmKeySystemResolver: import("@amazon/vinyl-di").Factory<import("..").DrmKeySystemResolver>;
@@ -165,7 +154,9 @@ export declare function createVinylFactories(options: VinylDependencyOptions): N
165
154
  textTrackRenderer: import("@amazon/vinyl-di").Factory<TextTrackRenderer | null>;
166
155
  adController: import("@amazon/vinyl-di").Factory<import("..").AdController>;
167
156
  }>;
168
- createHlsFactories: (deps: import("..").HlsFactoryDeps) => (loadOptions: import("..").HlsTrackLoadOptions) => NoInfer<{
157
+ createHlsFactories: (deps: import("..").HlsFactoryDeps) => (loadOptions: import("..").HlsTrackLoadOptions /**
158
+ * Configuration for adaptive bitrate switching.
159
+ */) => NoInfer<{
169
160
  baseContentTypesValue: typeof import("..").createHlsContentTypesValue;
170
161
  contentTypesValue: typeof import("..").createAllowedContentTypesValue;
171
162
  manifestProvider: () => import("..").HlsManifestProvider;
@@ -208,7 +199,7 @@ export declare function createVinylFactories(options: VinylDependencyOptions): N
208
199
  readonly manifestTransformed: ObservableValue<Promise<import("..").HlsManifestData>>;
209
200
  readonly options: ObservableValue<Pick<VinylOptions, "text">>;
210
201
  }) => import("..").SidecarTextTrackController;
211
- options: import("@amazon/vinyl-di").Factory<ObservableValue<Pick<VinylOptions, "audio" | "text" | "abr" | "allowedContentTypes">>>;
202
+ options: import("@amazon/vinyl-di").Factory<ObservableValue<Pick<VinylOptions, "text" | "audio" | "abr" | "allowedContentTypes">>>;
212
203
  playbackController: import("@amazon/vinyl-di").Factory<import("..").PlaybackController>;
213
204
  playbackSource: import("@amazon/vinyl-di").Factory<import("..").PlaybackSource>;
214
205
  drmKeySystemResolver: import("@amazon/vinyl-di").Factory<import("..").DrmKeySystemResolver>;
@@ -1 +1 @@
1
- {"version":3,"file":"createVinylFactories.d.ts","sourceRoot":"","sources":["../../../../src/vinyl/createVinylFactories.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"createVinylFactories.d.ts","sourceRoot":"","sources":["../../../../src/vinyl/createVinylFactories.ts"],"names":[],"mappings":"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"}
@@ -3,14 +3,12 @@
3
3
  * SPDX-License-Identifier: Apache-2.0
4
4
  */
5
5
  import { CapabilitiesImpl } from '../client/CapabilitiesImpl';
6
- import { mergeDeep, noop } from '@amazon/vinyl-util';
7
- import { patchMediaElement } from '../patch/media/patchMediaElement';
6
+ import { noop } from '@amazon/vinyl-util';
8
7
  import { PlaybackControllerImpl } from '../playback/PlaybackControllerImpl';
9
8
  import { PlaybackSourceImpl } from '../playback/PlaybackSourceImpl';
10
9
  import { createVinylTrackFactories, } from '../track/createVinylTrackFactories';
11
10
  import { TrackControllerImpl } from '../track/TrackController';
12
11
  import { createTrackFactory } from '../track/TrackFactory';
13
- import { defaultPatchOptions } from './VinylPatchOptions';
14
12
  import { AdControllerImpl, } from '../ad/AdControllerImpl';
15
13
  import { createDashFactories } from '../track/dash/createDashFactories';
16
14
  import { createHlsFactories } from '../track/hls/createHlsFactories';
@@ -30,17 +28,9 @@ import { defaultAdLoadOptionsResolver } from '../ad/defaultAdLoadOptionsResolver
30
28
  * @param options
31
29
  */
32
30
  export function createVinylFactories(options) {
33
- const patches = mergeDeep([
34
- defaultPatchOptions.value,
35
- options.patches ?? {},
36
- ]);
37
31
  return validateFactories({
38
32
  options: playerConfigFactory(defaultVinylOptions, vinylOptionsValidator),
39
- patchedMedia: () => {
40
- // Patches the media element if necessary.
41
- return patchMediaElement(options.media, patches.media);
42
- },
43
- media: (deps) => deps.patchedMedia.patched,
33
+ media: () => options.media,
44
34
  // One provider per media element (the player container creates each
45
35
  // dependency once), so text tracks are reused rather than accumulated.
46
36
  textTrackProvider: (deps) => createMediaTextTrackProvider({ media: deps.media }),
@@ -2,7 +2,7 @@ import { EventHostImpl, Maybe } from '@amazon/vinyl-util';
2
2
  import { DrmOptions } from './DrmOptions';
3
3
  import { DrmController, DrmControllerEventMap, DrmKeySystemSupport, DrmPlaybackOptions } from './DrmController';
4
4
  import { CommonEme, CommonMediaKeyMessageEvent, CommonMediaKeys, CommonMediaKeySession } from './commonEme/CommonEme';
5
- import { MediaFormatMetadata } from '../streaming/MediaQualityMetadata';
5
+ import { ContentType, MediaFormatMetadata } from '../streaming/MediaQualityMetadata';
6
6
  import { TrackUri } from '../track/Track';
7
7
  /**
8
8
  * The number of seconds a license request will be allowed before timing out.
@@ -30,6 +30,13 @@ export interface DrmControllerMessageProps {
30
30
  * to their own track.
31
31
  */
32
32
  readonly trackUri: TrackUri | null;
33
+ /**
34
+ * The MIME and content type of the session's content, captured at creation
35
+ * so the license span can distinguish the certificate exchange from the
36
+ * per-content-type license exchanges.
37
+ */
38
+ readonly mimeType: string;
39
+ readonly contentType: ContentType | null;
33
40
  }
34
41
  export declare class DrmControllerImpl extends EventHostImpl<DrmControllerEventMap> implements DrmController {
35
42
  private readonly deps;
@@ -44,6 +51,8 @@ export declare class DrmControllerImpl extends EventHostImpl<DrmControllerEventM
44
51
  private bufferingTrackUri;
45
52
  private sessionAbort;
46
53
  private pendingMessageProps;
54
+ private keySetupSpanArmed;
55
+ private keySetupSpanStart;
47
56
  private readonly disposer;
48
57
  constructor(deps: DrmControllerImplDeps, options?: Maybe<Partial<DrmOptions>>);
49
58
  configure(options: Maybe<Partial<DrmOptions>>): void;
@@ -64,7 +73,16 @@ export declare class DrmControllerImpl extends EventHostImpl<DrmControllerEventM
64
73
  * The new session will be added to the current sessions list.
65
74
  */
66
75
  private maybeCreateSession;
76
+ /**
77
+ * Captures the key-setup span start at the top of the session-creation path
78
+ * (before media keys are attached), latching so only the first session of
79
+ * the current track load is measured.
80
+ */
81
+ private markKeySetupStart;
82
+ private dispatchLoadSpan;
67
83
  initializeForPlayback(drmInfo: MediaFormatMetadata | null, options?: DrmPlaybackOptions): void;
84
+ /** True when the manifest carried pssh (sessions come from it, not events). */
85
+ private manifestProvidesInitData;
68
86
  setBufferingDrmInfo(drmInfo: MediaFormatMetadata | null, options?: DrmPlaybackOptions): void;
69
87
  /**
70
88
  * If the drm metadata contains initialization data for the current key system, create a new session.
@@ -38,11 +38,8 @@ export * from './global/environment';
38
38
  export * from './global/globalRef';
39
39
  export * from './global/initializeVinylGlobal';
40
40
  export * from './global/PlayerRegistry';
41
- export * from './patch/media/HtmlMediaElementPatch';
42
- export * from './patch/media/MediaElementPatchOptions';
43
- export * from './patch/media/patches/createPreventStallsPatch';
44
- export * from './patch/media/patches/createUnreliablePlaybackEventsPatch';
45
- export * from './patch/media/patchMediaElement';
41
+ export * from './playback/createStallDetector';
42
+ export * from './playback/createStallMonitor';
46
43
  export * from './playback/error/InvalidSeekError';
47
44
  export * from './playback/error/ReportableMediaError';
48
45
  export * from './playback/logging/mediaErrorToJson';
@@ -150,12 +147,12 @@ export * from './util/media/codecOverrides';
150
147
  export * from './util/media/codecSupport';
151
148
  export * from './util/media/getAudioContext';
152
149
  export * from './util/media/mediaSource';
150
+ export * from './util/media/mimeType';
153
151
  export * from './util/media/sourceBuffer';
154
152
  export * from './vinyl/createVinylFactories';
155
153
  export * from './vinyl/playerConfigFactory';
156
154
  export * from './vinyl/ReadonlyPlaybackStreamingState';
157
155
  export * from './vinyl/VinylDeps';
158
156
  export * from './vinyl/VinylOptions';
159
- export * from './vinyl/VinylPatchOptions';
160
157
  export * from './vinyl/VinylPlayer';
161
158
  //# sourceMappingURL=index.d.ts.map
@@ -29,12 +29,19 @@ export interface PlaybackControllerImplOptions {
29
29
  * Default: 30
30
30
  */
31
31
  readonly seekTimeout: number;
32
+ /**
33
+ * The number of seconds the play head must be frozen while playing before a stall is reported
34
+ * via the `stallEntered`/`stallEnded` events.
35
+ * Default: 1
36
+ */
37
+ readonly stallThreshold: number;
32
38
  }
33
39
  export declare const defaultPlaybackControllerImplOptions: {
34
40
  readonly loopTimeAffordance: 2;
35
41
  readonly minSeekableBuffer: -1;
36
42
  readonly playTimeout: 30;
37
43
  readonly seekTimeout: 30;
44
+ readonly stallThreshold: 1;
38
45
  };
39
46
  /**
40
47
  * Safari and Edge Legacy cannot reliably seek close to the end of a seekable range.
@@ -57,6 +64,7 @@ export declare class PlaybackControllerImpl extends EventHostImpl<PlaybackContro
57
64
  private _seeking;
58
65
  private _waiting;
59
66
  private _seekId;
67
+ private stopStallDetection;
60
68
  private userVolume;
61
69
  private _pendingPlay;
62
70
  private playAbort;
@@ -153,6 +161,13 @@ export declare class PlaybackControllerImpl extends EventHostImpl<PlaybackContro
153
161
  pause(): void;
154
162
  private get pendingPlay();
155
163
  private set pendingPlay(value);
164
+ /**
165
+ * Starts (or restarts) the stall detector: recovers a play head that stays frozen when it
166
+ * should be advancing — some WebKit versions never resume after a seek or a play, e.g. after a
167
+ * buffer-flushing seek. Superseded by the next seek/play and stopped on dispose.
168
+ * @private
169
+ */
170
+ private startStallDetection;
156
171
  play(): Promise<void>;
157
172
  get canPlay(): boolean;
158
173
  get canPlayThrough(): boolean;
@@ -194,6 +194,19 @@ export interface PlaybackControllerEventMap {
194
194
  * true and the media is seeking a new position.
195
195
  */
196
196
  readonly seeking: AnyRecord;
197
+ /**
198
+ * Fired when the play head has been detected as frozen while playing — i.e. no `timeUpdate`
199
+ * was observed for longer than the stall threshold. Only emitted once playback has actually
200
+ * been observed (a `playing` event), so it is not emitted during initial loading or while
201
+ * awaiting a seek. Each stall is bracketed by a `stallEntered`/{@link stallEnded} pair.
202
+ */
203
+ readonly stallEntered: AnyRecord;
204
+ /**
205
+ * Fired when a stall (see {@link stallEntered}) has ended, for any reason. `started` is the
206
+ * time of the last `timeUpdate` observed before the play head froze, and `duration` is the
207
+ * total number of seconds the play head was frozen.
208
+ */
209
+ readonly stallEnded: OperationCompletedEvent<StallEndedReason>;
197
210
  /**
198
211
  * Fired when the time indicated by the currentTime attribute has been updated.
199
212
  */
@@ -241,6 +254,19 @@ export declare const waitedReasons: readonly [
241
254
  WaitedReason.EMPTIED,
242
255
  WaitedReason.SEEKING
243
256
  ];
257
+ /**
258
+ * Reasons a stall (see {@link PlaybackControllerEventMap.stallEntered}) has ended.
259
+ */
260
+ export declare enum StallEndedReason {
261
+ /** The play head advanced again — playback resumed. */
262
+ PLAYING = "playing",
263
+ /** Playback was paused. */
264
+ PAUSE = "pause",
265
+ /** A seek started. */
266
+ SEEKING = "seeking",
267
+ /** The media was emptied (e.g. unloaded/reloaded). */
268
+ EMPTIED = "emptied"
269
+ }
244
270
  export declare const ALL_PLAYBACK_STATE_EVENTS: readonly [
245
271
  "abort",
246
272
  "canPlay",
@@ -267,6 +293,8 @@ export declare const ALL_PLAYBACK_STATE_EVENTS: readonly [
267
293
  "resize",
268
294
  "seeked",
269
295
  "seeking",
296
+ "stallEntered",
297
+ "stallEnded",
270
298
  "timeUpdate",
271
299
  "volumeChange",
272
300
  "waited",
@@ -0,0 +1,43 @@
1
+ export interface StallDetectorOptions {
2
+ /**
3
+ * Called when playback resumes without emitting a `playing` event (or after the detector
4
+ * revived it), so the caller can announce playback.
5
+ */
6
+ readonly fabricatePlaying: () => void;
7
+ /** Poll interval in seconds. Default: 0.25 */
8
+ readonly pollInterval?: number;
9
+ /** Seconds the play head must be frozen before recovering. Default: 0.75 */
10
+ readonly stallThreshold?: number;
11
+ /**
12
+ * Don't nudge this close to the end of buffered data; a freeze there is a
13
+ * legitimate wait for more data. Seconds. Default: 0.5
14
+ */
15
+ readonly bufferEndMargin?: number;
16
+ /** Seconds to nudge the play head forward to prod a resume. Default: 0.1 */
17
+ readonly stallSkip?: number;
18
+ /** Max recovery attempts before giving up. Default: 3 */
19
+ readonly maxAttempts?: number;
20
+ /**
21
+ * Nudge even when the playhead isn't inside a buffered range. Some WebKit versions leave a
22
+ * seek perpetually pending (no `seeked`) with a stale empty `buffered` even though data is
23
+ * appended; re-issuing the seek via a nudge can complete it. Off by default (only nudge over
24
+ * genuinely buffered data). Default: false
25
+ */
26
+ readonly nudgeUnbuffered?: boolean;
27
+ }
28
+ /**
29
+ * Watches a media element after a seek/play and drives it back into a playing state. Some WebKit
30
+ * versions stall: the play head freezes inside buffered data and playback never resumes (often with
31
+ * a stale low readyState). This polls the play head and, while the element should be advancing:
32
+ *
33
+ * - if it's frozen inside buffered data, nudges currentTime forward to prod a resume;
34
+ * - if there's no data at the playhead, waits (it's legitimately buffering, or between sources).
35
+ *
36
+ * When the play head progresses it calls {@link StallDetectorOptions.fabricatePlaying} if playback
37
+ * resumed without a `playing` event (or after the detector revived it), then stops. It also stops
38
+ * on pause/ended/emptied or after {@link StallDetectorOptions.maxAttempts}.
39
+ *
40
+ * Start it after a seek or play only when playback is intended — a paused element won't advance.
41
+ */
42
+ export declare function createStallDetector(media: HTMLMediaElement, options: StallDetectorOptions): () => void;
43
+ //# sourceMappingURL=createStallDetector.d.ts.map
@@ -0,0 +1,45 @@
1
+ import { Timestamp } from '@amazon/vinyl-util';
2
+ import { ReadonlyPlaybackController } from './ReadonlyPlaybackController';
3
+ import { StallEndedReason } from './ReadonlyPlaybackController';
4
+ export interface StallMonitorOptions {
5
+ /**
6
+ * Seconds the play head must be frozen (no `timeUpdate`) while playing before a stall is
7
+ * reported. Default: 1
8
+ */
9
+ readonly stallThreshold?: number;
10
+ /**
11
+ * How often (seconds) the play head freeze is checked. Default: 0.25
12
+ */
13
+ readonly pollInterval?: number;
14
+ }
15
+ export interface StallEndedInfo {
16
+ /** Time of the last `timeUpdate` observed before the play head froze. */
17
+ readonly started: Timestamp;
18
+ /** Time the stall ended. */
19
+ readonly ended: Timestamp;
20
+ /** Total seconds the play head was frozen. */
21
+ readonly duration: number;
22
+ /** Why the stall ended. */
23
+ readonly reason: StallEndedReason;
24
+ }
25
+ export interface StallMonitorCallbacks {
26
+ /** Called when a stall is first detected. */
27
+ readonly onStallEntered: () => void;
28
+ /** Called when a detected stall ends. */
29
+ readonly onStallEnded: (info: StallEndedInfo) => void;
30
+ }
31
+ /**
32
+ * Watches a {@link ReadonlyPlaybackController} for stalls while playing: the play head freezing
33
+ * (no `timeUpdate`) for longer than {@link StallMonitorOptions.stallThreshold} seconds.
34
+ *
35
+ * Detection only runs once playback has actually been observed (a `playing` event) and is
36
+ * suspended on `pause`/`seeking`/`emptied` until playback is observed again — so a stall is never
37
+ * reported during initial loading or while awaiting a seek. A detected stall ends when the play
38
+ * head advances again (`playing`) or playback stops for another reason (`pause`/`seeking`/
39
+ * `emptied`); {@link StallEndedInfo.duration} is measured from the last `timeUpdate` before the
40
+ * freeze, so it reflects the full frozen time rather than only the time past the threshold.
41
+ *
42
+ * Returns a function that stops the monitor.
43
+ */
44
+ export declare function createStallMonitor(controller: ReadonlyPlaybackController, callbacks: StallMonitorCallbacks, options?: StallMonitorOptions): () => void;
45
+ //# sourceMappingURL=createStallMonitor.d.ts.map
@@ -1,4 +1,5 @@
1
1
  import { ObjectSchema } from '@amazon/vinyl-validation';
2
+ import { Maybe } from '@amazon/vinyl-util';
2
3
  /**
3
4
  * Criteria used to pick which audio rendition to play.
4
5
  */
@@ -33,6 +34,32 @@ export interface AudioOptions {
33
34
  * The audio selection criteria (language / descriptive).
34
35
  */
35
36
  readonly selection?: AudioSelection;
37
+ /**
38
+ * When `true`, disables the audio sampling-rate support filter, so audio
39
+ * renditions whose sampling rate exceeds what the platform reports (via the
40
+ * `AudioContext` output rate) are kept and offered to playback anyway.
41
+ * `false` (the default) applies the filter. Changing this re-filters the
42
+ * timeline immediately.
43
+ */
44
+ readonly disableSampleRateFilter?: boolean;
45
+ /**
46
+ * The maximum audio sampling rate (Hz) the sampling-rate filter treats as
47
+ * supported. When set, it takes precedence over the platform's
48
+ * `AudioContext`-reported output rate. Ignored when
49
+ * {@link disableSampleRateFilter} is `true`. Changing this re-filters the
50
+ * timeline immediately. `null`/`undefined` falls back to the reported rate.
51
+ */
52
+ readonly maxSampleRate?: Maybe<number>;
53
+ /**
54
+ * The minimum audio sampling rate (Hz) the sampling-rate filter treats as
55
+ * supported. When set, renditions below it are filtered out as a soft floor
56
+ * (if every audio rendition is below it, the highest is kept so playback is
57
+ * never stranded). Applied alongside the max cap whenever the filter runs,
58
+ * regardless of how the max was determined; ignored when
59
+ * {@link disableSampleRateFilter} is `true`. Changing this re-filters the
60
+ * timeline immediately.
61
+ */
62
+ readonly minSampleRate?: Maybe<number>;
36
63
  }
37
64
  export declare const defaultAudioOptions: AudioOptions;
38
65
  export declare const audioOptionsValidator: ObjectSchema<AudioOptions>;
@@ -38,10 +38,6 @@ export interface ContentStream extends ReadonlyEventHost<StreamingEventMap>, Dis
38
38
  * True if the last segment has been appended.
39
39
  */
40
40
  readonly bufferingEnded: boolean;
41
- /**
42
- * True while this stream's buffer holds any data.
43
- */
44
- readonly hasData: boolean;
45
41
  /**
46
42
  * Starts prefetching with the given priority and prefetch start time.
47
43
  * @param options
@@ -96,7 +92,6 @@ export declare class ContentStreamImpl extends EventHostImpl<StreamingEventMap>
96
92
  get streamingQuality(): (MediaQualityMetadata | null);
97
93
  get bufferingQuality(): (MediaQualityMetadata | null);
98
94
  get playbackQuality(): (MediaQualityMetadata | null);
99
- get hasData(): boolean;
100
95
  get bufferingEnded(): boolean;
101
96
  get error(): (Error | null);
102
97
  /**
@@ -1,14 +1,17 @@
1
1
  import { Timestamp } from '@amazon/vinyl-util';
2
2
  import { TrackUri } from '../track/Track';
3
+ import { ContentType } from './MediaQualityMetadata';
3
4
  /**
4
5
  * The stage of the track-load journey a {@link LoadSpanMeasurement} describes.
5
6
  *
6
7
  * - `manifest`: fetching and parsing the DASH/HLS manifest.
8
+ * - `keySetup`: the EME/CDM setup, from session creation to the CDM's first
9
+ * license message. Precedes and is contiguous with `license`.
7
10
  * - `license`: the DRM license request/response exchange.
8
11
  * - `initSegment`: fetching the initialization segment.
9
12
  * - `firstSegment`: fetching the first media segment.
10
13
  */
11
- export type LoadSpanKind = 'manifest' | 'license' | 'initSegment' | 'firstSegment';
14
+ export type LoadSpanKind = 'manifest' | 'keySetup' | 'license' | 'initSegment' | 'firstSegment';
12
15
  /**
13
16
  * A timed span for one stage of a track load.
14
17
  *
@@ -35,6 +38,17 @@ export interface LoadSpanMeasurement {
35
38
  * buffering DRM info is set).
36
39
  */
37
40
  readonly trackUri?: TrackUri;
41
+ /**
42
+ * The MIME type of the content this span was measured for, when known. Set
43
+ * for DRM `license` spans so a certificate exchange and the per-content-type
44
+ * license exchanges are distinguishable.
45
+ */
46
+ readonly mimeType?: string;
47
+ /**
48
+ * The content type this span was measured for, when known. Set alongside
49
+ * {@link mimeType} for DRM `license` spans.
50
+ */
51
+ readonly contentType?: ContentType;
38
52
  }
39
53
  /**
40
54
  * A {@link LoadSpanMeasurement} attributed to the track it was measured for.
@@ -34,10 +34,6 @@ export interface StreamingEventMap {
34
34
  * The last segment has finished appending.
35
35
  */
36
36
  readonly bufferingEnded: AnyRecord;
37
- /**
38
- * The buffer went from empty to holding data, or back to empty.
39
- */
40
- readonly hasDataChange: ChangeEvent<boolean>;
41
37
  /**
42
38
  * Dispatched when a streaming error occurs.
43
39
  */
@@ -97,7 +93,6 @@ export declare const ALL_STREAMING_EVENTS: readonly [
97
93
  "bufferingQualityChange",
98
94
  "playbackQualityChange",
99
95
  "bufferingEnded",
100
- "hasDataChange",
101
96
  "error",
102
97
  "reset",
103
98
  "qualitiesChange",