@editframe/elements 0.23.8-beta.0 → 0.25.0-beta.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 (339) hide show
  1. package/dist/DelayedLoadingState.js +31 -0
  2. package/dist/DelayedLoadingState.js.map +1 -0
  3. package/dist/EF_FRAMEGEN.d.ts +50 -46
  4. package/dist/EF_FRAMEGEN.js +5 -1
  5. package/dist/EF_FRAMEGEN.js.map +1 -0
  6. package/dist/EF_INTERACTIVE.js +4 -0
  7. package/dist/EF_INTERACTIVE.js.map +1 -0
  8. package/dist/EF_RENDERING.js +4 -0
  9. package/dist/EF_RENDERING.js.map +1 -0
  10. package/dist/_virtual/_@oxc-project_runtime@0.94.0/helpers/decorate.js +4 -1
  11. package/dist/attachContextRoot.js +6 -1
  12. package/dist/attachContextRoot.js.map +1 -0
  13. package/dist/elements/CrossUpdateController.js +4 -0
  14. package/dist/elements/CrossUpdateController.js.map +1 -0
  15. package/dist/elements/EFAudio.d.ts +24 -16
  16. package/dist/elements/EFAudio.js +10 -1
  17. package/dist/elements/EFAudio.js.map +1 -0
  18. package/dist/elements/EFCaptions.d.ts +118 -109
  19. package/dist/elements/EFCaptions.js +11 -6
  20. package/dist/elements/EFCaptions.js.map +1 -0
  21. package/dist/elements/EFImage.d.ts +31 -20
  22. package/dist/elements/EFImage.js +6 -1
  23. package/dist/elements/EFImage.js.map +1 -0
  24. package/dist/elements/EFMedia/AssetIdMediaEngine.js +5 -0
  25. package/dist/elements/EFMedia/AssetIdMediaEngine.js.map +1 -0
  26. package/dist/elements/EFMedia/AssetMediaEngine.js +12 -0
  27. package/dist/elements/EFMedia/AssetMediaEngine.js.map +1 -0
  28. package/dist/elements/EFMedia/BaseMediaEngine.js +53 -0
  29. package/dist/elements/EFMedia/BaseMediaEngine.js.map +1 -0
  30. package/dist/elements/EFMedia/BufferedSeekingInput.d.ts +47 -46
  31. package/dist/elements/EFMedia/BufferedSeekingInput.js +6 -1
  32. package/dist/elements/EFMedia/BufferedSeekingInput.js.map +1 -0
  33. package/dist/elements/EFMedia/JitMediaEngine.js +12 -0
  34. package/dist/elements/EFMedia/JitMediaEngine.js.map +1 -0
  35. package/dist/elements/EFMedia/audioTasks/makeAudioBufferTask.d.ts +9 -13
  36. package/dist/elements/EFMedia/audioTasks/makeAudioBufferTask.js +5 -0
  37. package/dist/elements/EFMedia/audioTasks/makeAudioBufferTask.js.map +1 -0
  38. package/dist/elements/EFMedia/audioTasks/makeAudioFrequencyAnalysisTask.js +6 -1
  39. package/dist/elements/EFMedia/audioTasks/makeAudioFrequencyAnalysisTask.js.map +1 -0
  40. package/dist/elements/EFMedia/audioTasks/makeAudioInitSegmentFetchTask.js +5 -0
  41. package/dist/elements/EFMedia/audioTasks/makeAudioInitSegmentFetchTask.js.map +1 -0
  42. package/dist/elements/EFMedia/audioTasks/makeAudioInputTask.js +5 -0
  43. package/dist/elements/EFMedia/audioTasks/makeAudioInputTask.js.map +1 -0
  44. package/dist/elements/EFMedia/audioTasks/makeAudioSeekTask.js +5 -0
  45. package/dist/elements/EFMedia/audioTasks/makeAudioSeekTask.js.map +1 -0
  46. package/dist/elements/EFMedia/audioTasks/makeAudioSegmentFetchTask.js +5 -0
  47. package/dist/elements/EFMedia/audioTasks/makeAudioSegmentFetchTask.js.map +1 -0
  48. package/dist/elements/EFMedia/audioTasks/makeAudioSegmentIdTask.js +5 -0
  49. package/dist/elements/EFMedia/audioTasks/makeAudioSegmentIdTask.js.map +1 -0
  50. package/dist/elements/EFMedia/audioTasks/makeAudioTimeDomainAnalysisTask.js +6 -1
  51. package/dist/elements/EFMedia/audioTasks/makeAudioTimeDomainAnalysisTask.js.map +1 -0
  52. package/dist/elements/EFMedia/shared/AudioSpanUtils.js +18 -2
  53. package/dist/elements/EFMedia/shared/AudioSpanUtils.js.map +1 -0
  54. package/dist/elements/EFMedia/shared/BufferUtils.d.ts +9 -67
  55. package/dist/elements/EFMedia/shared/BufferUtils.js +15 -0
  56. package/dist/elements/EFMedia/shared/BufferUtils.js.map +1 -0
  57. package/dist/elements/EFMedia/shared/GlobalInputCache.js +29 -0
  58. package/dist/elements/EFMedia/shared/GlobalInputCache.js.map +1 -0
  59. package/dist/elements/EFMedia/shared/MediaTaskUtils.d.ts +11 -17
  60. package/dist/elements/EFMedia/shared/PrecisionUtils.js +25 -0
  61. package/dist/elements/EFMedia/shared/PrecisionUtils.js.map +1 -0
  62. package/dist/elements/EFMedia/shared/ThumbnailExtractor.js +22 -0
  63. package/dist/elements/EFMedia/shared/ThumbnailExtractor.js.map +1 -0
  64. package/dist/elements/EFMedia/tasks/makeMediaEngineTask.js +13 -0
  65. package/dist/elements/EFMedia/tasks/makeMediaEngineTask.js.map +1 -0
  66. package/dist/elements/EFMedia/videoTasks/MainVideoInputCache.js +21 -0
  67. package/dist/elements/EFMedia/videoTasks/MainVideoInputCache.js.map +1 -0
  68. package/dist/elements/EFMedia/videoTasks/ScrubInputCache.js +18 -0
  69. package/dist/elements/EFMedia/videoTasks/ScrubInputCache.js.map +1 -0
  70. package/dist/elements/EFMedia/videoTasks/makeScrubVideoBufferTask.js +10 -0
  71. package/dist/elements/EFMedia/videoTasks/makeScrubVideoBufferTask.js.map +1 -0
  72. package/dist/elements/EFMedia/videoTasks/makeScrubVideoInitSegmentFetchTask.js +5 -0
  73. package/dist/elements/EFMedia/videoTasks/makeScrubVideoInitSegmentFetchTask.js.map +1 -0
  74. package/dist/elements/EFMedia/videoTasks/makeScrubVideoInputTask.js +5 -0
  75. package/dist/elements/EFMedia/videoTasks/makeScrubVideoInputTask.js.map +1 -0
  76. package/dist/elements/EFMedia/videoTasks/makeScrubVideoSeekTask.js +6 -1
  77. package/dist/elements/EFMedia/videoTasks/makeScrubVideoSeekTask.js.map +1 -0
  78. package/dist/elements/EFMedia/videoTasks/makeScrubVideoSegmentFetchTask.js +5 -0
  79. package/dist/elements/EFMedia/videoTasks/makeScrubVideoSegmentFetchTask.js.map +1 -0
  80. package/dist/elements/EFMedia/videoTasks/makeScrubVideoSegmentIdTask.js +5 -0
  81. package/dist/elements/EFMedia/videoTasks/makeScrubVideoSegmentIdTask.js.map +1 -0
  82. package/dist/elements/EFMedia/videoTasks/makeUnifiedVideoSeekTask.js +16 -2
  83. package/dist/elements/EFMedia/videoTasks/makeUnifiedVideoSeekTask.js.map +1 -0
  84. package/dist/elements/EFMedia/videoTasks/makeVideoBufferTask.d.ts +9 -13
  85. package/dist/elements/EFMedia/videoTasks/makeVideoBufferTask.js +5 -0
  86. package/dist/elements/EFMedia/videoTasks/makeVideoBufferTask.js.map +1 -0
  87. package/dist/elements/EFMedia.d.ts +115 -104
  88. package/dist/elements/EFMedia.js +25 -1
  89. package/dist/elements/EFMedia.js.map +1 -0
  90. package/dist/elements/EFSourceMixin.d.ts +10 -11
  91. package/dist/elements/EFSourceMixin.js +5 -0
  92. package/dist/elements/EFSourceMixin.js.map +1 -0
  93. package/dist/elements/EFSurface.d.ts +35 -27
  94. package/dist/elements/EFSurface.js +6 -1
  95. package/dist/elements/EFSurface.js.map +1 -0
  96. package/dist/elements/EFTemporal.d.ts +200 -213
  97. package/dist/elements/EFTemporal.js +24 -4
  98. package/dist/elements/EFTemporal.js.map +1 -0
  99. package/dist/elements/EFThumbnailStrip.d.ts +91 -83
  100. package/dist/elements/EFThumbnailStrip.js +49 -4
  101. package/dist/elements/EFThumbnailStrip.js.map +1 -0
  102. package/dist/elements/EFTimegroup.d.ts +107 -88
  103. package/dist/elements/EFTimegroup.js +74 -4
  104. package/dist/elements/EFTimegroup.js.map +1 -0
  105. package/dist/elements/EFVideo.d.ts +120 -108
  106. package/dist/elements/EFVideo.js +46 -2
  107. package/dist/elements/EFVideo.js.map +1 -0
  108. package/dist/elements/EFWaveform.d.ts +48 -41
  109. package/dist/elements/EFWaveform.js +6 -1
  110. package/dist/elements/EFWaveform.js.map +1 -0
  111. package/dist/elements/FetchMixin.d.ts +8 -6
  112. package/dist/elements/FetchMixin.js +4 -0
  113. package/dist/elements/FetchMixin.js.map +1 -0
  114. package/dist/elements/SampleBuffer.d.ts +18 -13
  115. package/dist/elements/SampleBuffer.js +5 -0
  116. package/dist/elements/SampleBuffer.js.map +1 -0
  117. package/dist/elements/TargetController.d.ts +23 -24
  118. package/dist/elements/TargetController.js +8 -3
  119. package/dist/elements/TargetController.js.map +1 -0
  120. package/dist/elements/TimegroupController.d.ts +17 -12
  121. package/dist/elements/TimegroupController.js +4 -0
  122. package/dist/elements/TimegroupController.js.map +1 -0
  123. package/dist/elements/durationConverter.js +9 -4
  124. package/dist/elements/durationConverter.js.map +1 -0
  125. package/dist/elements/parseTimeToMs.js +4 -0
  126. package/dist/elements/parseTimeToMs.js.map +1 -0
  127. package/dist/elements/renderTemporalAudio.js +4 -0
  128. package/dist/elements/renderTemporalAudio.js.map +1 -0
  129. package/dist/elements/updateAnimations.js +29 -8
  130. package/dist/elements/updateAnimations.js.map +1 -0
  131. package/dist/elements-ZhsB7B5N.css +9 -0
  132. package/dist/elements-ZhsB7B5N.css.map +1 -0
  133. package/dist/getRenderInfo.d.ts +53 -47
  134. package/dist/getRenderInfo.js +5 -0
  135. package/dist/getRenderInfo.js.map +1 -0
  136. package/dist/gui/ContextMixin.d.ts +19 -20
  137. package/dist/gui/ContextMixin.js +32 -1
  138. package/dist/gui/ContextMixin.js.map +1 -0
  139. package/dist/gui/Controllable.d.ts +13 -14
  140. package/dist/gui/Controllable.js +5 -0
  141. package/dist/gui/Controllable.js.map +1 -0
  142. package/dist/gui/EFConfiguration.d.ts +18 -14
  143. package/dist/gui/EFConfiguration.js +6 -1
  144. package/dist/gui/EFConfiguration.js.map +1 -0
  145. package/dist/gui/EFControls.d.ts +35 -31
  146. package/dist/gui/EFControls.js +8 -3
  147. package/dist/gui/EFControls.js.map +1 -0
  148. package/dist/gui/EFDial.d.ts +23 -16
  149. package/dist/gui/EFDial.js +6 -1
  150. package/dist/gui/EFDial.js.map +1 -0
  151. package/dist/gui/EFFilmstrip.d.ts +183 -177
  152. package/dist/gui/EFFilmstrip.js +30 -25
  153. package/dist/gui/EFFilmstrip.js.map +1 -0
  154. package/dist/gui/EFFitScale.d.ts +30 -24
  155. package/dist/gui/EFFitScale.js +6 -1
  156. package/dist/gui/EFFitScale.js.map +1 -0
  157. package/dist/gui/EFFocusOverlay.d.ts +22 -14
  158. package/dist/gui/EFFocusOverlay.js +6 -1
  159. package/dist/gui/EFFocusOverlay.js.map +1 -0
  160. package/dist/gui/EFPause.d.ts +24 -18
  161. package/dist/gui/EFPause.js +6 -1
  162. package/dist/gui/EFPause.js.map +1 -0
  163. package/dist/gui/EFPlay.d.ts +24 -18
  164. package/dist/gui/EFPlay.js +6 -1
  165. package/dist/gui/EFPlay.js.map +1 -0
  166. package/dist/gui/EFPreview.d.ts +22 -15
  167. package/dist/gui/EFPreview.js +9 -1
  168. package/dist/gui/EFPreview.js.map +1 -0
  169. package/dist/gui/EFResizableBox.d.ts +39 -32
  170. package/dist/gui/EFResizableBox.js +8 -3
  171. package/dist/gui/EFResizableBox.js.map +1 -0
  172. package/dist/gui/EFScrubber.d.ts +31 -25
  173. package/dist/gui/EFScrubber.js +6 -1
  174. package/dist/gui/EFScrubber.js.map +1 -0
  175. package/dist/gui/EFTimeDisplay.d.ts +21 -14
  176. package/dist/gui/EFTimeDisplay.js +6 -1
  177. package/dist/gui/EFTimeDisplay.js.map +1 -0
  178. package/dist/gui/EFToggleLoop.d.ts +19 -13
  179. package/dist/gui/EFToggleLoop.js +6 -1
  180. package/dist/gui/EFToggleLoop.js.map +1 -0
  181. package/dist/gui/EFTogglePlay.d.ts +23 -17
  182. package/dist/gui/EFTogglePlay.js +6 -1
  183. package/dist/gui/EFTogglePlay.js.map +1 -0
  184. package/dist/gui/EFWorkbench.d.ts +24 -16
  185. package/dist/gui/EFWorkbench.js +6 -1
  186. package/dist/gui/EFWorkbench.js.map +1 -0
  187. package/dist/gui/PlaybackController.d.ts +54 -50
  188. package/dist/gui/PlaybackController.js +23 -1
  189. package/dist/gui/PlaybackController.js.map +1 -0
  190. package/dist/gui/TWMixin.js +5 -1
  191. package/dist/gui/TWMixin.js.map +1 -0
  192. package/dist/gui/TWMixin2.js +6 -1
  193. package/dist/gui/TWMixin2.js.map +1 -0
  194. package/dist/gui/TargetOrContextMixin.js +5 -0
  195. package/dist/gui/TargetOrContextMixin.js.map +1 -0
  196. package/dist/gui/currentTimeContext.js +5 -0
  197. package/dist/gui/currentTimeContext.js.map +1 -0
  198. package/dist/gui/durationContext.js +5 -0
  199. package/dist/gui/durationContext.js.map +1 -0
  200. package/dist/gui/efContext.js +5 -0
  201. package/dist/gui/efContext.js.map +1 -0
  202. package/dist/gui/fetchContext.js +5 -0
  203. package/dist/gui/fetchContext.js.map +1 -0
  204. package/dist/gui/focusContext.d.ts +6 -5
  205. package/dist/gui/focusContext.js +5 -0
  206. package/dist/gui/focusContext.js.map +1 -0
  207. package/dist/gui/focusedElementContext.js +5 -0
  208. package/dist/gui/focusedElementContext.js.map +1 -0
  209. package/dist/gui/playingContext.js +5 -0
  210. package/dist/gui/playingContext.js.map +1 -0
  211. package/dist/index.d.ts +27 -26
  212. package/dist/index.js +6 -1
  213. package/dist/index.js.map +1 -0
  214. package/dist/msToTimeCode.js +4 -0
  215. package/dist/msToTimeCode.js.map +1 -0
  216. package/dist/otel/BridgeSpanExporter.js +5 -0
  217. package/dist/otel/BridgeSpanExporter.js.map +1 -0
  218. package/dist/otel/setupBrowserTracing.js +7 -2
  219. package/dist/otel/setupBrowserTracing.js.map +1 -0
  220. package/dist/otel/tracingHelpers.d.ts +7 -34
  221. package/dist/otel/tracingHelpers.js +34 -2
  222. package/dist/otel/tracingHelpers.js.map +1 -0
  223. package/dist/transcoding/cache/RequestDeduplicator.js +25 -0
  224. package/dist/transcoding/cache/RequestDeduplicator.js.map +1 -0
  225. package/dist/transcoding/cache/URLTokenDeduplicator.js +23 -0
  226. package/dist/transcoding/cache/URLTokenDeduplicator.js.map +1 -0
  227. package/dist/transcoding/types/index.d.ts +96 -270
  228. package/dist/transcoding/utils/UrlGenerator.d.ts +30 -25
  229. package/dist/transcoding/utils/UrlGenerator.js +19 -0
  230. package/dist/transcoding/utils/UrlGenerator.js.map +1 -0
  231. package/dist/utils/LRUCache.js +44 -0
  232. package/dist/utils/LRUCache.js.map +1 -0
  233. package/package.json +11 -24
  234. package/src/elements/EFCaptions.browsertest.ts +7 -7
  235. package/src/elements/EFTimegroup.ts +43 -1
  236. package/src/gui/PlaybackController.ts +6 -1
  237. package/tsdown.config.ts +36 -0
  238. package/types.json +1 -1
  239. package/dist/DelayedLoadingState.d.ts +0 -48
  240. package/dist/DelayedLoadingState.integration.test.d.ts +0 -1
  241. package/dist/DelayedLoadingState.test.d.ts +0 -1
  242. package/dist/EF_INTERACTIVE.d.ts +0 -1
  243. package/dist/EF_RENDERING.d.ts +0 -1
  244. package/dist/LoadingDebounce.test.d.ts +0 -1
  245. package/dist/ManualScrubTest.test.d.ts +0 -1
  246. package/dist/ScrubResolvedFlashing.test.d.ts +0 -1
  247. package/dist/ScrubTrackManager.test.d.ts +0 -1
  248. package/dist/VideoSeekFlashing.browsertest.d.ts +0 -0
  249. package/dist/VideoStuckDiagnostic.test.d.ts +0 -1
  250. package/dist/attachContextRoot.d.ts +0 -1
  251. package/dist/elements/ContextProxiesController.d.ts +0 -39
  252. package/dist/elements/CrossUpdateController.d.ts +0 -8
  253. package/dist/elements/EFAudio.browsertest.d.ts +0 -0
  254. package/dist/elements/EFCaptions.browsertest.d.ts +0 -0
  255. package/dist/elements/EFImage.browsertest.d.ts +0 -0
  256. package/dist/elements/EFMedia/AssetIdMediaEngine.d.ts +0 -19
  257. package/dist/elements/EFMedia/AssetIdMediaEngine.test.d.ts +0 -1
  258. package/dist/elements/EFMedia/AssetMediaEngine.browsertest.d.ts +0 -0
  259. package/dist/elements/EFMedia/AssetMediaEngine.d.ts +0 -56
  260. package/dist/elements/EFMedia/BaseMediaEngine.browsertest.d.ts +0 -1
  261. package/dist/elements/EFMedia/BaseMediaEngine.d.ts +0 -103
  262. package/dist/elements/EFMedia/BufferedSeekingInput.browsertest.d.ts +0 -1
  263. package/dist/elements/EFMedia/JitMediaEngine.browsertest.d.ts +0 -0
  264. package/dist/elements/EFMedia/JitMediaEngine.d.ts +0 -46
  265. package/dist/elements/EFMedia/audioTasks/makeAudioBufferTask.browsertest.d.ts +0 -9
  266. package/dist/elements/EFMedia/audioTasks/makeAudioFrequencyAnalysisTask.d.ts +0 -3
  267. package/dist/elements/EFMedia/audioTasks/makeAudioInitSegmentFetchTask.browsertest.d.ts +0 -9
  268. package/dist/elements/EFMedia/audioTasks/makeAudioInitSegmentFetchTask.d.ts +0 -4
  269. package/dist/elements/EFMedia/audioTasks/makeAudioInputTask.browsertest.d.ts +0 -9
  270. package/dist/elements/EFMedia/audioTasks/makeAudioInputTask.d.ts +0 -3
  271. package/dist/elements/EFMedia/audioTasks/makeAudioSeekTask.chunkboundary.regression.browsertest.d.ts +0 -0
  272. package/dist/elements/EFMedia/audioTasks/makeAudioSeekTask.d.ts +0 -7
  273. package/dist/elements/EFMedia/audioTasks/makeAudioSegmentFetchTask.d.ts +0 -4
  274. package/dist/elements/EFMedia/audioTasks/makeAudioSegmentIdTask.d.ts +0 -4
  275. package/dist/elements/EFMedia/audioTasks/makeAudioTasksVideoOnly.browsertest.d.ts +0 -1
  276. package/dist/elements/EFMedia/audioTasks/makeAudioTimeDomainAnalysisTask.d.ts +0 -3
  277. package/dist/elements/EFMedia/shared/AudioSpanUtils.d.ts +0 -7
  278. package/dist/elements/EFMedia/shared/GlobalInputCache.d.ts +0 -39
  279. package/dist/elements/EFMedia/shared/PrecisionUtils.d.ts +0 -28
  280. package/dist/elements/EFMedia/shared/RenditionHelpers.browsertest.d.ts +0 -1
  281. package/dist/elements/EFMedia/shared/RenditionHelpers.d.ts +0 -11
  282. package/dist/elements/EFMedia/shared/ThumbnailExtractor.d.ts +0 -27
  283. package/dist/elements/EFMedia/tasks/makeMediaEngineTask.browsertest.d.ts +0 -9
  284. package/dist/elements/EFMedia/tasks/makeMediaEngineTask.d.ts +0 -17
  285. package/dist/elements/EFMedia/videoTasks/MainVideoInputCache.d.ts +0 -29
  286. package/dist/elements/EFMedia/videoTasks/ScrubInputCache.d.ts +0 -25
  287. package/dist/elements/EFMedia/videoTasks/makeScrubVideoBufferTask.d.ts +0 -8
  288. package/dist/elements/EFMedia/videoTasks/makeScrubVideoInitSegmentFetchTask.d.ts +0 -4
  289. package/dist/elements/EFMedia/videoTasks/makeScrubVideoInputTask.d.ts +0 -3
  290. package/dist/elements/EFMedia/videoTasks/makeScrubVideoSeekTask.d.ts +0 -6
  291. package/dist/elements/EFMedia/videoTasks/makeScrubVideoSegmentFetchTask.d.ts +0 -4
  292. package/dist/elements/EFMedia/videoTasks/makeScrubVideoSegmentIdTask.d.ts +0 -4
  293. package/dist/elements/EFMedia/videoTasks/makeUnifiedVideoSeekTask.d.ts +0 -6
  294. package/dist/elements/EFMedia.browsertest.d.ts +0 -10
  295. package/dist/elements/EFSurface.browsertest.d.ts +0 -0
  296. package/dist/elements/EFTemporal.browsertest.d.ts +0 -22
  297. package/dist/elements/EFThumbnailStrip.browsertest.d.ts +0 -0
  298. package/dist/elements/EFThumbnailStrip.media-engine.browsertest.d.ts +0 -0
  299. package/dist/elements/EFTimegroup.browsertest.d.ts +0 -41
  300. package/dist/elements/EFVideo.browsertest.d.ts +0 -0
  301. package/dist/elements/FetchContext.browsertest.d.ts +0 -0
  302. package/dist/elements/TargetController.browsertest.d.ts +0 -19
  303. package/dist/elements/durationConverter.d.ts +0 -16
  304. package/dist/elements/parseTimeToMs.d.ts +0 -1
  305. package/dist/elements/printTaskStatus.d.ts +0 -2
  306. package/dist/elements/renderTemporalAudio.d.ts +0 -10
  307. package/dist/elements/updateAnimations.browsertest.d.ts +0 -13
  308. package/dist/elements/updateAnimations.d.ts +0 -24
  309. package/dist/elements/util.d.ts +0 -3
  310. package/dist/gui/ContextMixin.browsertest.d.ts +0 -15
  311. package/dist/gui/Controllable.browsertest.d.ts +0 -0
  312. package/dist/gui/EFControls.browsertest.d.ts +0 -11
  313. package/dist/gui/EFDial.browsertest.d.ts +0 -0
  314. package/dist/gui/EFFilmstrip.browsertest.d.ts +0 -11
  315. package/dist/gui/EFPause.browsertest.d.ts +0 -0
  316. package/dist/gui/EFPlay.browsertest.d.ts +0 -0
  317. package/dist/gui/EFResizableBox.browsertest.d.ts +0 -0
  318. package/dist/gui/EFTimeDisplay.browsertest.d.ts +0 -0
  319. package/dist/gui/TWMixin.d.ts +0 -2
  320. package/dist/gui/TargetOrContextMixin.d.ts +0 -10
  321. package/dist/gui/currentTimeContext.d.ts +0 -3
  322. package/dist/gui/durationContext.d.ts +0 -3
  323. package/dist/gui/efContext.d.ts +0 -4
  324. package/dist/gui/fetchContext.d.ts +0 -3
  325. package/dist/gui/focusedElementContext.d.ts +0 -3
  326. package/dist/gui/playingContext.d.ts +0 -6
  327. package/dist/msToTimeCode.d.ts +0 -1
  328. package/dist/otel/BridgeSpanExporter.d.ts +0 -13
  329. package/dist/otel/setupBrowserTracing.d.ts +0 -12
  330. package/dist/style.css +0 -2
  331. package/dist/transcoding/cache/RequestDeduplicator.d.ts +0 -29
  332. package/dist/transcoding/cache/RequestDeduplicator.test.d.ts +0 -1
  333. package/dist/transcoding/cache/URLTokenDeduplicator.d.ts +0 -38
  334. package/dist/transcoding/cache/URLTokenDeduplicator.test.d.ts +0 -1
  335. package/dist/transcoding/utils/MediaUtils.d.ts +0 -9
  336. package/dist/transcoding/utils/constants.d.ts +0 -27
  337. package/dist/utils/LRUCache.d.ts +0 -80
  338. package/dist/utils/LRUCache.test.d.ts +0 -1
  339. /package/dist/{LoadingIndicator.browsertest.d.ts → elements.js} +0 -0
@@ -1,48 +0,0 @@
1
- interface LoadingOptions {
2
- background?: boolean;
3
- }
4
- export declare class DelayedLoadingState {
5
- private operations;
6
- private loadingDelayMs;
7
- private isCurrentlyLoading;
8
- private currentMessage;
9
- private onStateChange?;
10
- constructor(delayMs?: number, onStateChange?: (isLoading: boolean, message: string) => void);
11
- /**
12
- * Start a delayed loading operation
13
- */
14
- startLoading(operationId: string, message: string, options?: LoadingOptions): void;
15
- /**
16
- * Clear a loading operation
17
- */
18
- clearLoading(operationId: string): void;
19
- /**
20
- * Clear all loading operations
21
- */
22
- clearAllLoading(): void;
23
- /**
24
- * Get current loading state
25
- */
26
- get isLoading(): boolean;
27
- /**
28
- * Get current loading message
29
- */
30
- get message(): string;
31
- /**
32
- * Check if any non-background operations are active
33
- */
34
- private hasActiveOperations;
35
- /**
36
- * Get the message for the most recent non-background operation
37
- */
38
- private getCurrentMessage;
39
- /**
40
- * Trigger loading state (called by timeout)
41
- */
42
- private triggerLoadingState;
43
- /**
44
- * Update loading state based on current operations
45
- */
46
- private updateLoadingState;
47
- }
48
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export declare let EF_INTERACTIVE: boolean;
@@ -1 +0,0 @@
1
- export declare const EF_RENDERING: () => boolean;
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
File without changes
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export declare const attachContextRoot: () => void;
@@ -1,39 +0,0 @@
1
- import { Context } from '@lit/context';
2
- import { LitElement, ReactiveController } from 'lit';
3
- /**
4
- * Configuration for context proxying
5
- */
6
- export type ContextProxyConfig = {
7
- target: () => HTMLElement | null;
8
- contexts: Context<any, any>[];
9
- };
10
- /**
11
- * A ReactiveController that proxies context requests to a target element.
12
- *
13
- * Usage:
14
- * ```typescript
15
- * @customElement('my-proxy')
16
- * class MyProxy extends LitElement {
17
- * @state()
18
- * targetElement: HTMLElement | null = null;
19
- *
20
- * // @ts-expect-error controller is intentionally not referenced directly
21
- * #contextProxyController = new ContextProxyController(this, {
22
- * target: () => this.targetElement,
23
- * contexts: [playingContext, loopContext, targetTemporalContext]
24
- * });
25
- * }
26
- * ```
27
- */
28
- export declare class ContextProxyController implements ReactiveController {
29
- private host;
30
- private proxyMap;
31
- private pendingRequests;
32
- constructor(host: LitElement, config: ContextProxyConfig);
33
- hostConnected(): void;
34
- hostDisconnected(): void;
35
- hostUpdate(): void;
36
- private processPendingRequests;
37
- private handleContextRequest;
38
- private processContextRequest;
39
- }
@@ -1,8 +0,0 @@
1
- import { LitElement, ReactiveController, ReactiveControllerHost } from 'lit';
2
- export declare class CrossUpdateController implements ReactiveController {
3
- private host;
4
- private target;
5
- constructor(host: ReactiveControllerHost, target: LitElement);
6
- hostUpdate(): void;
7
- remove(): void;
8
- }
File without changes
File without changes
File without changes
@@ -1,19 +0,0 @@
1
- import { TrackFragmentIndex } from '../../../../assets/src/index.ts';
2
- import { InitSegmentPaths, MediaEngine, VideoRendition } from '../../transcoding/types';
3
- import { UrlGenerator } from '../../transcoding/utils/UrlGenerator';
4
- import { EFMedia } from '../EFMedia';
5
- import { AssetMediaEngine } from './AssetMediaEngine';
6
- export declare class AssetIdMediaEngine extends AssetMediaEngine implements MediaEngine {
7
- assetId: string;
8
- private apiHost;
9
- static fetchByAssetId(host: EFMedia, _urlGenerator: UrlGenerator, assetId: string, apiHost: string): Promise<AssetIdMediaEngine>;
10
- constructor(host: EFMedia, assetId: string, data: Record<number, TrackFragmentIndex>, apiHost: string);
11
- get initSegmentPaths(): InitSegmentPaths;
12
- get templates(): {
13
- initSegment: string;
14
- mediaSegment: string;
15
- };
16
- buildInitSegmentUrl(trackId: number): string;
17
- buildMediaSegmentUrl(trackId: number, _segmentId: number): string;
18
- convertToSegmentRelativeTimestamps(globalTimestamps: number[], segmentId: number, rendition: VideoRendition): number[];
19
- }
@@ -1 +0,0 @@
1
- export {};
@@ -1,56 +0,0 @@
1
- import { TrackFragmentIndex } from '../../../../assets/src/index.ts';
2
- import { AudioRendition, InitSegmentPaths, MediaEngine, SegmentTimeRange, VideoRendition } from '../../transcoding/types';
3
- import { UrlGenerator } from '../../transcoding/utils/UrlGenerator';
4
- import { EFMedia } from '../EFMedia';
5
- import { BaseMediaEngine } from './BaseMediaEngine';
6
- import { MediaRendition } from './shared/MediaTaskUtils';
7
- export declare class AssetMediaEngine extends BaseMediaEngine implements MediaEngine {
8
- src: string;
9
- protected data: Record<number, TrackFragmentIndex>;
10
- durationMs: number;
11
- constructor(host: EFMedia, src: string);
12
- static fetch(host: EFMedia, urlGenerator: UrlGenerator, src: string): Promise<AssetMediaEngine>;
13
- get audioTrackIndex(): import('../../../../assets/src/index.ts').AudioTrackFragmentIndex | undefined;
14
- get videoTrackIndex(): import('../../../../assets/src/index.ts').VideoTrackFragmentIndex | undefined;
15
- get videoRendition(): {
16
- trackId: number;
17
- src: string;
18
- startTimeOffsetMs: number | undefined;
19
- } | undefined;
20
- get audioRendition(): {
21
- trackId: number;
22
- src: string;
23
- } | undefined;
24
- get initSegmentPaths(): InitSegmentPaths;
25
- get templates(): {
26
- initSegment: string;
27
- mediaSegment: string;
28
- };
29
- buildInitSegmentUrl(trackId: number): string;
30
- buildMediaSegmentUrl(trackId: number, segmentId: number): string;
31
- fetchInitSegment(rendition: {
32
- trackId: number | undefined;
33
- src: string;
34
- }, signal: AbortSignal): Promise<ArrayBuffer>;
35
- fetchMediaSegment(segmentId: number, rendition: {
36
- trackId: number | undefined;
37
- src: string;
38
- }, signal?: AbortSignal): Promise<ArrayBuffer>;
39
- /**
40
- * Calculate audio segments for variable-duration segments using track fragment index
41
- */
42
- calculateAudioSegmentRange(fromMs: number, toMs: number, rendition: AudioRendition, _durationMs: number): SegmentTimeRange[];
43
- computeSegmentId(seekTimeMs: number, rendition: MediaRendition): number;
44
- getScrubVideoRendition(): VideoRendition | undefined;
45
- /**
46
- * Get preferred buffer configuration for this media engine
47
- * AssetMediaEngine uses lower buffering since segments are already optimized
48
- */
49
- getBufferConfig(): {
50
- videoBufferDurationMs: number;
51
- audioBufferDurationMs: number;
52
- maxVideoBufferFetches: number;
53
- maxAudioBufferFetches: number;
54
- };
55
- convertToSegmentRelativeTimestamps(globalTimestamps: number[], segmentId: number, rendition: VideoRendition): number[];
56
- }
@@ -1,103 +0,0 @@
1
- import { RequestDeduplicator } from '../../transcoding/cache/RequestDeduplicator.js';
2
- import { AudioRendition, SegmentTimeRange, ThumbnailResult, VideoRendition } from '../../transcoding/types';
3
- import { SizeAwareLRUCache } from '../../utils/LRUCache.js';
4
- import { EFMedia } from '../EFMedia.js';
5
- import { MediaRendition } from './shared/MediaTaskUtils.js';
6
- export declare const mediaCache: SizeAwareLRUCache<string>;
7
- export declare const globalRequestDeduplicator: RequestDeduplicator;
8
- export declare abstract class BaseMediaEngine {
9
- protected host: EFMedia;
10
- constructor(host: EFMedia);
11
- abstract get videoRendition(): VideoRendition | undefined;
12
- abstract get audioRendition(): AudioRendition | undefined;
13
- /**
14
- * Get video rendition if available. Returns undefined for audio-only assets.
15
- * Callers should handle undefined gracefully.
16
- */
17
- getVideoRendition(): VideoRendition | undefined;
18
- /**
19
- * Get audio rendition if available. Returns undefined for video-only assets.
20
- * Callers should handle undefined gracefully.
21
- */
22
- getAudioRendition(): AudioRendition | undefined;
23
- /**
24
- * Generate cache key for segment requests
25
- */
26
- private getSegmentCacheKey;
27
- /**
28
- * Unified fetch method with caching and global deduplication
29
- * All requests (media, manifest, init segments) go through this method
30
- */
31
- protected fetchWithCache(url: string, options: {
32
- responseType: "arrayBuffer" | "json";
33
- headers?: Record<string, string>;
34
- signal?: AbortSignal;
35
- }): Promise<any>;
36
- /**
37
- * Handles abort logic for a cached request without affecting the underlying fetch
38
- * This allows multiple instances to share the same cached request while each
39
- * manages their own abort behavior
40
- */
41
- private handleAbortForCachedRequest;
42
- fetchMedia(url: string, signal?: AbortSignal): Promise<ArrayBuffer>;
43
- fetchManifest(url: string, signal?: AbortSignal): Promise<any>;
44
- fetchMediaWithHeaders(url: string, headers: Record<string, string>, signal?: AbortSignal): Promise<ArrayBuffer>;
45
- fetchMediaCache(url: string, signal?: AbortSignal): Promise<ArrayBuffer>;
46
- fetchManifestCache(url: string, signal?: AbortSignal): Promise<any>;
47
- fetchMediaCacheWithHeaders(url: string, headers: Record<string, string>, signal?: AbortSignal): Promise<ArrayBuffer>;
48
- /**
49
- * Abstract method for actual segment fetching - implemented by subclasses
50
- */
51
- abstract fetchMediaSegment(segmentId: number, rendition: {
52
- trackId: number | undefined;
53
- src: string;
54
- }): Promise<ArrayBuffer>;
55
- abstract fetchInitSegment(rendition: {
56
- trackId: number | undefined;
57
- src: string;
58
- }, signal: AbortSignal): Promise<ArrayBuffer>;
59
- abstract computeSegmentId(desiredSeekTimeMs: number, rendition: MediaRendition): number | undefined;
60
- /**
61
- * Fetch media segment with built-in deduplication
62
- * Now uses global deduplication for all requests
63
- */
64
- fetchMediaSegmentWithDeduplication(segmentId: number, rendition: {
65
- trackId: number | undefined;
66
- src: string;
67
- }, _signal?: AbortSignal): Promise<ArrayBuffer>;
68
- /**
69
- * Check if a segment is currently being fetched
70
- */
71
- isSegmentBeingFetched(segmentId: number, rendition: {
72
- src: string;
73
- trackId: number | undefined;
74
- }): boolean;
75
- /**
76
- * Get count of active segment requests (for debugging/monitoring)
77
- */
78
- getActiveSegmentRequestCount(): number;
79
- /**
80
- * Cancel all active segment requests (for cleanup)
81
- */
82
- cancelAllSegmentRequests(): void;
83
- /**
84
- * Calculate audio segments needed for a time range
85
- * Each media engine implements this based on their segment structure
86
- */
87
- calculateAudioSegmentRange(fromMs: number, toMs: number, rendition: AudioRendition, durationMs: number): SegmentTimeRange[];
88
- /**
89
- * Check if a segment is cached for a given rendition
90
- * This needs to check the URL-based cache since that's where segments are actually stored
91
- */
92
- isSegmentCached(segmentId: number, rendition: AudioRendition | VideoRendition): boolean;
93
- /**
94
- * Get cached segment IDs from a list for a given rendition
95
- */
96
- getCachedSegments(segmentIds: number[], rendition: AudioRendition | VideoRendition): Set<number>;
97
- /**
98
- * Extract thumbnail canvases at multiple timestamps efficiently
99
- * Default implementation provides helpful error information
100
- */
101
- extractThumbnails(timestamps: number[]): Promise<(ThumbnailResult | null)[]>;
102
- abstract convertToSegmentRelativeTimestamps(globalTimestamps: number[], segmentId: number, rendition: VideoRendition): number[];
103
- }
@@ -1,46 +0,0 @@
1
- import { AudioRendition, MediaEngine, RenditionId, ThumbnailResult, VideoRendition } from '../../transcoding/types';
2
- import { UrlGenerator } from '../../transcoding/utils/UrlGenerator';
3
- import { EFMedia } from '../EFMedia.js';
4
- import { BaseMediaEngine } from './BaseMediaEngine';
5
- export declare class JitMediaEngine extends BaseMediaEngine implements MediaEngine {
6
- private urlGenerator;
7
- private data;
8
- private thumbnailExtractor;
9
- static fetch(host: EFMedia, urlGenerator: UrlGenerator, url: string): Promise<JitMediaEngine>;
10
- constructor(host: EFMedia, urlGenerator: UrlGenerator);
11
- get durationMs(): number;
12
- get src(): string;
13
- get audioRendition(): AudioRendition | undefined;
14
- get videoRendition(): VideoRendition | undefined;
15
- get templates(): {
16
- initSegment: string;
17
- mediaSegment: string;
18
- };
19
- fetchInitSegment(rendition: {
20
- id?: RenditionId;
21
- trackId: number | undefined;
22
- src: string;
23
- }, signal: AbortSignal): Promise<ArrayBuffer>;
24
- fetchMediaSegment(segmentId: number, rendition: {
25
- id?: RenditionId;
26
- trackId: number | undefined;
27
- src: string;
28
- }): Promise<ArrayBuffer>;
29
- computeSegmentId(desiredSeekTimeMs: number, rendition: VideoRendition | AudioRendition): number | undefined;
30
- getScrubVideoRendition(): VideoRendition | undefined;
31
- /**
32
- * Get preferred buffer configuration for JIT transcoding
33
- * Uses higher buffering since transcoding introduces latency
34
- */
35
- getBufferConfig(): {
36
- videoBufferDurationMs: number;
37
- audioBufferDurationMs: number;
38
- maxVideoBufferFetches: number;
39
- maxAudioBufferFetches: number;
40
- };
41
- /**
42
- * Extract thumbnail canvases using same rendition priority as video playback for frame alignment
43
- */
44
- extractThumbnails(timestamps: number[]): Promise<(ThumbnailResult | null)[]>;
45
- convertToSegmentRelativeTimestamps(globalTimestamps: number[], _segmentId: number, _rendition: VideoRendition): number[];
46
- }
@@ -1,9 +0,0 @@
1
- import { EFMedia } from '../../EFMedia';
2
- declare class TestMediaAudioBuffer extends EFMedia {
3
- }
4
- declare global {
5
- interface HTMLElementTagNameMap {
6
- "test-media-audio-buffer": TestMediaAudioBuffer;
7
- }
8
- }
9
- export {};
@@ -1,3 +0,0 @@
1
- import { Task } from '@lit/task';
2
- import { EFMedia } from '../../EFMedia.js';
3
- export declare function makeAudioFrequencyAnalysisTask(element: EFMedia): Task<readonly [number, number, number, number, boolean], Uint8Array | null>;
@@ -1,9 +0,0 @@
1
- import { EFAudio } from '../../EFAudio';
2
- declare class TestMediaAudioInitSegmentFetch extends EFAudio {
3
- }
4
- declare global {
5
- interface HTMLElementTagNameMap {
6
- "test-media-audio-init-segment-fetch": TestMediaAudioInitSegmentFetch;
7
- }
8
- }
9
- export {};
@@ -1,4 +0,0 @@
1
- import { Task } from '@lit/task';
2
- import { MediaEngine } from '../../../transcoding/types';
3
- import { EFMedia } from '../../EFMedia';
4
- export declare const makeAudioInitSegmentFetchTask: (host: EFMedia) => Task<readonly [MediaEngine | undefined], ArrayBuffer | undefined>;
@@ -1,9 +0,0 @@
1
- import { EFAudio } from '../../EFAudio';
2
- declare class TestMediaAudioInput extends EFAudio {
3
- }
4
- declare global {
5
- interface HTMLElementTagNameMap {
6
- "test-media-audio-input": TestMediaAudioInput;
7
- }
8
- }
9
- export {};
@@ -1,3 +0,0 @@
1
- import { EFMedia } from '../../EFMedia';
2
- import { InputTask } from '../shared/MediaTaskUtils';
3
- export declare const makeAudioInputTask: (host: EFMedia) => InputTask;
@@ -1,7 +0,0 @@
1
- import { Task } from '@lit/task';
2
- import { VideoSample } from 'mediabunny';
3
- import { EFMedia } from '../../EFMedia';
4
- import { BufferedSeekingInput } from '../BufferedSeekingInput';
5
- type AudioSeekTask = Task<readonly [number, BufferedSeekingInput | undefined], VideoSample | undefined>;
6
- export declare const makeAudioSeekTask: (host: EFMedia) => AudioSeekTask;
7
- export {};
@@ -1,4 +0,0 @@
1
- import { Task } from '@lit/task';
2
- import { MediaEngine } from '../../../transcoding/types';
3
- import { EFMedia } from '../../EFMedia';
4
- export declare const makeAudioSegmentFetchTask: (host: EFMedia) => Task<readonly [MediaEngine | undefined, number | undefined], ArrayBuffer | undefined>;
@@ -1,4 +0,0 @@
1
- import { Task } from '@lit/task';
2
- import { MediaEngine } from '../../../transcoding/types';
3
- import { EFMedia } from '../../EFMedia';
4
- export declare const makeAudioSegmentIdTask: (host: EFMedia) => Task<readonly [MediaEngine | undefined, number], number | undefined>;
@@ -1,3 +0,0 @@
1
- import { Task } from '@lit/task';
2
- import { EFMedia } from '../../EFMedia.js';
3
- export declare function makeAudioTimeDomainAnalysisTask(element: EFMedia): Task<readonly [number, number, number, number, boolean], Uint8Array | null>;
@@ -1,7 +0,0 @@
1
- import { AudioSpan } from '../../../transcoding/types';
2
- import { EFMedia } from '../../EFMedia';
3
- /**
4
- * Fetch audio spanning a time range
5
- * Main function that orchestrates segment calculation, fetching, and blob creation
6
- */
7
- export declare const fetchAudioSpanningTime: (host: EFMedia, fromMs: number, toMs: number, signal: AbortSignal) => Promise<AudioSpan | undefined>;
@@ -1,39 +0,0 @@
1
- import { Input } from 'mediabunny';
2
- /**
3
- * Global cache for MediaBunny Input instances
4
- * Shared across all MediaEngine instances to prevent duplicate decoding
5
- * of the same segment data
6
- */
7
- declare class GlobalInputCache {
8
- private cache;
9
- /**
10
- * Generate standardized cache key for Input objects
11
- * Format: "input:{src}:{segmentId}:{renditionId}"
12
- */
13
- private generateKey;
14
- /**
15
- * Get cached Input object
16
- */
17
- get(src: string, segmentId: number, renditionId?: string): Input | undefined;
18
- /**
19
- * Cache Input object
20
- */
21
- set(src: string, segmentId: number, input: Input, renditionId?: string): void;
22
- /**
23
- * Check if Input is cached
24
- */
25
- has(src: string, segmentId: number, renditionId?: string): boolean;
26
- /**
27
- * Clear all cached Input objects
28
- */
29
- clear(): void;
30
- /**
31
- * Get cache statistics for debugging
32
- */
33
- getStats(): {
34
- size: number;
35
- cachedKeys: unknown[];
36
- };
37
- }
38
- export declare const globalInputCache: GlobalInputCache;
39
- export {};
@@ -1,28 +0,0 @@
1
- /**
2
- * Centralized precision utilities for consistent timing calculations across the media pipeline.
3
- *
4
- * The key insight is that floating-point precision errors can cause inconsistencies between:
5
- * 1. Segment selection logic (in AssetMediaEngine.computeSegmentId)
6
- * 2. Sample finding logic (in SampleBuffer.find)
7
- * 3. Timeline mapping (in BufferedSeekingInput.seek)
8
- *
9
- * All timing calculations must use the same rounding strategy to ensure consistency.
10
- */
11
- /**
12
- * Round time to millisecond precision to handle floating-point precision issues.
13
- * Uses Math.round for consistent behavior across the entire pipeline.
14
- *
15
- * This function should be used for ALL time-related calculations that need to be
16
- * compared between different parts of the system.
17
- */
18
- export declare const roundToMilliseconds: (timeMs: number) => number;
19
- /**
20
- * Convert media time (in seconds) to scaled time units using consistent rounding.
21
- * This is used in segment selection to convert from milliseconds to timescale units.
22
- */
23
- export declare const convertToScaledTime: (timeMs: number, timescale: number) => number;
24
- /**
25
- * Convert scaled time units back to media time (in milliseconds) using consistent rounding.
26
- * This is the inverse of convertToScaledTime.
27
- */
28
- export declare const convertFromScaledTime: (scaledTime: number, timescale: number) => number;
@@ -1,11 +0,0 @@
1
- import { AudioRendition, VideoRendition } from '../../../transcoding/types';
2
- /**
3
- * Calculate which segment contains a given timestamp
4
- * Returns 1-based segment ID, or undefined if segmentDurationMs is not available
5
- */
6
- export declare const computeSegmentId: (timeMs: number, rendition: AudioRendition | VideoRendition) => number | undefined;
7
- /**
8
- * Calculate range of segment IDs that overlap with a time range
9
- * Returns array of 1-based segment IDs, or empty array if segmentDurationMs is not available
10
- */
11
- export declare const calculateSegmentRange: (startTimeMs: number, endTimeMs: number, rendition: AudioRendition | VideoRendition) => number[];
@@ -1,27 +0,0 @@
1
- import { ThumbnailResult, VideoRendition } from '../../../transcoding/types/index.js';
2
- import { BaseMediaEngine } from '../BaseMediaEngine.js';
3
- /**
4
- * Shared thumbnail extraction logic for all MediaEngine implementations
5
- * Eliminates code duplication and provides consistent behavior
6
- */
7
- export declare class ThumbnailExtractor {
8
- private mediaEngine;
9
- constructor(mediaEngine: BaseMediaEngine);
10
- /**
11
- * Extract thumbnails at multiple timestamps efficiently using segment batching
12
- */
13
- extractThumbnails(timestamps: number[], rendition: VideoRendition, durationMs: number): Promise<(ThumbnailResult | null)[]>;
14
- /**
15
- * Group timestamps by segment ID for efficient batch processing
16
- */
17
- private groupTimestampsBySegment;
18
- /**
19
- * Extract thumbnails for a specific segment using CanvasSink
20
- */
21
- private extractSegmentThumbnails;
22
- /**
23
- * Convert global timestamps to segment-relative timestamps for mediabunny
24
- * This is where the main difference between JIT and Asset engines lies
25
- */
26
- private convertToSegmentRelativeTimestamps;
27
- }
@@ -1,9 +0,0 @@
1
- import { EFMedia } from '../../EFMedia.js';
2
- declare class TestMediaEngine extends EFMedia {
3
- }
4
- declare global {
5
- interface HTMLElementTagNameMap {
6
- "test-media-engine": TestMediaEngine;
7
- }
8
- }
9
- export {};
@@ -1,17 +0,0 @@
1
- import { Task } from '@lit/task';
2
- import { MediaEngine } from '../../../transcoding/types';
3
- import { EFMedia } from '../../EFMedia';
4
- export declare const getLatestMediaEngine: (host: EFMedia, signal: AbortSignal) => Promise<MediaEngine>;
5
- /**
6
- * Core logic for creating a MediaEngine with explicit dependencies.
7
- * Pure function that requires all dependencies to be provided.
8
- */
9
- export declare const createMediaEngine: (host: EFMedia) => Promise<MediaEngine>;
10
- /**
11
- * Handle completion of media engine task - triggers necessary updates.
12
- * Extracted for testability.
13
- */
14
- export declare const handleMediaEngineComplete: (host: EFMedia) => void;
15
- type MediaEngineTask = Task<readonly [string, string | null], MediaEngine>;
16
- export declare const makeMediaEngineTask: (host: EFMedia) => MediaEngineTask;
17
- export {};
@@ -1,29 +0,0 @@
1
- import { BufferedSeekingInput } from '../BufferedSeekingInput';
2
- /**
3
- * Cache for main video BufferedSeekingInput instances
4
- * Main video segments are typically 2s long, so we can reuse the same input
5
- * for multiple frames within that segment (e.g., 60 frames at 30fps)
6
- */
7
- export declare class MainVideoInputCache {
8
- private cache;
9
- private maxCacheSize;
10
- /**
11
- * Create a cache key that uniquely identifies a segment
12
- */
13
- private getCacheKey;
14
- /**
15
- * Get or create BufferedSeekingInput for a main video segment
16
- */
17
- getOrCreateInput(src: string, segmentId: number, renditionId: string | undefined, createInputFn: () => Promise<BufferedSeekingInput | undefined>): Promise<BufferedSeekingInput | undefined>;
18
- /**
19
- * Clear the entire cache (called when video changes)
20
- */
21
- clear(): void;
22
- /**
23
- * Get cache statistics
24
- */
25
- getStats(): {
26
- size: number;
27
- cacheKeys: string[];
28
- };
29
- }