@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.
- package/dist/DelayedLoadingState.js +31 -0
- package/dist/DelayedLoadingState.js.map +1 -0
- package/dist/EF_FRAMEGEN.d.ts +50 -46
- package/dist/EF_FRAMEGEN.js +5 -1
- package/dist/EF_FRAMEGEN.js.map +1 -0
- package/dist/EF_INTERACTIVE.js +4 -0
- package/dist/EF_INTERACTIVE.js.map +1 -0
- package/dist/EF_RENDERING.js +4 -0
- package/dist/EF_RENDERING.js.map +1 -0
- package/dist/_virtual/_@oxc-project_runtime@0.94.0/helpers/decorate.js +4 -1
- package/dist/attachContextRoot.js +6 -1
- package/dist/attachContextRoot.js.map +1 -0
- package/dist/elements/CrossUpdateController.js +4 -0
- package/dist/elements/CrossUpdateController.js.map +1 -0
- package/dist/elements/EFAudio.d.ts +24 -16
- package/dist/elements/EFAudio.js +10 -1
- package/dist/elements/EFAudio.js.map +1 -0
- package/dist/elements/EFCaptions.d.ts +118 -109
- package/dist/elements/EFCaptions.js +11 -6
- package/dist/elements/EFCaptions.js.map +1 -0
- package/dist/elements/EFImage.d.ts +31 -20
- package/dist/elements/EFImage.js +6 -1
- package/dist/elements/EFImage.js.map +1 -0
- package/dist/elements/EFMedia/AssetIdMediaEngine.js +5 -0
- package/dist/elements/EFMedia/AssetIdMediaEngine.js.map +1 -0
- package/dist/elements/EFMedia/AssetMediaEngine.js +12 -0
- package/dist/elements/EFMedia/AssetMediaEngine.js.map +1 -0
- package/dist/elements/EFMedia/BaseMediaEngine.js +53 -0
- package/dist/elements/EFMedia/BaseMediaEngine.js.map +1 -0
- package/dist/elements/EFMedia/BufferedSeekingInput.d.ts +47 -46
- package/dist/elements/EFMedia/BufferedSeekingInput.js +6 -1
- package/dist/elements/EFMedia/BufferedSeekingInput.js.map +1 -0
- package/dist/elements/EFMedia/JitMediaEngine.js +12 -0
- package/dist/elements/EFMedia/JitMediaEngine.js.map +1 -0
- package/dist/elements/EFMedia/audioTasks/makeAudioBufferTask.d.ts +9 -13
- package/dist/elements/EFMedia/audioTasks/makeAudioBufferTask.js +5 -0
- package/dist/elements/EFMedia/audioTasks/makeAudioBufferTask.js.map +1 -0
- package/dist/elements/EFMedia/audioTasks/makeAudioFrequencyAnalysisTask.js +6 -1
- package/dist/elements/EFMedia/audioTasks/makeAudioFrequencyAnalysisTask.js.map +1 -0
- package/dist/elements/EFMedia/audioTasks/makeAudioInitSegmentFetchTask.js +5 -0
- package/dist/elements/EFMedia/audioTasks/makeAudioInitSegmentFetchTask.js.map +1 -0
- package/dist/elements/EFMedia/audioTasks/makeAudioInputTask.js +5 -0
- package/dist/elements/EFMedia/audioTasks/makeAudioInputTask.js.map +1 -0
- package/dist/elements/EFMedia/audioTasks/makeAudioSeekTask.js +5 -0
- package/dist/elements/EFMedia/audioTasks/makeAudioSeekTask.js.map +1 -0
- package/dist/elements/EFMedia/audioTasks/makeAudioSegmentFetchTask.js +5 -0
- package/dist/elements/EFMedia/audioTasks/makeAudioSegmentFetchTask.js.map +1 -0
- package/dist/elements/EFMedia/audioTasks/makeAudioSegmentIdTask.js +5 -0
- package/dist/elements/EFMedia/audioTasks/makeAudioSegmentIdTask.js.map +1 -0
- package/dist/elements/EFMedia/audioTasks/makeAudioTimeDomainAnalysisTask.js +6 -1
- package/dist/elements/EFMedia/audioTasks/makeAudioTimeDomainAnalysisTask.js.map +1 -0
- package/dist/elements/EFMedia/shared/AudioSpanUtils.js +18 -2
- package/dist/elements/EFMedia/shared/AudioSpanUtils.js.map +1 -0
- package/dist/elements/EFMedia/shared/BufferUtils.d.ts +9 -67
- package/dist/elements/EFMedia/shared/BufferUtils.js +15 -0
- package/dist/elements/EFMedia/shared/BufferUtils.js.map +1 -0
- package/dist/elements/EFMedia/shared/GlobalInputCache.js +29 -0
- package/dist/elements/EFMedia/shared/GlobalInputCache.js.map +1 -0
- package/dist/elements/EFMedia/shared/MediaTaskUtils.d.ts +11 -17
- package/dist/elements/EFMedia/shared/PrecisionUtils.js +25 -0
- package/dist/elements/EFMedia/shared/PrecisionUtils.js.map +1 -0
- package/dist/elements/EFMedia/shared/ThumbnailExtractor.js +22 -0
- package/dist/elements/EFMedia/shared/ThumbnailExtractor.js.map +1 -0
- package/dist/elements/EFMedia/tasks/makeMediaEngineTask.js +13 -0
- package/dist/elements/EFMedia/tasks/makeMediaEngineTask.js.map +1 -0
- package/dist/elements/EFMedia/videoTasks/MainVideoInputCache.js +21 -0
- package/dist/elements/EFMedia/videoTasks/MainVideoInputCache.js.map +1 -0
- package/dist/elements/EFMedia/videoTasks/ScrubInputCache.js +18 -0
- package/dist/elements/EFMedia/videoTasks/ScrubInputCache.js.map +1 -0
- package/dist/elements/EFMedia/videoTasks/makeScrubVideoBufferTask.js +10 -0
- package/dist/elements/EFMedia/videoTasks/makeScrubVideoBufferTask.js.map +1 -0
- package/dist/elements/EFMedia/videoTasks/makeScrubVideoInitSegmentFetchTask.js +5 -0
- package/dist/elements/EFMedia/videoTasks/makeScrubVideoInitSegmentFetchTask.js.map +1 -0
- package/dist/elements/EFMedia/videoTasks/makeScrubVideoInputTask.js +5 -0
- package/dist/elements/EFMedia/videoTasks/makeScrubVideoInputTask.js.map +1 -0
- package/dist/elements/EFMedia/videoTasks/makeScrubVideoSeekTask.js +6 -1
- package/dist/elements/EFMedia/videoTasks/makeScrubVideoSeekTask.js.map +1 -0
- package/dist/elements/EFMedia/videoTasks/makeScrubVideoSegmentFetchTask.js +5 -0
- package/dist/elements/EFMedia/videoTasks/makeScrubVideoSegmentFetchTask.js.map +1 -0
- package/dist/elements/EFMedia/videoTasks/makeScrubVideoSegmentIdTask.js +5 -0
- package/dist/elements/EFMedia/videoTasks/makeScrubVideoSegmentIdTask.js.map +1 -0
- package/dist/elements/EFMedia/videoTasks/makeUnifiedVideoSeekTask.js +16 -2
- package/dist/elements/EFMedia/videoTasks/makeUnifiedVideoSeekTask.js.map +1 -0
- package/dist/elements/EFMedia/videoTasks/makeVideoBufferTask.d.ts +9 -13
- package/dist/elements/EFMedia/videoTasks/makeVideoBufferTask.js +5 -0
- package/dist/elements/EFMedia/videoTasks/makeVideoBufferTask.js.map +1 -0
- package/dist/elements/EFMedia.d.ts +115 -104
- package/dist/elements/EFMedia.js +25 -1
- package/dist/elements/EFMedia.js.map +1 -0
- package/dist/elements/EFSourceMixin.d.ts +10 -11
- package/dist/elements/EFSourceMixin.js +5 -0
- package/dist/elements/EFSourceMixin.js.map +1 -0
- package/dist/elements/EFSurface.d.ts +35 -27
- package/dist/elements/EFSurface.js +6 -1
- package/dist/elements/EFSurface.js.map +1 -0
- package/dist/elements/EFTemporal.d.ts +200 -213
- package/dist/elements/EFTemporal.js +24 -4
- package/dist/elements/EFTemporal.js.map +1 -0
- package/dist/elements/EFThumbnailStrip.d.ts +91 -83
- package/dist/elements/EFThumbnailStrip.js +49 -4
- package/dist/elements/EFThumbnailStrip.js.map +1 -0
- package/dist/elements/EFTimegroup.d.ts +107 -88
- package/dist/elements/EFTimegroup.js +74 -4
- package/dist/elements/EFTimegroup.js.map +1 -0
- package/dist/elements/EFVideo.d.ts +120 -108
- package/dist/elements/EFVideo.js +46 -2
- package/dist/elements/EFVideo.js.map +1 -0
- package/dist/elements/EFWaveform.d.ts +48 -41
- package/dist/elements/EFWaveform.js +6 -1
- package/dist/elements/EFWaveform.js.map +1 -0
- package/dist/elements/FetchMixin.d.ts +8 -6
- package/dist/elements/FetchMixin.js +4 -0
- package/dist/elements/FetchMixin.js.map +1 -0
- package/dist/elements/SampleBuffer.d.ts +18 -13
- package/dist/elements/SampleBuffer.js +5 -0
- package/dist/elements/SampleBuffer.js.map +1 -0
- package/dist/elements/TargetController.d.ts +23 -24
- package/dist/elements/TargetController.js +8 -3
- package/dist/elements/TargetController.js.map +1 -0
- package/dist/elements/TimegroupController.d.ts +17 -12
- package/dist/elements/TimegroupController.js +4 -0
- package/dist/elements/TimegroupController.js.map +1 -0
- package/dist/elements/durationConverter.js +9 -4
- package/dist/elements/durationConverter.js.map +1 -0
- package/dist/elements/parseTimeToMs.js +4 -0
- package/dist/elements/parseTimeToMs.js.map +1 -0
- package/dist/elements/renderTemporalAudio.js +4 -0
- package/dist/elements/renderTemporalAudio.js.map +1 -0
- package/dist/elements/updateAnimations.js +29 -8
- package/dist/elements/updateAnimations.js.map +1 -0
- package/dist/elements-ZhsB7B5N.css +9 -0
- package/dist/elements-ZhsB7B5N.css.map +1 -0
- package/dist/getRenderInfo.d.ts +53 -47
- package/dist/getRenderInfo.js +5 -0
- package/dist/getRenderInfo.js.map +1 -0
- package/dist/gui/ContextMixin.d.ts +19 -20
- package/dist/gui/ContextMixin.js +32 -1
- package/dist/gui/ContextMixin.js.map +1 -0
- package/dist/gui/Controllable.d.ts +13 -14
- package/dist/gui/Controllable.js +5 -0
- package/dist/gui/Controllable.js.map +1 -0
- package/dist/gui/EFConfiguration.d.ts +18 -14
- package/dist/gui/EFConfiguration.js +6 -1
- package/dist/gui/EFConfiguration.js.map +1 -0
- package/dist/gui/EFControls.d.ts +35 -31
- package/dist/gui/EFControls.js +8 -3
- package/dist/gui/EFControls.js.map +1 -0
- package/dist/gui/EFDial.d.ts +23 -16
- package/dist/gui/EFDial.js +6 -1
- package/dist/gui/EFDial.js.map +1 -0
- package/dist/gui/EFFilmstrip.d.ts +183 -177
- package/dist/gui/EFFilmstrip.js +30 -25
- package/dist/gui/EFFilmstrip.js.map +1 -0
- package/dist/gui/EFFitScale.d.ts +30 -24
- package/dist/gui/EFFitScale.js +6 -1
- package/dist/gui/EFFitScale.js.map +1 -0
- package/dist/gui/EFFocusOverlay.d.ts +22 -14
- package/dist/gui/EFFocusOverlay.js +6 -1
- package/dist/gui/EFFocusOverlay.js.map +1 -0
- package/dist/gui/EFPause.d.ts +24 -18
- package/dist/gui/EFPause.js +6 -1
- package/dist/gui/EFPause.js.map +1 -0
- package/dist/gui/EFPlay.d.ts +24 -18
- package/dist/gui/EFPlay.js +6 -1
- package/dist/gui/EFPlay.js.map +1 -0
- package/dist/gui/EFPreview.d.ts +22 -15
- package/dist/gui/EFPreview.js +9 -1
- package/dist/gui/EFPreview.js.map +1 -0
- package/dist/gui/EFResizableBox.d.ts +39 -32
- package/dist/gui/EFResizableBox.js +8 -3
- package/dist/gui/EFResizableBox.js.map +1 -0
- package/dist/gui/EFScrubber.d.ts +31 -25
- package/dist/gui/EFScrubber.js +6 -1
- package/dist/gui/EFScrubber.js.map +1 -0
- package/dist/gui/EFTimeDisplay.d.ts +21 -14
- package/dist/gui/EFTimeDisplay.js +6 -1
- package/dist/gui/EFTimeDisplay.js.map +1 -0
- package/dist/gui/EFToggleLoop.d.ts +19 -13
- package/dist/gui/EFToggleLoop.js +6 -1
- package/dist/gui/EFToggleLoop.js.map +1 -0
- package/dist/gui/EFTogglePlay.d.ts +23 -17
- package/dist/gui/EFTogglePlay.js +6 -1
- package/dist/gui/EFTogglePlay.js.map +1 -0
- package/dist/gui/EFWorkbench.d.ts +24 -16
- package/dist/gui/EFWorkbench.js +6 -1
- package/dist/gui/EFWorkbench.js.map +1 -0
- package/dist/gui/PlaybackController.d.ts +54 -50
- package/dist/gui/PlaybackController.js +23 -1
- package/dist/gui/PlaybackController.js.map +1 -0
- package/dist/gui/TWMixin.js +5 -1
- package/dist/gui/TWMixin.js.map +1 -0
- package/dist/gui/TWMixin2.js +6 -1
- package/dist/gui/TWMixin2.js.map +1 -0
- package/dist/gui/TargetOrContextMixin.js +5 -0
- package/dist/gui/TargetOrContextMixin.js.map +1 -0
- package/dist/gui/currentTimeContext.js +5 -0
- package/dist/gui/currentTimeContext.js.map +1 -0
- package/dist/gui/durationContext.js +5 -0
- package/dist/gui/durationContext.js.map +1 -0
- package/dist/gui/efContext.js +5 -0
- package/dist/gui/efContext.js.map +1 -0
- package/dist/gui/fetchContext.js +5 -0
- package/dist/gui/fetchContext.js.map +1 -0
- package/dist/gui/focusContext.d.ts +6 -5
- package/dist/gui/focusContext.js +5 -0
- package/dist/gui/focusContext.js.map +1 -0
- package/dist/gui/focusedElementContext.js +5 -0
- package/dist/gui/focusedElementContext.js.map +1 -0
- package/dist/gui/playingContext.js +5 -0
- package/dist/gui/playingContext.js.map +1 -0
- package/dist/index.d.ts +27 -26
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -0
- package/dist/msToTimeCode.js +4 -0
- package/dist/msToTimeCode.js.map +1 -0
- package/dist/otel/BridgeSpanExporter.js +5 -0
- package/dist/otel/BridgeSpanExporter.js.map +1 -0
- package/dist/otel/setupBrowserTracing.js +7 -2
- package/dist/otel/setupBrowserTracing.js.map +1 -0
- package/dist/otel/tracingHelpers.d.ts +7 -34
- package/dist/otel/tracingHelpers.js +34 -2
- package/dist/otel/tracingHelpers.js.map +1 -0
- package/dist/transcoding/cache/RequestDeduplicator.js +25 -0
- package/dist/transcoding/cache/RequestDeduplicator.js.map +1 -0
- package/dist/transcoding/cache/URLTokenDeduplicator.js +23 -0
- package/dist/transcoding/cache/URLTokenDeduplicator.js.map +1 -0
- package/dist/transcoding/types/index.d.ts +96 -270
- package/dist/transcoding/utils/UrlGenerator.d.ts +30 -25
- package/dist/transcoding/utils/UrlGenerator.js +19 -0
- package/dist/transcoding/utils/UrlGenerator.js.map +1 -0
- package/dist/utils/LRUCache.js +44 -0
- package/dist/utils/LRUCache.js.map +1 -0
- package/package.json +11 -24
- package/src/elements/EFCaptions.browsertest.ts +7 -7
- package/src/elements/EFTimegroup.ts +43 -1
- package/src/gui/PlaybackController.ts +6 -1
- package/tsdown.config.ts +36 -0
- package/types.json +1 -1
- package/dist/DelayedLoadingState.d.ts +0 -48
- package/dist/DelayedLoadingState.integration.test.d.ts +0 -1
- package/dist/DelayedLoadingState.test.d.ts +0 -1
- package/dist/EF_INTERACTIVE.d.ts +0 -1
- package/dist/EF_RENDERING.d.ts +0 -1
- package/dist/LoadingDebounce.test.d.ts +0 -1
- package/dist/ManualScrubTest.test.d.ts +0 -1
- package/dist/ScrubResolvedFlashing.test.d.ts +0 -1
- package/dist/ScrubTrackManager.test.d.ts +0 -1
- package/dist/VideoSeekFlashing.browsertest.d.ts +0 -0
- package/dist/VideoStuckDiagnostic.test.d.ts +0 -1
- package/dist/attachContextRoot.d.ts +0 -1
- package/dist/elements/ContextProxiesController.d.ts +0 -39
- package/dist/elements/CrossUpdateController.d.ts +0 -8
- package/dist/elements/EFAudio.browsertest.d.ts +0 -0
- package/dist/elements/EFCaptions.browsertest.d.ts +0 -0
- package/dist/elements/EFImage.browsertest.d.ts +0 -0
- package/dist/elements/EFMedia/AssetIdMediaEngine.d.ts +0 -19
- package/dist/elements/EFMedia/AssetIdMediaEngine.test.d.ts +0 -1
- package/dist/elements/EFMedia/AssetMediaEngine.browsertest.d.ts +0 -0
- package/dist/elements/EFMedia/AssetMediaEngine.d.ts +0 -56
- package/dist/elements/EFMedia/BaseMediaEngine.browsertest.d.ts +0 -1
- package/dist/elements/EFMedia/BaseMediaEngine.d.ts +0 -103
- package/dist/elements/EFMedia/BufferedSeekingInput.browsertest.d.ts +0 -1
- package/dist/elements/EFMedia/JitMediaEngine.browsertest.d.ts +0 -0
- package/dist/elements/EFMedia/JitMediaEngine.d.ts +0 -46
- package/dist/elements/EFMedia/audioTasks/makeAudioBufferTask.browsertest.d.ts +0 -9
- package/dist/elements/EFMedia/audioTasks/makeAudioFrequencyAnalysisTask.d.ts +0 -3
- package/dist/elements/EFMedia/audioTasks/makeAudioInitSegmentFetchTask.browsertest.d.ts +0 -9
- package/dist/elements/EFMedia/audioTasks/makeAudioInitSegmentFetchTask.d.ts +0 -4
- package/dist/elements/EFMedia/audioTasks/makeAudioInputTask.browsertest.d.ts +0 -9
- package/dist/elements/EFMedia/audioTasks/makeAudioInputTask.d.ts +0 -3
- package/dist/elements/EFMedia/audioTasks/makeAudioSeekTask.chunkboundary.regression.browsertest.d.ts +0 -0
- package/dist/elements/EFMedia/audioTasks/makeAudioSeekTask.d.ts +0 -7
- package/dist/elements/EFMedia/audioTasks/makeAudioSegmentFetchTask.d.ts +0 -4
- package/dist/elements/EFMedia/audioTasks/makeAudioSegmentIdTask.d.ts +0 -4
- package/dist/elements/EFMedia/audioTasks/makeAudioTasksVideoOnly.browsertest.d.ts +0 -1
- package/dist/elements/EFMedia/audioTasks/makeAudioTimeDomainAnalysisTask.d.ts +0 -3
- package/dist/elements/EFMedia/shared/AudioSpanUtils.d.ts +0 -7
- package/dist/elements/EFMedia/shared/GlobalInputCache.d.ts +0 -39
- package/dist/elements/EFMedia/shared/PrecisionUtils.d.ts +0 -28
- package/dist/elements/EFMedia/shared/RenditionHelpers.browsertest.d.ts +0 -1
- package/dist/elements/EFMedia/shared/RenditionHelpers.d.ts +0 -11
- package/dist/elements/EFMedia/shared/ThumbnailExtractor.d.ts +0 -27
- package/dist/elements/EFMedia/tasks/makeMediaEngineTask.browsertest.d.ts +0 -9
- package/dist/elements/EFMedia/tasks/makeMediaEngineTask.d.ts +0 -17
- package/dist/elements/EFMedia/videoTasks/MainVideoInputCache.d.ts +0 -29
- package/dist/elements/EFMedia/videoTasks/ScrubInputCache.d.ts +0 -25
- package/dist/elements/EFMedia/videoTasks/makeScrubVideoBufferTask.d.ts +0 -8
- package/dist/elements/EFMedia/videoTasks/makeScrubVideoInitSegmentFetchTask.d.ts +0 -4
- package/dist/elements/EFMedia/videoTasks/makeScrubVideoInputTask.d.ts +0 -3
- package/dist/elements/EFMedia/videoTasks/makeScrubVideoSeekTask.d.ts +0 -6
- package/dist/elements/EFMedia/videoTasks/makeScrubVideoSegmentFetchTask.d.ts +0 -4
- package/dist/elements/EFMedia/videoTasks/makeScrubVideoSegmentIdTask.d.ts +0 -4
- package/dist/elements/EFMedia/videoTasks/makeUnifiedVideoSeekTask.d.ts +0 -6
- package/dist/elements/EFMedia.browsertest.d.ts +0 -10
- package/dist/elements/EFSurface.browsertest.d.ts +0 -0
- package/dist/elements/EFTemporal.browsertest.d.ts +0 -22
- package/dist/elements/EFThumbnailStrip.browsertest.d.ts +0 -0
- package/dist/elements/EFThumbnailStrip.media-engine.browsertest.d.ts +0 -0
- package/dist/elements/EFTimegroup.browsertest.d.ts +0 -41
- package/dist/elements/EFVideo.browsertest.d.ts +0 -0
- package/dist/elements/FetchContext.browsertest.d.ts +0 -0
- package/dist/elements/TargetController.browsertest.d.ts +0 -19
- package/dist/elements/durationConverter.d.ts +0 -16
- package/dist/elements/parseTimeToMs.d.ts +0 -1
- package/dist/elements/printTaskStatus.d.ts +0 -2
- package/dist/elements/renderTemporalAudio.d.ts +0 -10
- package/dist/elements/updateAnimations.browsertest.d.ts +0 -13
- package/dist/elements/updateAnimations.d.ts +0 -24
- package/dist/elements/util.d.ts +0 -3
- package/dist/gui/ContextMixin.browsertest.d.ts +0 -15
- package/dist/gui/Controllable.browsertest.d.ts +0 -0
- package/dist/gui/EFControls.browsertest.d.ts +0 -11
- package/dist/gui/EFDial.browsertest.d.ts +0 -0
- package/dist/gui/EFFilmstrip.browsertest.d.ts +0 -11
- package/dist/gui/EFPause.browsertest.d.ts +0 -0
- package/dist/gui/EFPlay.browsertest.d.ts +0 -0
- package/dist/gui/EFResizableBox.browsertest.d.ts +0 -0
- package/dist/gui/EFTimeDisplay.browsertest.d.ts +0 -0
- package/dist/gui/TWMixin.d.ts +0 -2
- package/dist/gui/TargetOrContextMixin.d.ts +0 -10
- package/dist/gui/currentTimeContext.d.ts +0 -3
- package/dist/gui/durationContext.d.ts +0 -3
- package/dist/gui/efContext.d.ts +0 -4
- package/dist/gui/fetchContext.d.ts +0 -3
- package/dist/gui/focusedElementContext.d.ts +0 -3
- package/dist/gui/playingContext.d.ts +0 -6
- package/dist/msToTimeCode.d.ts +0 -1
- package/dist/otel/BridgeSpanExporter.d.ts +0 -13
- package/dist/otel/setupBrowserTracing.d.ts +0 -12
- package/dist/style.css +0 -2
- package/dist/transcoding/cache/RequestDeduplicator.d.ts +0 -29
- package/dist/transcoding/cache/RequestDeduplicator.test.d.ts +0 -1
- package/dist/transcoding/cache/URLTokenDeduplicator.d.ts +0 -38
- package/dist/transcoding/cache/URLTokenDeduplicator.test.d.ts +0 -1
- package/dist/transcoding/utils/MediaUtils.d.ts +0 -9
- package/dist/transcoding/utils/constants.d.ts +0 -27
- package/dist/utils/LRUCache.d.ts +0 -80
- package/dist/utils/LRUCache.test.d.ts +0 -1
- /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 {};
|
package/dist/EF_INTERACTIVE.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare let EF_INTERACTIVE: boolean;
|
package/dist/EF_RENDERING.d.ts
DELETED
|
@@ -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 {};
|
|
File without changes
|
|
@@ -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 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -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 +0,0 @@
|
|
|
1
|
-
export {};
|
|
File without changes
|
|
@@ -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,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>;
|
package/dist/elements/EFMedia/audioTasks/makeAudioSeekTask.chunkboundary.regression.browsertest.d.ts
DELETED
|
File without changes
|
|
@@ -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 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -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 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -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,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
|
-
}
|