@meframe/core 0.0.1
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/CHANGELOG.md +42 -0
- package/LICENSE +22 -0
- package/README.md +396 -0
- package/dist/Meframe.d.ts +82 -0
- package/dist/Meframe.d.ts.map +1 -0
- package/dist/Meframe.js +290 -0
- package/dist/Meframe.js.map +1 -0
- package/dist/_virtual/mp4box.all.js +5 -0
- package/dist/_virtual/mp4box.all.js.map +1 -0
- package/dist/cache/BatchWriter.d.ts +25 -0
- package/dist/cache/BatchWriter.d.ts.map +1 -0
- package/dist/cache/CacheManager.d.ts +115 -0
- package/dist/cache/CacheManager.d.ts.map +1 -0
- package/dist/cache/CacheManager.js +388 -0
- package/dist/cache/CacheManager.js.map +1 -0
- package/dist/cache/CacheStatsDecorator.d.ts +27 -0
- package/dist/cache/CacheStatsDecorator.d.ts.map +1 -0
- package/dist/cache/L2Cache.d.ts +39 -0
- package/dist/cache/L2Cache.d.ts.map +1 -0
- package/dist/cache/L2Cache.js +282 -0
- package/dist/cache/L2Cache.js.map +1 -0
- package/dist/cache/index.d.ts +7 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/l1/AudioL1Cache.d.ts +30 -0
- package/dist/cache/l1/AudioL1Cache.d.ts.map +1 -0
- package/dist/cache/l1/AudioL1Cache.js +306 -0
- package/dist/cache/l1/AudioL1Cache.js.map +1 -0
- package/dist/cache/l1/MixedAudioL1Cache.d.ts +13 -0
- package/dist/cache/l1/MixedAudioL1Cache.d.ts.map +1 -0
- package/dist/cache/l1/MixedAudioL1Cache.js +52 -0
- package/dist/cache/l1/MixedAudioL1Cache.js.map +1 -0
- package/dist/cache/l1/VideoL1Cache.d.ts +69 -0
- package/dist/cache/l1/VideoL1Cache.d.ts.map +1 -0
- package/dist/cache/l1/VideoL1Cache.js +318 -0
- package/dist/cache/l1/VideoL1Cache.js.map +1 -0
- package/dist/cache/l1/gop-utils.d.ts +10 -0
- package/dist/cache/l1/gop-utils.d.ts.map +1 -0
- package/dist/cache/l1/gop-utils.js +78 -0
- package/dist/cache/l1/gop-utils.js.map +1 -0
- package/dist/cache/l1/index.d.ts +4 -0
- package/dist/cache/l1/index.d.ts.map +1 -0
- package/dist/cache/l1/types.d.ts +17 -0
- package/dist/cache/l1/types.d.ts.map +1 -0
- package/dist/cache/types.d.ts +93 -0
- package/dist/cache/types.d.ts.map +1 -0
- package/dist/config/ConfigLoader.d.ts +69 -0
- package/dist/config/ConfigLoader.d.ts.map +1 -0
- package/dist/config/ConfigLoader.js +133 -0
- package/dist/config/ConfigLoader.js.map +1 -0
- package/dist/config/defaults.d.ts +125 -0
- package/dist/config/defaults.d.ts.map +1 -0
- package/dist/config/defaults.js +191 -0
- package/dist/config/defaults.js.map +1 -0
- package/dist/config/index.d.ts +6 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/presets.d.ts +32 -0
- package/dist/config/presets.d.ts.map +1 -0
- package/dist/config/presets.js +11 -0
- package/dist/config/presets.js.map +1 -0
- package/dist/config/types.d.ts +199 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/validation.d.ts +19 -0
- package/dist/config/validation.d.ts.map +1 -0
- package/dist/config/validation.js +232 -0
- package/dist/config/validation.js.map +1 -0
- package/dist/controllers/PlaybackController.d.ts +55 -0
- package/dist/controllers/PlaybackController.d.ts.map +1 -0
- package/dist/controllers/PlaybackController.js +369 -0
- package/dist/controllers/PlaybackController.js.map +1 -0
- package/dist/controllers/PreRenderService.d.ts +34 -0
- package/dist/controllers/PreRenderService.d.ts.map +1 -0
- package/dist/controllers/PreRenderService.js +83 -0
- package/dist/controllers/PreRenderService.js.map +1 -0
- package/dist/controllers/PreRenderTaskQueue.d.ts +21 -0
- package/dist/controllers/PreRenderTaskQueue.d.ts.map +1 -0
- package/dist/controllers/PreviewHandle.d.ts +23 -0
- package/dist/controllers/PreviewHandle.d.ts.map +1 -0
- package/dist/controllers/PreviewHandle.js +39 -0
- package/dist/controllers/PreviewHandle.js.map +1 -0
- package/dist/controllers/index.d.ts +8 -0
- package/dist/controllers/index.d.ts.map +1 -0
- package/dist/controllers/types.d.ts +102 -0
- package/dist/controllers/types.d.ts.map +1 -0
- package/dist/event/EventBus.d.ts +42 -0
- package/dist/event/EventBus.d.ts.map +1 -0
- package/dist/event/EventBus.js +94 -0
- package/dist/event/EventBus.js.map +1 -0
- package/dist/event/events.d.ts +371 -0
- package/dist/event/events.d.ts.map +1 -0
- package/dist/event/events.js +71 -0
- package/dist/event/events.js.map +1 -0
- package/dist/event/index.d.ts +4 -0
- package/dist/event/index.d.ts.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -0
- package/dist/model/CompositionModel.d.ts +48 -0
- package/dist/model/CompositionModel.d.ts.map +1 -0
- package/dist/model/CompositionModel.js +197 -0
- package/dist/model/CompositionModel.js.map +1 -0
- package/dist/model/RcFrame.d.ts +34 -0
- package/dist/model/RcFrame.d.ts.map +1 -0
- package/dist/model/RcFrame.js +97 -0
- package/dist/model/RcFrame.js.map +1 -0
- package/dist/model/dirty-range.d.ts +5 -0
- package/dist/model/dirty-range.d.ts.map +1 -0
- package/dist/model/dirty-range.js +220 -0
- package/dist/model/dirty-range.js.map +1 -0
- package/dist/model/index.d.ts +7 -0
- package/dist/model/index.d.ts.map +1 -0
- package/dist/model/patch.d.ts +5 -0
- package/dist/model/patch.d.ts.map +1 -0
- package/dist/model/patch.js +250 -0
- package/dist/model/patch.js.map +1 -0
- package/dist/model/types.d.ts +135 -0
- package/dist/model/types.d.ts.map +1 -0
- package/dist/model/types.js +5 -0
- package/dist/model/types.js.map +1 -0
- package/dist/model/validation.d.ts +15 -0
- package/dist/model/validation.d.ts.map +1 -0
- package/dist/model/validation.js +74 -0
- package/dist/model/validation.js.map +1 -0
- package/dist/node_modules/.pnpm/mp4box@0.5.4/node_modules/mp4box/dist/mp4box.all.js +7046 -0
- package/dist/node_modules/.pnpm/mp4box@0.5.4/node_modules/mp4box/dist/mp4box.all.js.map +1 -0
- package/dist/orchestrator/ClipSessionManager.d.ts +75 -0
- package/dist/orchestrator/ClipSessionManager.d.ts.map +1 -0
- package/dist/orchestrator/ClipSessionManager.js +160 -0
- package/dist/orchestrator/ClipSessionManager.js.map +1 -0
- package/dist/orchestrator/CompositionPlanner.d.ts +55 -0
- package/dist/orchestrator/CompositionPlanner.d.ts.map +1 -0
- package/dist/orchestrator/CompositionPlanner.js +411 -0
- package/dist/orchestrator/CompositionPlanner.js.map +1 -0
- package/dist/orchestrator/Orchestrator.d.ts +59 -0
- package/dist/orchestrator/Orchestrator.d.ts.map +1 -0
- package/dist/orchestrator/Orchestrator.js +390 -0
- package/dist/orchestrator/Orchestrator.js.map +1 -0
- package/dist/orchestrator/VideoClipSession.d.ts +64 -0
- package/dist/orchestrator/VideoClipSession.d.ts.map +1 -0
- package/dist/orchestrator/VideoClipSession.js +309 -0
- package/dist/orchestrator/VideoClipSession.js.map +1 -0
- package/dist/orchestrator/index.d.ts +5 -0
- package/dist/orchestrator/index.d.ts.map +1 -0
- package/dist/orchestrator/types.d.ts +64 -0
- package/dist/orchestrator/types.d.ts.map +1 -0
- package/dist/plugins/BackpressureMonitor.d.ts +33 -0
- package/dist/plugins/BackpressureMonitor.d.ts.map +1 -0
- package/dist/plugins/BackpressureMonitor.js +62 -0
- package/dist/plugins/BackpressureMonitor.js.map +1 -0
- package/dist/plugins/PluginManager.d.ts +37 -0
- package/dist/plugins/PluginManager.d.ts.map +1 -0
- package/dist/plugins/PluginManager.js +66 -0
- package/dist/plugins/PluginManager.js.map +1 -0
- package/dist/plugins/types.d.ts +60 -0
- package/dist/plugins/types.d.ts.map +1 -0
- package/dist/stages/compose/AudioDucker.d.ts +59 -0
- package/dist/stages/compose/AudioDucker.d.ts.map +1 -0
- package/dist/stages/compose/AudioDucker.js +161 -0
- package/dist/stages/compose/AudioDucker.js.map +1 -0
- package/dist/stages/compose/AudioMixer.d.ts +29 -0
- package/dist/stages/compose/AudioMixer.d.ts.map +1 -0
- package/dist/stages/compose/AudioMixer.js +373 -0
- package/dist/stages/compose/AudioMixer.js.map +1 -0
- package/dist/stages/compose/FilterProcessor.d.ts +41 -0
- package/dist/stages/compose/FilterProcessor.d.ts.map +1 -0
- package/dist/stages/compose/FilterProcessor.js +226 -0
- package/dist/stages/compose/FilterProcessor.js.map +1 -0
- package/dist/stages/compose/GlobalAudioSession.d.ts +38 -0
- package/dist/stages/compose/GlobalAudioSession.d.ts.map +1 -0
- package/dist/stages/compose/GlobalAudioSession.js +122 -0
- package/dist/stages/compose/GlobalAudioSession.js.map +1 -0
- package/dist/stages/compose/LayerRenderer.d.ts +30 -0
- package/dist/stages/compose/LayerRenderer.d.ts.map +1 -0
- package/dist/stages/compose/LayerRenderer.js +215 -0
- package/dist/stages/compose/LayerRenderer.js.map +1 -0
- package/dist/stages/compose/OfflineAudioMixer.d.ts +14 -0
- package/dist/stages/compose/OfflineAudioMixer.d.ts.map +1 -0
- package/dist/stages/compose/OfflineAudioMixer.js +68 -0
- package/dist/stages/compose/OfflineAudioMixer.js.map +1 -0
- package/dist/stages/compose/TransitionProcessor.d.ts +30 -0
- package/dist/stages/compose/TransitionProcessor.d.ts.map +1 -0
- package/dist/stages/compose/TransitionProcessor.js +189 -0
- package/dist/stages/compose/TransitionProcessor.js.map +1 -0
- package/dist/stages/compose/VideoComposer.d.ts +30 -0
- package/dist/stages/compose/VideoComposer.d.ts.map +1 -0
- package/dist/stages/compose/VideoComposer.js +186 -0
- package/dist/stages/compose/VideoComposer.js.map +1 -0
- package/dist/stages/compose/audio-compose.worker.d.ts +79 -0
- package/dist/stages/compose/audio-compose.worker.d.ts.map +1 -0
- package/dist/stages/compose/audio-compose.worker.js +541 -0
- package/dist/stages/compose/audio-compose.worker.js.map +1 -0
- package/dist/stages/compose/instructions.d.ts +95 -0
- package/dist/stages/compose/instructions.d.ts.map +1 -0
- package/dist/stages/compose/types.d.ts +245 -0
- package/dist/stages/compose/types.d.ts.map +1 -0
- package/dist/stages/compose/video-compose.worker.d.ts +60 -0
- package/dist/stages/compose/video-compose.worker.d.ts.map +1 -0
- package/dist/stages/compose/video-compose.worker.js +369 -0
- package/dist/stages/compose/video-compose.worker.js.map +1 -0
- package/dist/stages/decode/AudioChunkDecoder.d.ts +41 -0
- package/dist/stages/decode/AudioChunkDecoder.d.ts.map +1 -0
- package/dist/stages/decode/AudioChunkDecoder.js +83 -0
- package/dist/stages/decode/AudioChunkDecoder.js.map +1 -0
- package/dist/stages/decode/BaseDecoder.d.ts +35 -0
- package/dist/stages/decode/BaseDecoder.d.ts.map +1 -0
- package/dist/stages/decode/BaseDecoder.js +130 -0
- package/dist/stages/decode/BaseDecoder.js.map +1 -0
- package/dist/stages/decode/VideoChunkDecoder.d.ts +54 -0
- package/dist/stages/decode/VideoChunkDecoder.d.ts.map +1 -0
- package/dist/stages/decode/VideoChunkDecoder.js +209 -0
- package/dist/stages/decode/VideoChunkDecoder.js.map +1 -0
- package/dist/stages/decode/decode.worker.d.ts +70 -0
- package/dist/stages/decode/decode.worker.d.ts.map +1 -0
- package/dist/stages/decode/decode.worker.js +436 -0
- package/dist/stages/decode/decode.worker.js.map +1 -0
- package/dist/stages/decode/index.d.ts +5 -0
- package/dist/stages/decode/index.d.ts.map +1 -0
- package/dist/stages/decode/types.d.ts +108 -0
- package/dist/stages/decode/types.d.ts.map +1 -0
- package/dist/stages/demux/MP3FrameParser.d.ts +33 -0
- package/dist/stages/demux/MP3FrameParser.d.ts.map +1 -0
- package/dist/stages/demux/MP3FrameParser.js +186 -0
- package/dist/stages/demux/MP3FrameParser.js.map +1 -0
- package/dist/stages/demux/MP4Demuxer.d.ts +45 -0
- package/dist/stages/demux/MP4Demuxer.d.ts.map +1 -0
- package/dist/stages/demux/MP4Demuxer.js +227 -0
- package/dist/stages/demux/MP4Demuxer.js.map +1 -0
- package/dist/stages/demux/aac-esds-extractor.d.ts +7 -0
- package/dist/stages/demux/aac-esds-extractor.d.ts.map +1 -0
- package/dist/stages/demux/audio-demux.worker.d.ts +51 -0
- package/dist/stages/demux/audio-demux.worker.d.ts.map +1 -0
- package/dist/stages/demux/audio-demux.worker.js +312 -0
- package/dist/stages/demux/audio-demux.worker.js.map +1 -0
- package/dist/stages/demux/types.d.ts +77 -0
- package/dist/stages/demux/types.d.ts.map +1 -0
- package/dist/stages/demux/video-demux.worker.d.ts +48 -0
- package/dist/stages/demux/video-demux.worker.d.ts.map +1 -0
- package/dist/stages/demux/video-demux.worker.js +173 -0
- package/dist/stages/demux/video-demux.worker.js.map +1 -0
- package/dist/stages/encode/AudioChunkEncoder.d.ts +21 -0
- package/dist/stages/encode/AudioChunkEncoder.d.ts.map +1 -0
- package/dist/stages/encode/AudioChunkEncoder.js +37 -0
- package/dist/stages/encode/AudioChunkEncoder.js.map +1 -0
- package/dist/stages/encode/BaseEncoder.d.ts +44 -0
- package/dist/stages/encode/BaseEncoder.d.ts.map +1 -0
- package/dist/stages/encode/BaseEncoder.js +164 -0
- package/dist/stages/encode/BaseEncoder.js.map +1 -0
- package/dist/stages/encode/EncoderPool.d.ts +28 -0
- package/dist/stages/encode/EncoderPool.d.ts.map +1 -0
- package/dist/stages/encode/VideoChunkEncoder.d.ts +26 -0
- package/dist/stages/encode/VideoChunkEncoder.d.ts.map +1 -0
- package/dist/stages/encode/VideoChunkEncoder.js +50 -0
- package/dist/stages/encode/VideoChunkEncoder.js.map +1 -0
- package/dist/stages/encode/encode.worker.d.ts +3 -0
- package/dist/stages/encode/encode.worker.d.ts.map +1 -0
- package/dist/stages/encode/encode.worker.js +318 -0
- package/dist/stages/encode/encode.worker.js.map +1 -0
- package/dist/stages/encode/index.d.ts +6 -0
- package/dist/stages/encode/index.d.ts.map +1 -0
- package/dist/stages/encode/types.d.ts +127 -0
- package/dist/stages/encode/types.d.ts.map +1 -0
- package/dist/stages/load/EventHandlers.d.ts +35 -0
- package/dist/stages/load/EventHandlers.d.ts.map +1 -0
- package/dist/stages/load/EventHandlers.js +65 -0
- package/dist/stages/load/EventHandlers.js.map +1 -0
- package/dist/stages/load/ResourceLoader.d.ts +36 -0
- package/dist/stages/load/ResourceLoader.d.ts.map +1 -0
- package/dist/stages/load/ResourceLoader.js +184 -0
- package/dist/stages/load/ResourceLoader.js.map +1 -0
- package/dist/stages/load/StreamFactory.d.ts +42 -0
- package/dist/stages/load/StreamFactory.d.ts.map +1 -0
- package/dist/stages/load/StreamFactory.js +201 -0
- package/dist/stages/load/StreamFactory.js.map +1 -0
- package/dist/stages/load/TaskManager.d.ts +50 -0
- package/dist/stages/load/TaskManager.d.ts.map +1 -0
- package/dist/stages/load/TaskManager.js +103 -0
- package/dist/stages/load/TaskManager.js.map +1 -0
- package/dist/stages/load/WindowByteRangeResolver.d.ts +47 -0
- package/dist/stages/load/WindowByteRangeResolver.d.ts.map +1 -0
- package/dist/stages/load/WindowByteRangeResolver.js +270 -0
- package/dist/stages/load/WindowByteRangeResolver.js.map +1 -0
- package/dist/stages/load/index.d.ts +11 -0
- package/dist/stages/load/index.d.ts.map +1 -0
- package/dist/stages/load/types.d.ts +177 -0
- package/dist/stages/load/types.d.ts.map +1 -0
- package/dist/stages/mux/MP4Muxer.d.ts +44 -0
- package/dist/stages/mux/MP4Muxer.d.ts.map +1 -0
- package/dist/stages/mux/MP4Muxer.js +262 -0
- package/dist/stages/mux/MP4Muxer.js.map +1 -0
- package/dist/stages/mux/OPFSWriter.d.ts +46 -0
- package/dist/stages/mux/OPFSWriter.d.ts.map +1 -0
- package/dist/stages/mux/index.d.ts +5 -0
- package/dist/stages/mux/index.d.ts.map +1 -0
- package/dist/stages/mux/mux.worker.d.ts +65 -0
- package/dist/stages/mux/mux.worker.d.ts.map +1 -0
- package/dist/stages/mux/mux.worker.js +219 -0
- package/dist/stages/mux/mux.worker.js.map +1 -0
- package/dist/stages/mux/types.d.ts +95 -0
- package/dist/stages/mux/types.d.ts.map +1 -0
- package/dist/stages/mux/utils.d.ts +32 -0
- package/dist/stages/mux/utils.d.ts.map +1 -0
- package/dist/stages/mux/utils.js +34 -0
- package/dist/stages/mux/utils.js.map +1 -0
- package/dist/types.d.ts +25 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/utils/BackpressureAdapter.d.ts +26 -0
- package/dist/utils/BackpressureAdapter.d.ts.map +1 -0
- package/dist/utils/binary-search.d.ts +33 -0
- package/dist/utils/binary-search.d.ts.map +1 -0
- package/dist/utils/binary-search.js +62 -0
- package/dist/utils/binary-search.js.map +1 -0
- package/dist/utils/canvas-utils.d.ts +96 -0
- package/dist/utils/canvas-utils.d.ts.map +1 -0
- package/dist/utils/canvas-utils.js +58 -0
- package/dist/utils/canvas-utils.js.map +1 -0
- package/dist/utils/object-utils.d.ts +34 -0
- package/dist/utils/object-utils.d.ts.map +1 -0
- package/dist/utils/object-utils.js +22 -0
- package/dist/utils/object-utils.js.map +1 -0
- package/dist/utils/time-utils.d.ts +10 -0
- package/dist/utils/time-utils.d.ts.map +1 -0
- package/dist/utils/time-utils.js +60 -0
- package/dist/utils/time-utils.js.map +1 -0
- package/dist/worker/BaseWorker.d.ts +44 -0
- package/dist/worker/BaseWorker.d.ts.map +1 -0
- package/dist/worker/BaseWorker.js +98 -0
- package/dist/worker/BaseWorker.js.map +1 -0
- package/dist/worker/WorkerChannel.d.ts +105 -0
- package/dist/worker/WorkerChannel.d.ts.map +1 -0
- package/dist/worker/WorkerChannel.js +355 -0
- package/dist/worker/WorkerChannel.js.map +1 -0
- package/dist/worker/WorkerPool.d.ts +52 -0
- package/dist/worker/WorkerPool.d.ts.map +1 -0
- package/dist/worker/WorkerPool.js +124 -0
- package/dist/worker/WorkerPool.js.map +1 -0
- package/dist/worker/index.d.ts +11 -0
- package/dist/worker/index.d.ts.map +1 -0
- package/dist/worker/transferable-helper.d.ts +89 -0
- package/dist/worker/transferable-helper.d.ts.map +1 -0
- package/dist/worker/transferable-helper.js +44 -0
- package/dist/worker/transferable-helper.js.map +1 -0
- package/dist/worker/types.d.ts +179 -0
- package/dist/worker/types.d.ts.map +1 -0
- package/dist/worker/types.js +50 -0
- package/dist/worker/types.js.map +1 -0
- package/dist/worker/worker-event-whitelist.d.ts +23 -0
- package/dist/worker/worker-event-whitelist.d.ts.map +1 -0
- package/dist/worker/worker-retry.d.ts +36 -0
- package/dist/worker/worker-retry.d.ts.map +1 -0
- package/dist/worker/worker-retry.js +55 -0
- package/dist/worker/worker-retry.js.map +1 -0
- package/package.json +105 -0
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { TimeUs } from '../model/types';
|
|
2
|
+
import { RcFrame } from '../model';
|
|
3
|
+
import { EventBus } from '../event/EventBus';
|
|
4
|
+
import { EventPayloadMap } from '../event/events';
|
|
5
|
+
import { RenderFrameOptions } from '../orchestrator/types';
|
|
6
|
+
|
|
7
|
+
export type { TimeUs } from '../model/types';
|
|
8
|
+
export interface IPreRenderService {
|
|
9
|
+
start(): void;
|
|
10
|
+
stop(): void;
|
|
11
|
+
pause(): void;
|
|
12
|
+
resume(): void;
|
|
13
|
+
setWindow(size: TimeUs): void;
|
|
14
|
+
setPriority(priority: 'low' | 'normal' | 'high'): void;
|
|
15
|
+
setStrategy(strategy: RenderStrategy): void;
|
|
16
|
+
clearQueue(): void;
|
|
17
|
+
queueRange(startUs: TimeUs, endUs: TimeUs, priority?: number): void;
|
|
18
|
+
readonly status: PreRenderStatus;
|
|
19
|
+
readonly queueSize: number;
|
|
20
|
+
}
|
|
21
|
+
export interface RenderStrategy {
|
|
22
|
+
direction: 'forward' | 'backward' | 'bidirectional';
|
|
23
|
+
lookahead: TimeUs;
|
|
24
|
+
lookbehind: TimeUs;
|
|
25
|
+
keyframesOnly?: boolean;
|
|
26
|
+
}
|
|
27
|
+
export interface PreRenderStatus {
|
|
28
|
+
isRunning: boolean;
|
|
29
|
+
framesRendered: number;
|
|
30
|
+
queueSize: number;
|
|
31
|
+
currentTimeUs: TimeUs;
|
|
32
|
+
}
|
|
33
|
+
export interface RenderTask {
|
|
34
|
+
timeUs: TimeUs;
|
|
35
|
+
clipId: string;
|
|
36
|
+
priority: number;
|
|
37
|
+
clipIds: string[];
|
|
38
|
+
schedulerPriority: 'seek' | 'playback' | 'prerender' | 'background';
|
|
39
|
+
}
|
|
40
|
+
export interface IPlaybackController {
|
|
41
|
+
play(): void;
|
|
42
|
+
pause(): void;
|
|
43
|
+
stop(): void;
|
|
44
|
+
seek(timeUs: TimeUs): void;
|
|
45
|
+
setRate(rate: number): void;
|
|
46
|
+
setVolume(volume: number): void;
|
|
47
|
+
setLoop(loop: boolean): void;
|
|
48
|
+
setMute(muted: boolean): void;
|
|
49
|
+
readonly currentTime: TimeUs;
|
|
50
|
+
readonly duration: TimeUs;
|
|
51
|
+
readonly state: PlaybackState;
|
|
52
|
+
readonly playing: boolean;
|
|
53
|
+
}
|
|
54
|
+
export type PlaybackState = 'idle' | 'buffering' | 'playing' | 'paused' | 'seeking' | 'ended';
|
|
55
|
+
export type PlaybackEvent = 'play' | 'pause' | 'ended' | 'seek' | 'timeupdate' | 'ratechange' | 'error' | 'frame' | 'stop';
|
|
56
|
+
export interface PlaybackOptions {
|
|
57
|
+
canvas: HTMLCanvasElement | OffscreenCanvas;
|
|
58
|
+
startUs?: TimeUs;
|
|
59
|
+
endUs?: TimeUs;
|
|
60
|
+
loop?: boolean;
|
|
61
|
+
rate?: number;
|
|
62
|
+
autoStart?: boolean;
|
|
63
|
+
}
|
|
64
|
+
export interface PreviewHandle {
|
|
65
|
+
play(): void;
|
|
66
|
+
seek(timeUs: TimeUs): void;
|
|
67
|
+
setRate(rate: number): void;
|
|
68
|
+
pause(): void;
|
|
69
|
+
resume(): void;
|
|
70
|
+
stop(): void;
|
|
71
|
+
readonly currentTimeUs: TimeUs;
|
|
72
|
+
on(event: string, handler: Function): void;
|
|
73
|
+
off(event: string, handler: Function): void;
|
|
74
|
+
}
|
|
75
|
+
export interface TimeRange {
|
|
76
|
+
startUs: TimeUs;
|
|
77
|
+
endUs: TimeUs;
|
|
78
|
+
}
|
|
79
|
+
export interface PrioritizedClip {
|
|
80
|
+
id: string;
|
|
81
|
+
startUs: TimeUs;
|
|
82
|
+
endUs: TimeUs;
|
|
83
|
+
priority: number;
|
|
84
|
+
}
|
|
85
|
+
export interface IOrchestratorForControl {
|
|
86
|
+
renderFrame(timeUs: TimeUs, options?: RenderFrameOptions): Promise<RcFrame | null>;
|
|
87
|
+
ensureClipCache(timeUs: TimeUs): Promise<void>;
|
|
88
|
+
waitForClipReady(timeUs: TimeUs, options?: {
|
|
89
|
+
minFrameCount?: number;
|
|
90
|
+
timeoutMs?: number;
|
|
91
|
+
}): Promise<boolean>;
|
|
92
|
+
readonly compositionModel: any;
|
|
93
|
+
readonly cacheManager: any;
|
|
94
|
+
}
|
|
95
|
+
export type IEventBus = EventBus<EventPayloadMap>;
|
|
96
|
+
export interface FrameStats {
|
|
97
|
+
timeUs: TimeUs;
|
|
98
|
+
fps: number;
|
|
99
|
+
frameTime: number;
|
|
100
|
+
dropped: boolean;
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/controllers/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Event bus implementation for cross-component communication
|
|
3
|
+
* Provides type-safe event emission and subscription
|
|
4
|
+
*/
|
|
5
|
+
export declare class EventBus<TEventMap extends Record<string, any> = any> {
|
|
6
|
+
private listeners;
|
|
7
|
+
private onceListeners;
|
|
8
|
+
/**
|
|
9
|
+
* Emit an event with optional payload
|
|
10
|
+
*/
|
|
11
|
+
emit<K extends keyof TEventMap>(event: K, payload?: TEventMap[K]): void;
|
|
12
|
+
/**
|
|
13
|
+
* Subscribe to an event
|
|
14
|
+
*/
|
|
15
|
+
on<K extends keyof TEventMap>(event: K, handler: (payload: TEventMap[K]) => void): void;
|
|
16
|
+
/**
|
|
17
|
+
* Unsubscribe from an event
|
|
18
|
+
*/
|
|
19
|
+
off<K extends keyof TEventMap>(event: K, handler: Function): void;
|
|
20
|
+
/**
|
|
21
|
+
* Subscribe to an event once
|
|
22
|
+
*/
|
|
23
|
+
once<K extends keyof TEventMap>(event: K, handler: (payload: TEventMap[K]) => void): void;
|
|
24
|
+
/**
|
|
25
|
+
* Get a read-only view of the event bus
|
|
26
|
+
* Only allows subscribing, not emitting
|
|
27
|
+
*/
|
|
28
|
+
asReadonly(): Pick<EventBus<TEventMap>, 'on' | 'off' | 'once'>;
|
|
29
|
+
/**
|
|
30
|
+
* Remove all listeners for a specific event
|
|
31
|
+
*/
|
|
32
|
+
removeAllListeners<K extends keyof TEventMap>(event?: K): void;
|
|
33
|
+
/**
|
|
34
|
+
* Get listener count for an event
|
|
35
|
+
*/
|
|
36
|
+
listenerCount<K extends keyof TEventMap>(event: K): number;
|
|
37
|
+
/**
|
|
38
|
+
* Clean up resources
|
|
39
|
+
*/
|
|
40
|
+
dispose(): void;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=EventBus.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventBus.d.ts","sourceRoot":"","sources":["../../src/event/EventBus.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,qBAAa,QAAQ,CAAC,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,GAAG;IAC/D,OAAO,CAAC,SAAS,CAA6C;IAC9D,OAAO,CAAC,aAAa,CAA6C;IAElE;;OAEG;IACH,IAAI,CAAC,CAAC,SAAS,MAAM,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI;IAwBvE;;OAEG;IACH,EAAE,CAAC,CAAC,SAAS,MAAM,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI;IAOvF;;OAEG;IACH,GAAG,CAAC,CAAC,SAAS,MAAM,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,GAAG,IAAI;IAKjE;;OAEG;IACH,IAAI,CAAC,CAAC,SAAS,MAAM,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI;IAOzF;;;OAGG;IACH,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,IAAI,GAAG,KAAK,GAAG,MAAM,CAAC;IAQ9D;;OAEG;IACH,kBAAkB,CAAC,CAAC,SAAS,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI;IAU9D;;OAEG;IACH,aAAa,CAAC,CAAC,SAAS,MAAM,SAAS,EAAE,KAAK,EAAE,CAAC,GAAG,MAAM;IAM1D;;OAEG;IACH,OAAO,IAAI,IAAI;CAIhB"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
class EventBus {
|
|
2
|
+
listeners = /* @__PURE__ */ new Map();
|
|
3
|
+
onceListeners = /* @__PURE__ */ new Map();
|
|
4
|
+
/**
|
|
5
|
+
* Emit an event with optional payload
|
|
6
|
+
*/
|
|
7
|
+
emit(event, payload) {
|
|
8
|
+
this.listeners.get(event)?.forEach((fn) => {
|
|
9
|
+
try {
|
|
10
|
+
fn(payload);
|
|
11
|
+
} catch (err) {
|
|
12
|
+
console.error(`EventBus listener error for ${String(event)}:`, err);
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
const once = this.onceListeners.get(event);
|
|
16
|
+
if (once) {
|
|
17
|
+
once.forEach((fn) => {
|
|
18
|
+
try {
|
|
19
|
+
fn(payload);
|
|
20
|
+
} catch (err) {
|
|
21
|
+
console.error(`EventBus once listener error for ${String(event)}:`, err);
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
this.onceListeners.delete(event);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Subscribe to an event
|
|
29
|
+
*/
|
|
30
|
+
on(event, handler) {
|
|
31
|
+
if (!this.listeners.has(event)) {
|
|
32
|
+
this.listeners.set(event, /* @__PURE__ */ new Set());
|
|
33
|
+
}
|
|
34
|
+
this.listeners.get(event).add(handler);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Unsubscribe from an event
|
|
38
|
+
*/
|
|
39
|
+
off(event, handler) {
|
|
40
|
+
this.listeners.get(event)?.delete(handler);
|
|
41
|
+
this.onceListeners.get(event)?.delete(handler);
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Subscribe to an event once
|
|
45
|
+
*/
|
|
46
|
+
once(event, handler) {
|
|
47
|
+
if (!this.onceListeners.has(event)) {
|
|
48
|
+
this.onceListeners.set(event, /* @__PURE__ */ new Set());
|
|
49
|
+
}
|
|
50
|
+
this.onceListeners.get(event).add(handler);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Get a read-only view of the event bus
|
|
54
|
+
* Only allows subscribing, not emitting
|
|
55
|
+
*/
|
|
56
|
+
asReadonly() {
|
|
57
|
+
return {
|
|
58
|
+
on: this.on.bind(this),
|
|
59
|
+
off: this.off.bind(this),
|
|
60
|
+
once: this.once.bind(this)
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Remove all listeners for a specific event
|
|
65
|
+
*/
|
|
66
|
+
removeAllListeners(event) {
|
|
67
|
+
if (event) {
|
|
68
|
+
this.listeners.delete(event);
|
|
69
|
+
this.onceListeners.delete(event);
|
|
70
|
+
} else {
|
|
71
|
+
this.listeners.clear();
|
|
72
|
+
this.onceListeners.clear();
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Get listener count for an event
|
|
77
|
+
*/
|
|
78
|
+
listenerCount(event) {
|
|
79
|
+
const regular = this.listeners.get(event)?.size ?? 0;
|
|
80
|
+
const once = this.onceListeners.get(event)?.size ?? 0;
|
|
81
|
+
return regular + once;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Clean up resources
|
|
85
|
+
*/
|
|
86
|
+
dispose() {
|
|
87
|
+
this.listeners.clear();
|
|
88
|
+
this.onceListeners.clear();
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
export {
|
|
92
|
+
EventBus
|
|
93
|
+
};
|
|
94
|
+
//# sourceMappingURL=EventBus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventBus.js","sources":["../../src/event/EventBus.ts"],"sourcesContent":["/**\n * Event bus implementation for cross-component communication\n * Provides type-safe event emission and subscription\n */\n\nexport class EventBus<TEventMap extends Record<string, any> = any> {\n private listeners = new Map<keyof TEventMap, Set<Function>>();\n private onceListeners = new Map<keyof TEventMap, Set<Function>>();\n\n /**\n * Emit an event with optional payload\n */\n emit<K extends keyof TEventMap>(event: K, payload?: TEventMap[K]): void {\n // Trigger regular listeners\n this.listeners.get(event)?.forEach((fn) => {\n try {\n fn(payload);\n } catch (err) {\n console.error(`EventBus listener error for ${String(event)}:`, err);\n }\n });\n\n // Trigger one-time listeners\n const once = this.onceListeners.get(event);\n if (once) {\n once.forEach((fn) => {\n try {\n fn(payload);\n } catch (err) {\n console.error(`EventBus once listener error for ${String(event)}:`, err);\n }\n });\n this.onceListeners.delete(event);\n }\n }\n\n /**\n * Subscribe to an event\n */\n on<K extends keyof TEventMap>(event: K, handler: (payload: TEventMap[K]) => void): void {\n if (!this.listeners.has(event)) {\n this.listeners.set(event, new Set());\n }\n this.listeners.get(event)!.add(handler);\n }\n\n /**\n * Unsubscribe from an event\n */\n off<K extends keyof TEventMap>(event: K, handler: Function): void {\n this.listeners.get(event)?.delete(handler);\n this.onceListeners.get(event)?.delete(handler);\n }\n\n /**\n * Subscribe to an event once\n */\n once<K extends keyof TEventMap>(event: K, handler: (payload: TEventMap[K]) => void): void {\n if (!this.onceListeners.has(event)) {\n this.onceListeners.set(event, new Set());\n }\n this.onceListeners.get(event)!.add(handler);\n }\n\n /**\n * Get a read-only view of the event bus\n * Only allows subscribing, not emitting\n */\n asReadonly(): Pick<EventBus<TEventMap>, 'on' | 'off' | 'once'> {\n return {\n on: this.on.bind(this),\n off: this.off.bind(this),\n once: this.once.bind(this),\n };\n }\n\n /**\n * Remove all listeners for a specific event\n */\n removeAllListeners<K extends keyof TEventMap>(event?: K): void {\n if (event) {\n this.listeners.delete(event);\n this.onceListeners.delete(event);\n } else {\n this.listeners.clear();\n this.onceListeners.clear();\n }\n }\n\n /**\n * Get listener count for an event\n */\n listenerCount<K extends keyof TEventMap>(event: K): number {\n const regular = this.listeners.get(event)?.size ?? 0;\n const once = this.onceListeners.get(event)?.size ?? 0;\n return regular + once;\n }\n\n /**\n * Clean up resources\n */\n dispose(): void {\n this.listeners.clear();\n this.onceListeners.clear();\n }\n}\n"],"names":[],"mappings":"AAKO,MAAM,SAAsD;AAAA,EACzD,gCAAgB,IAAA;AAAA,EAChB,oCAAoB,IAAA;AAAA;AAAA;AAAA;AAAA,EAK5B,KAAgC,OAAU,SAA8B;AAEtE,SAAK,UAAU,IAAI,KAAK,GAAG,QAAQ,CAAC,OAAO;AACzC,UAAI;AACF,WAAG,OAAO;AAAA,MACZ,SAAS,KAAK;AACZ,gBAAQ,MAAM,+BAA+B,OAAO,KAAK,CAAC,KAAK,GAAG;AAAA,MACpE;AAAA,IACF,CAAC;AAGD,UAAM,OAAO,KAAK,cAAc,IAAI,KAAK;AACzC,QAAI,MAAM;AACR,WAAK,QAAQ,CAAC,OAAO;AACnB,YAAI;AACF,aAAG,OAAO;AAAA,QACZ,SAAS,KAAK;AACZ,kBAAQ,MAAM,oCAAoC,OAAO,KAAK,CAAC,KAAK,GAAG;AAAA,QACzE;AAAA,MACF,CAAC;AACD,WAAK,cAAc,OAAO,KAAK;AAAA,IACjC;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,GAA8B,OAAU,SAAgD;AACtF,QAAI,CAAC,KAAK,UAAU,IAAI,KAAK,GAAG;AAC9B,WAAK,UAAU,IAAI,OAAO,oBAAI,KAAK;AAAA,IACrC;AACA,SAAK,UAAU,IAAI,KAAK,EAAG,IAAI,OAAO;AAAA,EACxC;AAAA;AAAA;AAAA;AAAA,EAKA,IAA+B,OAAU,SAAyB;AAChE,SAAK,UAAU,IAAI,KAAK,GAAG,OAAO,OAAO;AACzC,SAAK,cAAc,IAAI,KAAK,GAAG,OAAO,OAAO;AAAA,EAC/C;AAAA;AAAA;AAAA;AAAA,EAKA,KAAgC,OAAU,SAAgD;AACxF,QAAI,CAAC,KAAK,cAAc,IAAI,KAAK,GAAG;AAClC,WAAK,cAAc,IAAI,OAAO,oBAAI,KAAK;AAAA,IACzC;AACA,SAAK,cAAc,IAAI,KAAK,EAAG,IAAI,OAAO;AAAA,EAC5C;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,aAA+D;AAC7D,WAAO;AAAA,MACL,IAAI,KAAK,GAAG,KAAK,IAAI;AAAA,MACrB,KAAK,KAAK,IAAI,KAAK,IAAI;AAAA,MACvB,MAAM,KAAK,KAAK,KAAK,IAAI;AAAA,IAAA;AAAA,EAE7B;AAAA;AAAA;AAAA;AAAA,EAKA,mBAA8C,OAAiB;AAC7D,QAAI,OAAO;AACT,WAAK,UAAU,OAAO,KAAK;AAC3B,WAAK,cAAc,OAAO,KAAK;AAAA,IACjC,OAAO;AACL,WAAK,UAAU,MAAA;AACf,WAAK,cAAc,MAAA;AAAA,IACrB;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKA,cAAyC,OAAkB;AACzD,UAAM,UAAU,KAAK,UAAU,IAAI,KAAK,GAAG,QAAQ;AACnD,UAAM,OAAO,KAAK,cAAc,IAAI,KAAK,GAAG,QAAQ;AACpD,WAAO,UAAU;AAAA,EACnB;AAAA;AAAA;AAAA;AAAA,EAKA,UAAgB;AACd,SAAK,UAAU,MAAA;AACf,SAAK,cAAc,MAAA;AAAA,EACrB;AACF;"}
|
|
@@ -0,0 +1,371 @@
|
|
|
1
|
+
import { CompositionModel, Resource, TimeUs } from '../model';
|
|
2
|
+
|
|
3
|
+
export interface ResourceEvent {
|
|
4
|
+
type: MeframeEvent;
|
|
5
|
+
resourceId: string;
|
|
6
|
+
resource?: Resource;
|
|
7
|
+
oldState?: Resource['state'];
|
|
8
|
+
newState?: Resource['state'];
|
|
9
|
+
workerType?: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Core event types
|
|
13
|
+
*/
|
|
14
|
+
export declare enum MeframeEvent {
|
|
15
|
+
ModelSet = "model:set",
|
|
16
|
+
ResourceAdd = "resource:add",
|
|
17
|
+
ResourceUpdate = "resource:update",
|
|
18
|
+
ResourceRemove = "resource:remove",
|
|
19
|
+
ResourceStageChange = "resource:state",
|
|
20
|
+
LoadStart = "load:start",
|
|
21
|
+
LoadProgress = "load:progress",
|
|
22
|
+
LoadComplete = "load:complete",
|
|
23
|
+
LoadError = "load:error",
|
|
24
|
+
DemuxStart = "demux:start",
|
|
25
|
+
DemuxProgress = "demux:progress",
|
|
26
|
+
DemuxComplete = "demux:complete",
|
|
27
|
+
DemuxError = "demux:error",
|
|
28
|
+
DecodeStart = "decode:start",
|
|
29
|
+
DecodeProgress = "decode:progress",
|
|
30
|
+
DecodeComplete = "decode:complete",
|
|
31
|
+
DecodeError = "decode:error",
|
|
32
|
+
ComposeStart = "compose:start",
|
|
33
|
+
ComposeProgress = "compose:progress",
|
|
34
|
+
ComposeComplete = "compose:complete",
|
|
35
|
+
ComposeFrameReady = "compose:frameReady",
|
|
36
|
+
ComposeFrameDropped = "compose:frameDropped",
|
|
37
|
+
EncodeChunkReady = "encode:chunkReady",
|
|
38
|
+
EncodeChunkError = "encode:chunkError",
|
|
39
|
+
CacheHit = "cache:hit",
|
|
40
|
+
CacheMiss = "cache:miss",
|
|
41
|
+
CacheEvict = "cache:evict",
|
|
42
|
+
CacheWrite = "cache:write",
|
|
43
|
+
CachePinCreated = "cache:pin:created",
|
|
44
|
+
CachePinReleased = "cache:pin:released",
|
|
45
|
+
CachePinOverflow = "cache:pin:overflow",
|
|
46
|
+
CacheCapacityChanged = "cache:capacity:changed",
|
|
47
|
+
CachePlaybackWindowBlocked = "cache:playbackWindow:blocked",
|
|
48
|
+
CachePrerenderWindowBlocked = "cache:prerenderWindow:blocked",
|
|
49
|
+
ExportStart = "export:start",
|
|
50
|
+
ExportProgress = "export:progress",
|
|
51
|
+
ExportComplete = "export:complete",
|
|
52
|
+
ExportError = "export:error",
|
|
53
|
+
CompositionUpdated = "composition:updated",
|
|
54
|
+
PatchApplied = "patch:applied",
|
|
55
|
+
Ready = "ready",
|
|
56
|
+
WorkerStarted = "worker:started",
|
|
57
|
+
WorkerReady = "worker:ready",
|
|
58
|
+
WorkerError = "worker:error",
|
|
59
|
+
WorkerRestarted = "worker:restarted",
|
|
60
|
+
PlaybackBuffering = "playback:buffering",
|
|
61
|
+
PlaybackPlay = "playback:play",
|
|
62
|
+
PlaybackPause = "playback:pause",
|
|
63
|
+
PlaybackStop = "playback:stop",
|
|
64
|
+
PlaybackSeek = "playback:seek",
|
|
65
|
+
PlaybackEnded = "playback:ended",
|
|
66
|
+
PlaybackTimeUpdate = "playback:timeupdate",
|
|
67
|
+
PlaybackRateChange = "playback:ratechange",
|
|
68
|
+
PlaybackVolumeChange = "playback:volumechange",
|
|
69
|
+
PlaybackError = "playback:error",
|
|
70
|
+
PlaybackStarted = "playback:started",
|
|
71
|
+
PlaybackPaused = "playback:paused",
|
|
72
|
+
PlaybackSeeked = "playback:seeked",
|
|
73
|
+
Error = "error",
|
|
74
|
+
PluginLoaded = "plugin:loaded",
|
|
75
|
+
PluginError = "plugin:error",
|
|
76
|
+
PluginUnloaded = "plugin:unloaded",
|
|
77
|
+
ClipActivated = "clip:activated",
|
|
78
|
+
ClipDeactivated = "clip:deactivated"
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Event payload definitions
|
|
82
|
+
*/
|
|
83
|
+
export interface EventPayloadMap {
|
|
84
|
+
[MeframeEvent.ModelSet]: CompositionModel;
|
|
85
|
+
[MeframeEvent.ResourceAdd]: ResourceEvent;
|
|
86
|
+
[MeframeEvent.ResourceUpdate]: ResourceEvent;
|
|
87
|
+
[MeframeEvent.ResourceRemove]: ResourceEvent;
|
|
88
|
+
[MeframeEvent.ResourceStageChange]: ResourceEvent;
|
|
89
|
+
[MeframeEvent.LoadStart]: {
|
|
90
|
+
resourceId: string;
|
|
91
|
+
url: string;
|
|
92
|
+
size?: number;
|
|
93
|
+
};
|
|
94
|
+
[MeframeEvent.LoadProgress]: {
|
|
95
|
+
resourceId: string;
|
|
96
|
+
loaded: number;
|
|
97
|
+
total: number;
|
|
98
|
+
progress: number;
|
|
99
|
+
};
|
|
100
|
+
[MeframeEvent.LoadComplete]: {
|
|
101
|
+
resourceId: string;
|
|
102
|
+
bytes: number;
|
|
103
|
+
durationMs: number;
|
|
104
|
+
};
|
|
105
|
+
[MeframeEvent.LoadError]: {
|
|
106
|
+
resourceId: string;
|
|
107
|
+
error: Error;
|
|
108
|
+
retry?: boolean;
|
|
109
|
+
};
|
|
110
|
+
[MeframeEvent.DemuxStart]: {
|
|
111
|
+
clipId: string;
|
|
112
|
+
trackId?: string;
|
|
113
|
+
format?: string;
|
|
114
|
+
};
|
|
115
|
+
[MeframeEvent.DemuxProgress]: {
|
|
116
|
+
clipId: string;
|
|
117
|
+
progress: number;
|
|
118
|
+
};
|
|
119
|
+
[MeframeEvent.DemuxComplete]: {
|
|
120
|
+
clipId: string;
|
|
121
|
+
trackCount: number;
|
|
122
|
+
durationUs: TimeUs;
|
|
123
|
+
};
|
|
124
|
+
[MeframeEvent.DemuxError]: {
|
|
125
|
+
clipId: string;
|
|
126
|
+
error: Error;
|
|
127
|
+
};
|
|
128
|
+
[MeframeEvent.DecodeStart]: {
|
|
129
|
+
clipId: string;
|
|
130
|
+
frameCount?: number;
|
|
131
|
+
trackType: 'video' | 'audio';
|
|
132
|
+
};
|
|
133
|
+
[MeframeEvent.DecodeProgress]: {
|
|
134
|
+
clipId: string;
|
|
135
|
+
decodedFrames: number;
|
|
136
|
+
totalFrames: number;
|
|
137
|
+
progress: number;
|
|
138
|
+
};
|
|
139
|
+
[MeframeEvent.DecodeComplete]: {
|
|
140
|
+
clipId: string;
|
|
141
|
+
frameCount: number;
|
|
142
|
+
durationUs: TimeUs;
|
|
143
|
+
};
|
|
144
|
+
[MeframeEvent.DecodeError]: {
|
|
145
|
+
clipId: string;
|
|
146
|
+
error: Error;
|
|
147
|
+
frame?: number;
|
|
148
|
+
};
|
|
149
|
+
[MeframeEvent.ComposeStart]: {
|
|
150
|
+
timeUs: TimeUs;
|
|
151
|
+
clipIds: string[];
|
|
152
|
+
};
|
|
153
|
+
[MeframeEvent.ComposeProgress]: {
|
|
154
|
+
timeUs: TimeUs;
|
|
155
|
+
progress: number;
|
|
156
|
+
};
|
|
157
|
+
[MeframeEvent.ComposeComplete]: {
|
|
158
|
+
timeUs: TimeUs;
|
|
159
|
+
frameNumber: number;
|
|
160
|
+
};
|
|
161
|
+
[MeframeEvent.ComposeFrameReady]: {
|
|
162
|
+
timeUs: TimeUs;
|
|
163
|
+
frameNumber: number;
|
|
164
|
+
renderTimeMs: number;
|
|
165
|
+
trackId: string;
|
|
166
|
+
clipId: string;
|
|
167
|
+
};
|
|
168
|
+
[MeframeEvent.ComposeFrameDropped]: {
|
|
169
|
+
timeUs: TimeUs;
|
|
170
|
+
reason: 'decode_slow' | 'compose_slow' | 'backpressure';
|
|
171
|
+
};
|
|
172
|
+
[MeframeEvent.EncodeChunkReady]: {
|
|
173
|
+
timeUs: TimeUs;
|
|
174
|
+
durationUs: TimeUs;
|
|
175
|
+
track: 'video' | 'audio';
|
|
176
|
+
size: number;
|
|
177
|
+
};
|
|
178
|
+
[MeframeEvent.EncodeChunkError]: {
|
|
179
|
+
timeUs: TimeUs;
|
|
180
|
+
track: 'video' | 'audio';
|
|
181
|
+
error: Error;
|
|
182
|
+
};
|
|
183
|
+
[MeframeEvent.CacheHit]: {
|
|
184
|
+
timeUs: TimeUs;
|
|
185
|
+
level: 'L1' | 'L2';
|
|
186
|
+
key?: string;
|
|
187
|
+
};
|
|
188
|
+
[MeframeEvent.CacheMiss]: {
|
|
189
|
+
timeUs: TimeUs;
|
|
190
|
+
level: 'L1' | 'L2';
|
|
191
|
+
key?: string;
|
|
192
|
+
};
|
|
193
|
+
[MeframeEvent.CacheEvict]: {
|
|
194
|
+
clipId: string;
|
|
195
|
+
count: number;
|
|
196
|
+
level: 'L1' | 'L2';
|
|
197
|
+
reason: 'size' | 'ttl' | 'manual';
|
|
198
|
+
};
|
|
199
|
+
[MeframeEvent.CacheWrite]: {
|
|
200
|
+
clipId: string;
|
|
201
|
+
timeUs: TimeUs;
|
|
202
|
+
level: 'L1' | 'L2';
|
|
203
|
+
size: number;
|
|
204
|
+
};
|
|
205
|
+
[MeframeEvent.CachePinCreated]: {
|
|
206
|
+
clipId: string;
|
|
207
|
+
startUs: TimeUs;
|
|
208
|
+
endUs: TimeUs;
|
|
209
|
+
source: 'playback' | 'prerender' | 'export';
|
|
210
|
+
tokenId: string;
|
|
211
|
+
window: {
|
|
212
|
+
startUs: TimeUs;
|
|
213
|
+
endUs: TimeUs;
|
|
214
|
+
};
|
|
215
|
+
};
|
|
216
|
+
[MeframeEvent.CachePinReleased]: {
|
|
217
|
+
clipId: string;
|
|
218
|
+
startUs: TimeUs;
|
|
219
|
+
endUs: TimeUs;
|
|
220
|
+
source: 'playback' | 'prerender' | 'export';
|
|
221
|
+
tokenId: string;
|
|
222
|
+
reason: 'manual' | 'timeout';
|
|
223
|
+
window: {
|
|
224
|
+
startUs: TimeUs;
|
|
225
|
+
endUs: TimeUs;
|
|
226
|
+
};
|
|
227
|
+
};
|
|
228
|
+
[MeframeEvent.CachePinOverflow]: {
|
|
229
|
+
required: number;
|
|
230
|
+
maxAllowed: number;
|
|
231
|
+
clipId: string;
|
|
232
|
+
source: 'playback' | 'prerender' | 'export';
|
|
233
|
+
window: {
|
|
234
|
+
startUs: TimeUs;
|
|
235
|
+
endUs: TimeUs;
|
|
236
|
+
};
|
|
237
|
+
};
|
|
238
|
+
[MeframeEvent.CacheCapacityChanged]: {
|
|
239
|
+
l1: {
|
|
240
|
+
maxMemoryMB: number;
|
|
241
|
+
maxGOPs: number;
|
|
242
|
+
};
|
|
243
|
+
};
|
|
244
|
+
[MeframeEvent.CachePlaybackWindowBlocked]: {
|
|
245
|
+
clipId: string;
|
|
246
|
+
window: {
|
|
247
|
+
startUs: TimeUs;
|
|
248
|
+
endUs: TimeUs;
|
|
249
|
+
};
|
|
250
|
+
reason: 'pinned' | 'memory' | 'inflight';
|
|
251
|
+
};
|
|
252
|
+
[MeframeEvent.CachePrerenderWindowBlocked]: {
|
|
253
|
+
clipId: string;
|
|
254
|
+
window: {
|
|
255
|
+
startUs: TimeUs;
|
|
256
|
+
endUs: TimeUs;
|
|
257
|
+
};
|
|
258
|
+
reason: 'pinned' | 'memory' | 'inflight';
|
|
259
|
+
};
|
|
260
|
+
[MeframeEvent.ExportStart]: {
|
|
261
|
+
format: string;
|
|
262
|
+
width: number;
|
|
263
|
+
height: number;
|
|
264
|
+
fps: number;
|
|
265
|
+
durationUs: TimeUs;
|
|
266
|
+
};
|
|
267
|
+
[MeframeEvent.ExportProgress]: {
|
|
268
|
+
progress: number;
|
|
269
|
+
currentFrame: number;
|
|
270
|
+
totalFrames: number;
|
|
271
|
+
timeUs: TimeUs;
|
|
272
|
+
};
|
|
273
|
+
[MeframeEvent.ExportComplete]: {
|
|
274
|
+
size: number;
|
|
275
|
+
durationMs: number;
|
|
276
|
+
format: string;
|
|
277
|
+
};
|
|
278
|
+
[MeframeEvent.ExportError]: {
|
|
279
|
+
error: Error;
|
|
280
|
+
stage?: string;
|
|
281
|
+
};
|
|
282
|
+
[MeframeEvent.CompositionUpdated]: {
|
|
283
|
+
trackCount: number;
|
|
284
|
+
clipCount: number;
|
|
285
|
+
durationUs: TimeUs;
|
|
286
|
+
};
|
|
287
|
+
[MeframeEvent.PatchApplied]: {
|
|
288
|
+
operations: number;
|
|
289
|
+
dirtyRanges: Array<{
|
|
290
|
+
startUs: TimeUs;
|
|
291
|
+
endUs: TimeUs;
|
|
292
|
+
}>;
|
|
293
|
+
};
|
|
294
|
+
[MeframeEvent.Ready]: {
|
|
295
|
+
trackCount: number;
|
|
296
|
+
clipCount: number;
|
|
297
|
+
durationUs: TimeUs;
|
|
298
|
+
};
|
|
299
|
+
[MeframeEvent.WorkerStarted]: {
|
|
300
|
+
type: string;
|
|
301
|
+
workerId: string;
|
|
302
|
+
};
|
|
303
|
+
[MeframeEvent.WorkerReady]: {
|
|
304
|
+
type: string;
|
|
305
|
+
workerId: string;
|
|
306
|
+
};
|
|
307
|
+
[MeframeEvent.WorkerError]: {
|
|
308
|
+
type: string;
|
|
309
|
+
workerId: string;
|
|
310
|
+
error: Error;
|
|
311
|
+
};
|
|
312
|
+
[MeframeEvent.WorkerRestarted]: {
|
|
313
|
+
type: string;
|
|
314
|
+
workerId: string;
|
|
315
|
+
reason: string;
|
|
316
|
+
};
|
|
317
|
+
[MeframeEvent.PlaybackBuffering]: undefined;
|
|
318
|
+
[MeframeEvent.PlaybackPlay]: undefined;
|
|
319
|
+
[MeframeEvent.PlaybackPause]: undefined;
|
|
320
|
+
[MeframeEvent.PlaybackStop]: undefined;
|
|
321
|
+
[MeframeEvent.PlaybackSeek]: {
|
|
322
|
+
timeUs: TimeUs;
|
|
323
|
+
};
|
|
324
|
+
[MeframeEvent.PlaybackStarted]: {
|
|
325
|
+
timeUs: TimeUs;
|
|
326
|
+
};
|
|
327
|
+
[MeframeEvent.PlaybackPaused]: {
|
|
328
|
+
timeUs: TimeUs;
|
|
329
|
+
};
|
|
330
|
+
[MeframeEvent.PlaybackSeeked]: {
|
|
331
|
+
fromUs: TimeUs;
|
|
332
|
+
toUs: TimeUs;
|
|
333
|
+
};
|
|
334
|
+
[MeframeEvent.PlaybackEnded]: {
|
|
335
|
+
timeUs: TimeUs;
|
|
336
|
+
};
|
|
337
|
+
[MeframeEvent.PlaybackTimeUpdate]: {
|
|
338
|
+
timeUs: TimeUs;
|
|
339
|
+
};
|
|
340
|
+
[MeframeEvent.PlaybackRateChange]: {
|
|
341
|
+
rate: number;
|
|
342
|
+
};
|
|
343
|
+
[MeframeEvent.PlaybackVolumeChange]: {
|
|
344
|
+
volume: number;
|
|
345
|
+
};
|
|
346
|
+
[MeframeEvent.PlaybackError]: Error;
|
|
347
|
+
[MeframeEvent.Error]: {
|
|
348
|
+
source: string;
|
|
349
|
+
error: Error;
|
|
350
|
+
context?: any;
|
|
351
|
+
recoverable?: boolean;
|
|
352
|
+
};
|
|
353
|
+
[MeframeEvent.PluginLoaded]: {
|
|
354
|
+
name: string;
|
|
355
|
+
version?: string;
|
|
356
|
+
};
|
|
357
|
+
[MeframeEvent.PluginError]: {
|
|
358
|
+
plugin: string;
|
|
359
|
+
error: Error;
|
|
360
|
+
};
|
|
361
|
+
[MeframeEvent.PluginUnloaded]: {
|
|
362
|
+
name: string;
|
|
363
|
+
};
|
|
364
|
+
[MeframeEvent.ClipActivated]: {
|
|
365
|
+
clipId: string;
|
|
366
|
+
};
|
|
367
|
+
[MeframeEvent.ClipDeactivated]: {
|
|
368
|
+
clipId: string;
|
|
369
|
+
};
|
|
370
|
+
}
|
|
371
|
+
//# sourceMappingURL=events.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/event/events.ts"],"names":[],"mappings":"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"}
|